2012zhd 发表于 2018-4-8 11:07:35

“为什么不尝试自己做?下载你附件到改好就1,2分钟 ”

小白啊,什么都不懂。

红毛樱木 发表于 2018-4-8 11:25:27

有没有办法更暴力点?破解windows内核驱动签名校验:dizzy:

slore 发表于 2018-4-8 17:50:42

本帖最后由 slore 于 2018-4-8 17:57 编辑

freesoft00 发表于 2018-4-8 11:05
请问一下,mbr或者pbr使用winhex保存的bin如何转换成汇编代码。
想看看bootice是查看哪里的特征区分mbr ...

磁盘扇区上的数据是16位的汇编指令,dumpbin只能识别32位和64位的Windows程序不适用。

高级点的你用IDA可以看。
搜索16位反编译器,会有很多,毕竟就是CPU指令的翻译,
我随便点了一个github上的C#的,SharpDisasm。

下了一个NET35支持的版本,WINHEX保存55AA的MBR为MBR.BIN,
然后复制16进制可视区域得到十六进制的文本MBR.TXT
33 C0 8E D0 BC 00 7C FB 8E C0 8E D8 8B F4 BF 00
06 B9 00 02 FC F3 A4 EA 60 06 00 00 00 00 00 00
50 4F 57 45 52 52 45 43 4F 56 45 52 00 00 00 00
...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA


然后运行:
type mbr.txt|| disasmcli.exe 16
0000 33 c0                        xor ax, ax
0002 8e d0                        mov ss, ax
0004 bc 00 7c                     mov sp, 0x7c00
0007 fb                           sti
0008 8e c0                        mov es, ax
000a 8e d8                        mov ds, ax
000c 8b f4                        mov si, sp
000e bf 00 06                     mov di, 0x600
0011 b9 00 02                     mov cx, 0x200
0014 fc                           cld
0015 f3 a4                        rep movsb
0017 ea 60 06 00 00               jmp word 0x0:0x660
001c 00 00                        add , al
001e 00 00                        add , al
0020 50                           push ax
也支持32位,64位。drvinst.exe的破解指令也可以看。

D:\Users\Slore\桌面\windisam\Net35>echo 8B F8 85 C0 75 09 |disasmcli.exe 64
0000000000000000 8b f8                        mov edi, eax
0000000000000002 85 c0                        test eax, eax
0000000000000004 75 09                        jnz 0xf

D:\Users\Slore\桌面\windisam\Net35>echo 33 c0 8b f8 90 90 |disasmcli.exe 64
0000000000000000 33 c0                        xor eax, eax
0000000000000002 8b f8                        mov edi, eax
0000000000000004 90                           nop
0000000000000005 90                           nop

D:\Users\Slore\桌面\windisam\Net35>echo 8B D8 85 DB 75 04|disasmcli.exe 32
00000000 8b d8                        mov ebx, eax
00000002 85 db                        test ebx, ebx
00000004 75 04                        jnz 0xa

D:\Users\Slore\桌面\windisam\Net35>echo 33 c0 8b D8 90 90|disasmcli.exe 32
00000000 33 c0                        xor eax, eax
00000002 8b d8                        mov ebx, eax
00000004 90                           nop
00000005 90                           nop


我没改,NET35里面的config写的是.net45,反正我WIN10下是可以运行。
删除config文件系统将自动识别,不过启动会变慢,卡顿0.5秒的感觉。

slore 发表于 2018-4-8 18:08:25

addaadda 发表于 2018-4-8 10:26
我看了win10x64的explorer可以反汇编(35MB),win8.1x64的就不行,不知道哪里的问题,系统是win10x64
...



我不知道x86为什么不行,不过x64可以,我试着复制出来x64的最小文件,你可以试试,
如果不行的话,建议你安装Visual Studio自己找x64的dumpbin.exe

红毛樱木 发表于 2018-4-8 18:18:31

破解的方法,试了下在win7里不行,不知道何故。

addaadda 发表于 2018-4-8 21:32:47

slore 发表于 2018-4-8 18:08
我不知道x86为什么不行,不过x64可以,我试着复制出来x64的最小文件,你可以试试,
如果不行的话, ...

多谢{:1_195:}

tegl 发表于 2018-4-8 22:30:46

本帖最后由 tegl 于 2018-4-8 22:32 编辑

红毛樱木 发表于 2018-4-8 18:18
破解的方法,试了下在win7里不行,不知道何故。

刚试了32位W7的DrvInst.exe,没问题啊
0102CDF5: E8 06 D2 00 00   call      _pSetupValidateDriverPackage@36
0102CDFA: 8B F0            mov         esi,eax
0102CDFC: 85 F6            test      esi,esi
0102CDFE: 75 07            jne         0102CE07
0102CE00: 8B 03            mov         eax,dword ptr

