如果觉得我写的这个对你有点帮助,请加分和热心,谢谢!!!!! OD载入,运行起来,进入注册窗口。随便输入点什么,点击确定。出现“你输入的注册码有误”的提示框,不用管他。点击“暂停”或按F12键,然后按ALT+F9组合键(调试菜单里的“执行到用户代码”),现在我们点击刚才出现的“注册码有误“的提示框上的“确定”按钮。OD会自动停到如下位置: ---------------------------------------------------------------------------------- 004DD045 . 8B45 FC mov eax,dword ptrss:[ebp-0x4] 004DD048 . E8E77AFAFF call LanHelpe.00484B34 004DD04D . 50 push eax ; |hOwner 004DD04E . E8E1ADF2FF call<jmp.&user32.MessageBoxA> ; \MessageBoxA//错误提示 004DD053 > 8305 6C2B5B00>add dword ptr ds:[0x5B2B6C],0x1//OD跟随位置
我们向上回溯到关键跳的位置,如下: --------------------------------------------------------------------------------------
004DCC13 . E89C270000 call LanHelpe.004DF3B4//关键CALL 004DCC18 . 84C0 test al,al 004DCC1A . 0F84 F4030000 je LanHelpe.004DD014 //关键跳,NOP掉 ---------------------------------------------------------------------------------------- 我们在关键跳上下断,重新点击注册窗口的“确定”按钮,OD断下来,我们发现 关键跳,实现跳转,所以我们要做的就是将它NOP掉。 完成这一步我们的破解工作,完成了一半了。因为我们保存以后,打开程序,发现仍有注册窗口出现。 现在我们点击右键,选择“查找”里的“所有命令”在里面输入关键CALL,即下面这个命令call 004DF3B4 。(你只需要在关键CALL这一行,双击出现汇编修改窗口,将里面的命令复制即可)。确定后,出现下面的信息: --------------------------------------------------------------------------------------------- 找到的命令 地址 反汇编 注释 004DCC13 call LanHelpe.004DF3B4 (初始 CPU 选择) 004DFB8B call LanHelpe.004DF3B4 ----------------------------------------------------------------------------------------------- 这里有两条命令。我们已经修改了第一条命令下的跳转,所以我们现在要做的就是修改第二条命令下的跳转即可。在第二条命令上双击来到如下: ------------------------------------------------------------------------------------------------- 004DFB8B . E824F8FFFF call LanHelpe.004DF3B4 //OD跟随处 004DFB90 . 84C0 test al,al 004DFB92 . 7526 jnz XLanHelpe.004DFBBA//关键跳,JMP掉 ---------------------------------------------------------------------------------------------------- 我们可以在关键跳上下断,然后重新加载程序,程序会断在这里。我们发现这没跳,因此 我们JMP掉,完成破解工作。 上面的软件在原创区有下载。详见 注:如果大家还不清楚,请观看小生大大的视频第二课,讲的很详细,而且很有启发性。
|