本课是针对注册时候的报错弹窗不是信息框MessageBox,而是窗体的情况

首先打开课件看一下

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

既然课件是个易语言程序,那使用E-DEBUG试试

E-DEBUG打开课件,点击“start”,课件弹出登录界面,输入假码,点注册

得到弹窗事件发生的地址:“ 004010CB”。复制下来

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

OD载入课件,定位到刚才找到的地址

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

发现这个地址是一个段首。下断点,F9运行,输入假码点注册,程序被断下来

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

一路F8向下,看到这段代码

可以看到,有一个JNZ很可疑,它下面的代码段有两处窗口调用。

而这个JNZ跳转的实现与否,决定了代码调用那个窗口。

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

通过修改JMP或者标志位实验一下,让跳转实现。

然后F9运行程序,发现注册成功了。说明第二个窗口就是提示注册成功的窗口

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

E-DEBUG工具是完全针对易语言的,如果不是易语言,正常的思路 是这样的:

既然输入假码后发现有报错提示,那就载入OD先搜索一下报错字符串,看能不能搜索到。

如果搜索不到,可以考虑下一个MessageBox断点。

如果该断点无法成功断下程序,则有可能跟本例的课件一样,报错弹窗不是信息框,而是窗口

那就下一个窗口的断点再试。

工具栏上点击BreakPoint------Text Recuperation,根据程序的编码方式选择不同的下断方式

[学习笔记]利用e-debug和GetWindowTextA破解CM课件-LMLPHP

下好断点后,F8单步跟踪一步步进行破解。

05-11 13:19