如何更改代码。
求助:在调试某软件时,遇到一个问题,软件多次调用一个CALL来判断注册与否,此call内部分代码如下:00432B2F CC int3
00432B30 8B41 08 mov eax, dword ptr //我断在这里,发现这里代码为EAX赋值了,若赋给EAX是0以后软件就显示未注册版了。
00432B33 C3 retn
00432B34 CC int3
------------------------------------------------------------------------
提示:ds:=00000000
eax=0016C7B0
本地调用/跳转来自 004284E6
我的最初改法是
00432B2F CC int3
00432B30 B8 01000000 mov eax, 1
00432B35 C3 retn
00432B36 CC int3
不知这样改是否可以(软件倒是显示注册版了,就怕别处有暗桩!!)。
我的想法最好是让01716570=00000000变为00000001,于是ctrl+G来到这里,代码为.
0171656E 0000 add byte ptr , al
01716570 0000 add byte ptr , al
01716572 0000 add byte ptr , al
01716574 2C 8D sub al, 8D
01716576 2B78 F8 sub edi, dword ptr
01716579 6B71 01 2C imul esi, dword ptr , 2C
0171657D 8D2B lea ebp, dword ptr
0171657F 78 FF js short 01716580
这样软件在别处设暗桩的话,读取这里就不会出问题了,请问是否应改这里(还是使用我的最初改法)。若改这里又该如何进行更改好呢(最好给详细一点的直接改法或内存补丁法)?
谢谢大家关注此帖!!十分感谢回帖的朋友!!
[ 本帖最后由 llh001 于 2008-9-20 16:17 编辑 ] 里边只是一个变量的地址 可以下硬件断点看是哪里做的赋初值 然后修改就可以了
Patch 到空白地址这样写或许可以 如果其他地方没有继续验证的话 最好的方法就是 硬断然后分析
mov byte ptr ,1
mov eax, dword ptr 感谢回复,硬件断点还真没用过,我试试。多谢提醒!! 2楼回复的方法是暴破的根本方法。
页:
[1]