红毛樱木 发表于 2018-4-9 06:47:30

tegl 发表于 2018-4-8 22:30
刚试了32位W7的DrvInst.exe,没问题啊
0102CDF5: E8 06 D2 00 00   call      _pSetupValidateD ...

改完这里,你装下驱动试试。全装不了了

红毛樱木 发表于 2018-4-9 09:55:26

本帖最后由 红毛樱木 于 2018-4-9 10:19 编辑

ys是原始没改过的,另外一个是改过的

x86的是这样
0102CBFE: E8 27 D0 00 00   call      _pSetupValidateDriverPackage@36
0102CC03: 8B F0            mov         esi,eax
0102CC05: 85 F6            test      esi,esi
0102CC07: 75 07            jne         0102CC10
0102CC09: 8B 03            mov         eax,dword ptr
0102CC0B: 89 47 08         mov         dword ptr ,eax
0102CC0E: EB 21            jmp         0102CC31
0102CC10: 56               push      esi
0102CC11: 68 44 E8 00 01   push      offset ??_C@_0DL@BAACEHAK@Driver?5package?5failed?5signature?5@
0102CC16: 6A 01            push      1
0102CC18: 68 00 00 00 01   push      1000000h
0102CC1D: FF 75 FC         push      dword ptr
0102CC20: FF 75 F8         push      dword ptr
0102CC23: FF 15 28 13 00 01call      dword ptr
0102CC29: 83 C4 18         add         esp,18h
0102CC2C: EB 03            jmp         0102CC31
0102CC2E: 6A 57            push      57h
0102CC30: 5E               pop         esi
0102CC31: 5F               pop         edi

这种jne直接0102CC10的是push,是不是就直接跳过去了?
0102CC11也直接push了,是不是也跳过去了?实际是不是0102CC05的test基本就可以忽略不管它了呀。
这种情况是不是就不用破解了。。。
不太懂,瞎猜的。


-----------------------------------------------------------------------
x64是这样
0000000100006A58: E8 2B E4 00 00   call      pSetupValidateDriverPackage
0000000100006A5D: 8B D8            mov         ebx,eax
0000000100006A5F: 85 C0            test      eax,eax
0000000100006A61: 75 09            jne         0000000100006A6C
0000000100006A63: 41 8B 0C 24      mov         ecx,dword ptr
0000000100006A67: 89 4E 10         mov         dword ptr ,ecx
0000000100006A6A: EB 26            jmp         0000000100006A92
0000000100006A6C: 4C 8D 0D 5D B4 FFlea         r9,[??_C@_0DL@BAACEHAK@Driver?5package?5failed?5signature?5@]照着置顶改的不行

slore 发表于 2018-4-9 11:30:03

红毛樱木 发表于 2018-4-9 09:55
ys是原始没改过的,另外一个是改过的

x86的是这样


x64,一次8字节指令,一句就够,x86要2句4字节指令,所以先push一个地址,在push出错信息。

汇编结果是对的,这里的逻辑也是和1楼一样的,你改的这几个字节也是对的。

只改这6个字节是好的,你在WIN7下可以运行,程序不出错。

但是通过FC命令比较,ys和你改的文件,变动比较多,你是改完还做了
文件校验和修改?

这个时候你改过的版本直接双击。

---------------------------
drvinst.exe - 应用程序错误
---------------------------
应用程序不能正确启动 (0xc000007b)。请点击 关闭应用。
---------------------------
OK   
---------------------------


WIN10是不需要校验和的,我不清楚WIN7是不是必须,如果是,那么是因为你这里错了,这个程序就运行不起来,所以驱动安装不了。

红毛樱木 发表于 2018-4-9 11:32:42

slore 发表于 2018-4-9 11:30
x64,一次8字节指令,一句就够,x86要2句4字节指令,所以先push一个地址,在push出错信息。

汇编结果 ...

哦,所有的我都做了校验和处理。

红毛樱木 发表于 2018-4-9 11:33:39

slore 发表于 2018-4-9 11:30
x64,一次8字节指令,一句就够,x86要2句4字节指令,所以先push一个地址,在push出错信息。

汇编结果 ...

确实是啊。。。我晕,我校验和处理过了之后我没运行一下测试。。。

难道win7的不能用校验和去处理下么

wynew8au 发表于 2018-4-11 14:00:10

本帖最后由 wynew8au 于 2018-4-11 14:08 编辑

谢谢。666

xman00 发表于 2018-6-4 10:22:51

留贴拜读~~~

moran 发表于 2018-6-24 01:37:55

技术贴,支持一下。

