[color=]只为娱乐,后果自负。
受这个“全版本drvinst.exe文件5分钟跳过驱动签名验证修改指南” http://bbs.wuyou.net/forum.php?m ... &extra=&ordertype=1 帖子的启发,改了下uReFS.dll,成了。
只需改两个字节。
得到.asm文件后查找 IsRefsFormatEnabled 函数。这个函数共有三个地方调用,所以直接改函数体了。
函数很长,搜索返回指令ret 。
是这样的
000000018000AFE2: E8 9D FA 08 00 call ?Reset@?$SP@EV?$SP_HLOCAL@E@@@@QEAAXXZ
000000018000AFE7: 39 B5 B8 00 00 00 cmp dword ptr [rbp+0B8h],esi
000000018000AFED: 8B 8D 14 02 00 00 mov ecx,dword ptr [rbp+214h]
000000018000AFF3: 0F 4C CE cmovl ecx,esi
000000018000AFF6: 85 C9 test ecx,ecx
000000018000AFF8: 40 0F 95 C6 setne sil
000000018000AFFC: 8B C6 mov eax,esi
000000018000AFFE: 48 8B 8D F0 10 00 mov rcx,qword ptr [rbp+10F0h]
00
000000018000B005: 48 33 CC xor rcx,rsp
000000018000B008: E8 53 00 09 00 call __security_check_cookie
000000018000B00D: 4C 8D 9C 24 00 12 lea r11,[rsp+1200h]
00 00
000000018000B015: 49 8B 5B 30 mov rbx,qword ptr [r11+30h]
000000018000B019: 49 8B 73 38 mov rsi,qword ptr [r11+38h]
000000018000B01D: 49 8B 7B 40 mov rdi,qword ptr [r11+40h]
000000018000B021: 49 8B E3 mov rsp,r11
000000018000B024: 41 5F pop r15
000000018000B026: 41 5E pop r14
000000018000B028: 41 5D pop r13
000000018000B02A: 41 5C pop r12
000000018000B02C: 5D pop rbp
000000018000B02D: C3 ret
返回值应该在EAX传递(这是我看三处调用的地方推断出来的),在000000018000AFFC有设置EAX的指令
test ecx,ecx
setne sil
[color=]mov eax,esi
通过上下文判断 ECX 只是临时使用的。所以把 test ecx,ecx 改为 inc ecx
这个文件本身就有inc ecx, 查得机器码是FF C1
打开二进制编辑器,查找 test ecx,ecx周围一圈的二进制值,然后把 85 C9改为 FF C1,保存,完工。
题外话,如果你是像我一样的菜鸟,容易误把.pdb文件拖动到wdisasm.bat上,搞了好久才发现问题。
我的win10版本是1803,其他版本没试过。