- UID
- 10499
注册时间2006-4-1
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
尝试破解鼠标点击精灵mcSpirit.exe(vb程序,无壳),OD载入mcSpirit.exe,搜索字符串“注册码错误”无果,于是命令行输入bp rtcMsgBox,F9运行,输入假码,断在
660DC5F3 > 55 push ebp
660DC5F4 8BEC mov ebp,esp
堆栈显示,
返回到 mcSpirit.00430821 来自 MSVBVM60.rtcMsgBox
跟随至
0043081B . FF15 D8104000 call dword ptr ds:[<&MSVBVM60.#595>] ; MSVBVM60.rtcMsgBox
00430821 . 8D4D A0 lea ecx,dword ptr ss:[ebp-60]
00430824 . 8D55 B0 lea edx,dword ptr ss:[ebp-50]
00430827 . 51 push ecx
上面0043081B 的call就是弹出错误提示框的,再向上有一个很大的跳转
004304E8 . 6A 03 push 3
004304EA . FFD7 call edi ; <&MSVBVM60.__vbaFreeVarList>
004304EC . 83C4 10 add esp,10
004304EF . 66:85DB test bx,bx
004304F2 0F84 CC020000 je mcSpirit.004307C4‘此跳转修改jnz后,保存为exe文件,输入假码,显示注册成功,请重启程序,重启后还是未注册版。怀疑是标志位验证。
上面还有几个call,不知道F7跟入哪个。
004304C4 . FF15 58124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList
004304CA . 83C4 0C add esp,0C
004304CD . 8D4D E0 lea ecx,dword ptr ss:[ebp-20]
004304D0 . FF15 1C134000 call dword ptr ds:[<&MSVBVM60.__vbaFreeO>; MSVBVM60.__vbaFreeObj
尝试在004304C4 . FF15 58124000 call dword ptr ds:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList下断,F7进入,来到
660E60C5 > 53 push ebx
660E60C6 56 push esi
660E60C7 8B7424 10 mov esi,dword ptr ss:[esp+10]
660E60CB 57 push edi
660E60CC 8D7C24 18 lea edi,dword ptr ss:[esp+18]
660E60D0 33DB xor ebx,ebx
660E60D2 8B06 mov eax,dword ptr ds:[esi]
660E60D4 85C0 test eax,eax
将 660E60C5 > 53 push ebx
660E60C6 56 push esi
修改为 660E60C5 mov bx,1
660E60C9 retn ,右键复制到可执行文件,所有改动,保存文件,
自动显示保存为MSVBVM60.DLL,这是什么原因呢?为何不是保存为exe文件呢?
关于此破解,还请高手指点一下思路 |
|