airing 发表于 2019-1-13 07:11:09

好帖要顶!

nf17b 发表于 2019-6-5 14:48:29

Windows 10 18908 好像有變化 ?
是否可抽空研究一下 , 謝謝

yamingw 发表于 2019-6-5 15:25:54

Windows 10 18908 x64
8B F0 85 C0 74 47
改为
33 C0 8B F0 EB 47

jy02116916 发表于 2019-6-12 10:34:13

很强大 学习了

WAIGO 发表于 2019-7-19 21:13:45

本帖最后由 WAIGO 于 2019-7-19 21:15 编辑

19H2(18362.10005) x86 PE 用了没破解的原始 drvinst.exe 文件,始终出现警告字句。想按照首頁的説明自行破解一下,但开始执行 "3.拖动drvinst.exe文件到symbol_dl.bat" 之后出现了下面图一、二的画面,再按任意键并没有出现像您所写那样 "1,2秒左右,drvinst.pdb文件将生成一个Symbols文件夹"。制作无法继续。现将这个属於 19H2(18362.10005) x86PE 的原始 drvinst.exe 文件附去给您,恳请代为破解一下。非常感谢!






slore 发表于 2019-7-20 23:16:05

WAIGO 发表于 2019-7-19 21:13
19H2(18362.10005) x86 PE 用了没破解的原始 drvinst.exe 文件,始终出现警告字句。想按照首頁的説明自行破 ...

你网络环境没有问题么?我这里可以下载符号信息。

symchk.exe "D:\Users\Slore\桌面\windisam\drvinst.exe" /s SRV*D:\Users\Slore\桌面\windisam\Symbols*http://msdl.microsoft.com/download/symbols
press any key to continue...

SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1
请按任意键继续. . .

特征码如下:
0040D6B0: FF 15 D4 11 42 00call      dword ptr
0040D6B6: 8B D8            mov         ebx,eax
0040D6B8: 85 DB            test      ebx,ebx
0040D6BA: 75 0A            jne         0040D6C6
0040D6BC: 8B 4D 10         mov         ecx,dword ptr
0040D6BF: 8B 07            mov         eax,dword ptr
0040D6C1: 89 41 08         mov         dword ptr ,eax
0040D6C4: EB 2B            jmp         0040D6F1
0040D6C6: 53               push      ebx
0040D6C7: 68 BC 24 40 00   push      offset ??_C@_0DL@BAACEHAK@Driver?5package?5failed?5signature@


另外不需要手动处理吧。WimBuilder的自动处理也正常。。。
D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\Patch_drvinst>main.bat
.\drvinst.exe was successfully patched!
请按任意键继续. . .

liuzhaoyzz 发表于 2019-10-23 14:49:48

本帖最后由 liuzhaoyzz 于 2019-10-23 14:54 编辑


5分钟破解步骤:
1.解压到任意目录(最好简单没空格纯英文例如D:\windisam)

2.把drvinst.exe放到相同目录

3.拖动drvinst.exe文件到symbol_dl.bat

1,2秒左右,drvinst.pdb文件将生成一个Symbols文件夹

4.剪切drvinst.pdb到windisam根目录

5.拖动drivinst.exe到wdisasm.bat

1,2秒左右,将得到drvinst.asm反汇编文件
这里得到的drvinst.asm是空的,只有54字节,是怎么回事?上面一步出错了?我在WIN7 WIN10下面都试了不行,我换用windisam_dumpbin_x64也是出错,怎么办?我搜索了帖子里面所有的HEX特征码都找不到。

6.用记事本打开drvinst.asm文件,查找__imp_pSetupValidateDriverPackage
补充:有人问32位的,好像32位直接改注册表可以用不需要,既然问了就看了下。
32位的函数名是__imp__pSetupValidateDriverPackage
多了一个下划线,所以通用的话,用pSetupValidateDriverPackage就可以了。
      

liuzhaoyzz 发表于 2019-10-23 15:10:59

本帖最后由 liuzhaoyzz 于 2019-10-23 15:34 编辑

哦,看错了,拖动exe。
14393:
8BD885C075088B06改成:33C08BF890908B06
不知道这个对不对?

00000001400073FC: FF 15 BE 00 01 00call      qword ptr
0000000140007402: 8B D8            mov         ebx,eax
0000000140007404: 85 C0            test      eax,eax
0000000140007406: 75 08            jne         0000000140007410
0000000140007408: 8B 06            mov         eax,dword ptr
000000014000740A: 41 89 46 10      mov         dword ptr ,eax
000000014000740E: EB 3B            jmp         000000014000744B

