在调试比较复杂的Win32程序时,要找到窗口过程并不容易,OD提供了两个工具:消息断点和内存断点,善用这两个工具可以大大提高调试的效率。
消息断点是给指定的消息设置断点,本质还是条件断点;内存断点有访问断点和修改断点,本文使用的是访问断点。
下面是详细步骤。
示例程序
现在有一个模拟登录的程序,效果图如下:

输入正确的账号和密码会提示成功,否则提示错误,现在并不知道账号密码。

破解步骤
只要找到点击按钮的窗口函数,就能看到账号密码了。对于简单的程序,可以从WinMain开始跟,不过这样效率低,要善用工具。
首先用OD打开程序,F9执行,让界面跑起来

点击W窗口,可以枚举出所有窗口

第一次进来是空白的,右键点击actualize,窗口就枚举出来了


本文介绍了如何利用OD调试器中的消息断点和内存断点来高效地定位Win32程序中的窗口过程。通过设置消息断点在特定鼠标事件上,结合内存访问断点,可以跟踪到处理按钮点击的窗口过程,从而揭示账号密码验证逻辑。在调试过程中,发现了账号长度需为3,密码长度需为5才能通过校验的条件。
最低0.47元/天 解锁文章
1万+





