Baymax Patch Tools 之 DFX 破解方案
先贴程序启动验证的关键位置:013095A1|> \83BB 40CB0100 00 CMP DWORD PTR DS:, 0
013095A8|.74 2B JE SHORT DFX.013095D5 ;不能跳
013095AA|.83BB 20CB0100 0A CMP DWORD PTR DS:, 0A
013095B1|.75 22 JNZ SHORT DFX.013095D5 ;不能跳
013095B3|.C783 E4CA0100 02000000 MOV DWORD PTR DS:, 2 ;全局变量 等于2代表注册
013095BD|>33C0 XOR EAX, EAX ;kernel32.BaseThreadInitThunk
013095BF|.5B POP EBX ;kernel32.76F7338A
013095C0|.8B8C24 10100000 MOV ECX, DWORD PTR SS:
013095C7|.33CC XOR ECX, ESP
013095C9|.E8 A2210500 CALL DFX.0135B770
013095CE|.81C4 14100000 ADD ESP, 1014
013095D4|.C3 RETN
013095D5 8B93 F8FA0200 MOV EDX, DWORD PTR DS:
013095DB|.8D4C24 0C LEA ECX, DWORD PTR SS:
这里很容易提出一个特征码来
程序码:83 BB 40 CB 01 00 00 74 2B 83 BB 20 CB 01 00 0A 75 22 C7 83 E4 CA 01 00 02 00 00 00
但由于特征码中有对象成员的偏移值,下一版中可能会发生变化,所以我们这里用 ?? 来替代:
特征码: 83 BB ?? ?? ?? ?? 00 74 2B 83 BB ?? ?? ?? ?? 0A 75 22 C7 83 ?? ?? ?? ?? 02 00 00 00
我们的补丁方法就是:
013095A874 2B==> 74 00
013095B175 22==> 75 00
所以我们的修改数据为:
补丁码:83 BB ?? ?? ?? ?? 00 74 00 83 BB ?? ?? ?? ?? 0A 75 00 C7 83 ?? ?? ?? ?? 02 00 00 00
第一种破解方案:修改代码(偏移补丁)
第二种破解方案:修改寄存器(异常中断补丁)
我们还用特征码来定位,
013095A1|> \83BB 40CB0100 00CMP DWORD PTR DS:, 0
013095A8|.74 2B JE SHORT DFX.013095D5 ;该指令相对于特征码的偏移为 7
013095AA|.83BB 20CB0100 0A CMP DWORD PTR DS:, 0A
013095B1|.75 22 JNZ SHORT DFX.013095D5 ;该指令相对于特征码的偏移为 16
设置第一项: 偏移= 7,ZF = 0
伪码为:ZF:0,1,0:0
设置第二项: 偏移= 16,ZF = 1
伪码为:ZF:0,1,0:1
第三种破解方案:修改内存数据(异常中断补丁)
我们把内存 DWORD PTR DS: 修改为 1,使其不跳。
// 补丁地址相对于特征码偏移=0
伪码为:EBX,1CB40:0,1,0:I,D,1
我们把内存 DWORD PTR DS: 修改为 A
// 补丁地址相对于特征码偏移=9
伪码为:EBX,1CB20:0,1,0:I,D,A
第四种方法:NOP掉该指令(异常中断补丁)
第一组伪码为:EIP:0,1,0:NOP
注:这里的NOP不是修改代码,而是将EIP进行加分,跳过该行代码并执行下一行。
第二组伪码为:EIP:0,1,0:NOP
第五种方法:直接修改EIP(异常中断补丁)
我们知道若两个关键调整若失败后会调整到地址 013095D5,该地址相对于特征码偏移为 013095D5 - 013095A1 = 0x34,即十进制的52
我们希望的是进程可以执行到地址 013095B3,去完成赋值, 013095D5 - 013095B3 = 0x22,即十进制的34
由于是往上调,地址变小,所以我们应该填负的34。即十六进制 -22 (界面所有看填写数据的地方非特殊说明均为十六进制),这里和CPU寻址不同,CPU会从该行代码的下一行开始算偏移。
这次我们试一下 INT3 的断点类型
伪码为:EIP:0,1,1:FFFFFFDE
我们制作调试吧补丁,打开DebugView来看一下信息:
OK,条条大道通罗马,Baymax tools 又为大家扩展了一些修改思路及方法,只要想得到,就可以做的到。
Baymax Patch Tools v1.6 Beta 下载
https://www.chinapyg.com/thread-83083-1-1.html 谢谢老大的教程。。。。又学到一种新的分析思路呀。。。。。 又是一个不眠夜,校长太辛苦了! 校长,打包个DOC文档,方便收藏。 学习了一下,感觉很有收获 老大真牛逼呀,膜拜ING。。 膜拜大神 为什么我添加补丁特征数据错误。您输入的数据错误,软件是加壳的。 校长威武!太辛苦了! 校长,什么时候发布神器啊,等着试用