G:\WimBuilder2-Full20191010\WimBuilder2-Full\Projects\WIN10XPE\01-Components\Patch_drvinst\main.bat
35行:
:AssemblePatch
echo Assemble Patch ...
set VER_NAME=%WB_PE_VER%
if %VER% GTR 17000 set VER_NAME=win10.rs4later
if %VER% GTR 17700 set VER_NAME=win10.rs5later
if %VER% GTR 18908 set VER_NAME=win10.18908later
call :Drvinst_%VER_NAME%_%WB_PE_ARCH%
if "%PATCH_MODE%"=="local" pause
goto :EOF

:Drvinst_10.0.14393_x64
call :PATCH 8BD8 85C0 7508 8B06
goto :EOF
添加这个对不对?


:Drvinst_10.0.15063_x64
call :PATCH 8BF0 85C0 7509 418B
goto :EOF

:Drvinst_win10.rs4later_x64
call :PATCH 8BF8 85C0 7509 418B
goto :EOF

:Drvinst_win10.rs4later_x86
call :PATCH 8BD8 85DB 750A 8B4D
goto :EOF

:Drvinst_win10.rs5later_x64
call :PATCH 8BF0 85C0 7509 418B
goto :EOF

:Drvinst_win10.rs5later_x86
call :PATCH 8BD8 85DB 750A 8B4D
goto :EOF

:Drvinst_win10.18908later_x64
call :FULL_PATH 8BF0_85C0_7447 33C0_8BF0_EB47
goto :EOF

:Drvinst_win10.18908later_x86
call :FULL_PATH 8BD8_85DB_742B_53 33C0_8BD8_EB2B_53
goto :EOF

:FULL_PATH
binmay.exe -v -s "%1" -r "%2" -u "%X_SYS%\drvinst.exe"
goto :PATCH_CONFIRM

:PATCH
binmay.exe -v -s "%1%2%3%4" -r "33C0%19090%4" -u "%X_SYS%\drvinst.exe"
:PATCH_CONFIRM
fc /b "%X_SYS%\drvinst.exe.org" "%X_SYS%\drvinst.exe"
del /q "%X_SYS%\drvinst.exe.org"
      

liuzhaoyzz 发表于 2019-10-23 20:16:09

本帖最后由 liuzhaoyzz 于 2019-10-23 20:26 编辑


7. UE打开drvinst.exe,搜索字节序,改之。
8B F8 85 C0 75 09 41 8B
改成如下:
33 C0 8B F8 90 90 41 8B

补充1:
某老版本的修正如下:
8B F0 85 C0 75 09 41 8B
改为
33 C0 8B F0 90 90 41 8B

17133对应:
8B F8 85 C0 75 09 41 8B
可能改成如下:
33 C0 8B F8 90 90 41 8B

这里面没有33C0 8BD8啊?
初步试了下,用破解版drvinst,用ljycslg的驱动包,可以进入桌面,但是在安装驱动的时候蓝屏了,报NETIO.SYS错误。
      

liuzhaoyzz 发表于 2019-10-23 21:13:28

本帖最后由 liuzhaoyzz 于 2019-10-24 09:17 编辑

晕了,netio.sys蓝屏的原因是因为用了错误的破解文件,tcpipreg.sys和系统的版本不一致。改过来就好了。但是14393试了破解过的drvinst也还是无法安装第三方驱动。破解drvinst安装驱动就会提示“内存位置访问无效”.      

liuzhaoyzz 发表于 2019-12-1 15:32:56

14393版本的drvinst.exe破解不行,不清楚原因,似乎不破解也可以安装驱动吧。没有深度测试。

liuzhaoyzz 发表于 2019-12-1 15:56:42

我试了ljycslg14393PE里面的破解版drvinst替换我制作的14393PE,似乎也不行,可能是小版本号不同,没有深入研究。

dafang_2001 发表于 2019-12-1 23:17:41

支持原创,感谢分享

liuzhaoyzz 发表于 2019-12-2 11:47:22

本帖最后由 liuzhaoyzz 于 2019-12-2 11:49 编辑

addaadda,请问下drvinst对于14393不同的版本是否可以通用?小版本号另外,你说错了一个字节,是哪个字节?请详述

slore 发表于 2019-12-2 11:55:40

liuzhaoyzz 发表于 2019-12-2 11:47
addaadda,请问下drvinst对于14393不同的版本是否可以通用?小版本号另外,你说错了一个字节,是哪个字节? ...

看代码,微软有时候改动影响到了,就不一定了,通常没影响,WimBuilder2的包里有个测试驱动,main.bat你改下开关,没破解前不能装,破解可以装,用来验证的。
页: 1 [2] 3
查看完整版本: 全版本drvinst.exe文件5分钟跳过驱动签名验证修改指南