|
|
本帖最后由 tools241 于 2018-7-30 16:15 编辑
跳过签名验证 -- 假设将 *.EXE 转成 *.ASM, 想改 jne ( 例如将其中的 jne 改成 je ):
1.如果微软不做CRC check, 则有可能成功, 例如改 drvinst.exe , 请参考 文中 22F :
[原创]全版本drvinst.exe文件5分钟跳过驱动签名验证修改指南 ==>
http://bbs.wuyou.net/forum.php?m ... 1745&fromuid=581308
...
000000014000898F: FF 15 E3 4B 01 00 call qword ptr [__imp_pSetupValidateDriverPackage]
0000000140008995: 8B F8 mov edi,eax
0000000140008997: 85 C0 test eax,eax
0000000140008999: 75 09 jne 00000001400089A4
...
注: 微软很清楚有人会去改 drvinst.exe, 但 "没必要" 去做CRC check( 防修改对生意没有好处 ),
每隔一段时间便会 "略为修改" test之后的暂存器( 将 eax 换成 其他 ), 如此便搜不到16进位的 [8B F8 85 C0 75 09]
仅供参考: ( 自10PE17025起不能再使用10240版的drvinst.exe )初步测试 drvinst.exe 的推论:
10240x64的drvinst.exe 可使用在10PEx64 16299版至10240版.
10240x86的drvinst.exe 可使用在10PEx86 16299版至10240版.
17666x64的drvinst.exe 可使用在10PEx64 17666版至15063版.
17666x86的drvinst.exe 可使用在10PEx86 17666版至15063版.
如果各位有看到18000版或10000版的drvinst.exe, 可以确定 "版本号" 已被改掉了.
2.如果微软有做CRC check, 则成功机率不大, 因为微软很清楚可能有人会去改EXE,
除了程式本身会 "自我检测CRC" 之外, 在他处也可有另外的程式来检测此EXE是否有被改过,
例如改 winload.efi 将其中的 jne 改成 je 也没有用 :
\Windows\System32\Boot\winload.efi 转成 winload.asm :
...
...
000000018000263F: 89 05 4F EF 18 00 mov dword ptr [OslBootId],eax
0000000180002645: 44 89 25 44 EF 18 mov dword ptr [OslBootCountUpdateRequestForAbort],r12d
00
000000018000264C: 40 84 FF test dil,dil
000000018000264F: 75 07 jne 0000000180002658 // 改成 74 07 je
...
...
...
000000018000F231: E8 B2 19 02 00 call ComputeCrc32
000000018000F236: 41 39 45 18 cmp dword ptr [r13+18h],eax
000000018000F23A: 75 E4 jne 000000018000F220 // 改成 74 E4 je
...
...
____________________________________________________________________________________________________
如果想采Grub4Dos直接启动 Win 10 , 则所采用的 W*BOOTMGR 便须去除签名验证 :
[分享]Grub4Dos - 直接启动Win10,...,Win7, 第1个XP, XP.VHD, ISO, WIM, PE, WIN.VHD ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=380990 |
|