调试软件,最重要的就是下断点,那么如何下断点,就是一门重要的技巧.
比如:弹提示框,就下MessageBoxA,注册表的,就下RegOpenKeyA等等.
当然,能直接下到按钮事件,当然更为方便,因为到了按钮事件后,很快就会到达核心代码,离你的破解也就不远了.所谓按钮事件,就是指按钮按下去以后 触发的函数,当软件注册失败没有提示的时候,按钮事件非常管用

http://www.dbgpro.com/archives/236.html   这篇文件介绍了常用的按钮事件怎么找,现在,我们通过实际的例子来看看按钮事件的应用

附加下载地址 链接: http://pan.baidu.com/s/1i4AR59V 密码: kse8         解压密码 www.dbgpro.com

我们运行软件。。看图标发现很明显 是易语言的,我们OD附加,然后下易语言的按钮事件断

然后CTRL+B,查找FF 55 FC

查找到的这个CALL就是了,F2下断吧

找到一个以后我们ctrl+l继续 直到都下了断点为止 然后我们F9运行,输入假码 dbgpro.com点注册,发现断下来了,注意 我们要F7跟入

F7后,来到函数开始处,我们F8单步跟踪

跟到下面这个call的下一条语句时候,也就是函数调用完了平衡堆栈的代码,发现寄存器eax变化了,并且是我们的假码

我们继续F8,后面有几个小跳转,不管他。应该不是判断的 先不分析,都F8步过就好

我们跟到40118a出这个push的时候发现,ebx是我们的假码,下面的call和jnz很可疑,我们注意,我们单步跟到cmp处

我们看到 cmp处是拿ebp-0x10 我们可以看到是个地址,我们去数据窗口看看

我们在command 输入 db 0x270713

此处是0,我们简单分析下,cmp 现在是拿0和-1比较,肯定不相等,那么 ZF标志就不会为0 那么JNZ就不会跳,所以我们要把jnz改jmp让他跳过去

改了以后我们F9运行看看,是不是成功了

打赏