- UID
- 47901
注册时间2008-3-2
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 无聊 前天 08:38 |
---|
签到天数: 516 天 [LV.9]以坛为家II
|
求助:在调试某软件时,遇到一个问题,软件多次调用一个CALL来判断注册与否,此call内部分代码如下:
00432B2F CC int3
00432B30 8B41 08 mov eax, dword ptr [ecx+8] //我断在这里,发现这里代码为EAX赋值了,若赋给EAX是0以后软件就显示未注册版了。
00432B33 C3 retn
00432B34 CC int3
------------------------------------------------------------------------
提示:ds:[01716570]=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 [eax], al
01716570 0000 add byte ptr [eax], al
01716572 0000 add byte ptr [eax], al
01716574 2C 8D sub al, 8D
01716576 2B78 F8 sub edi, dword ptr [eax-8]
01716579 6B71 01 2C imul esi, dword ptr [ecx+1], 2C
0171657D 8D2B lea ebp, dword ptr [ebx]
0171657F 78 FF js short 01716580
这样软件在别处设暗桩的话,读取这里就不会出问题了,请问是否应改这里(还是使用我的最初改法)。若改这里又该如何进行更改好呢(最好给详细一点的直接改法或内存补丁法)?
谢谢大家关注此帖!!十分感谢回帖的朋友!!
[ 本帖最后由 llh001 于 2008-9-20 16:17 编辑 ] |
|