本帖最后由 Shark恒 于 2013-7-13 11:54 编辑
声明:本人第一次发帖,如有违规什么或者文中的错误的希望管理员跟大家批评指正。
首先感谢恒大的教程,使我这样的菜鸟得以进步,真的是黑暗中的一盏明灯。
恒大S02E07教程中的软件是用易语言编写,但是我用PEID查后显示的却是VC++的,问度娘后才知,这属于正常情况,很多易语言编写的软件都被识别为VC++的。原文使用了e-debug软件寻找按钮事件入口,下断并爆破。看过恒大的教程后,我在捉摸e-debug是如何找到按钮事件入口的呢,在网上查资料也没得到答案,却无意中发现了消息断点与RUN跟踪的配合使用可以找到按钮事件入口,于是按照此法对恒大的软件进行了试验,并找到了相同的按钮事件入口。下面将我的操作过程以及心得写下,有哪些不对的地方,希望大家多多指正。
1 首先OD载入软件,并按下F9运行程序,程序窗口出现后,输入用户名和密码,暂且先不点击登录按钮。
2 在OD中点击查看---窗口,显示结果如图1,如果点击查看---窗口后界面中是空白的,右键点刷新即可出现图1结果。选中图1中的“登录”这一行,右键---在CLASSPROC上设置消息断点,如图2。然后会弹出如图3的窗口,在“信息”后的下拉列表选择202 WM_LBUTTONUP,其他选择默认,点击确定。WM_LBUTTONUP是windows中的左键单击释放后发出的消息,如果不懂windows消息机制的建议在百度中进行补课。因为填写用户名及密码后,在单击登录按钮并释放左键后,软件才会显示“登录失败!”信息,故选择WM_LBUTTONUP消息断点。
图 1
图 2
图 3
4 经过第3步后,就可以点击“登录”按钮了,然后OD会断在如图4的位置,然后快捷键ALT+M或者查看---内存进入如图5的界面,在.text区段上下内存访问断点即F2断点。然后F9运行,即会断在程序领空,如图6,为什么在.text区段上下F2断点,不知道原因的话可以自行进行搜索学习,你会学到更多东西。
图 4
图 5
图 6
5 此时消息断点部分已经结束,接下来的是RUN跟踪,前4步做完后,点击选项---调试选项,进入调试选项窗口,如图7,依照图7中设置后点击确定。然后点击调试---打开或清除RUN跟踪,将RUN跟踪打开。然后在OD的CPU汇编窗口按下快捷键Ctrl+A对代码进行分析,这步一定要做,不然可能跟踪不到东西,然后在第4步中所断的那句代码上点击右键进行如图8的设置,设置后,之后运行过的代码前会出现一道竖着的红色粗线,待会儿会有图让大家看。
图 7
图 8
6 第5步做完后,F9运行程序,点击查看--RUN跟踪进入如图9的窗口,随便选择模块是“第2季第7”的一行右键选择“统计模块”,进入如图10的窗口,窗口中最左列的数字显示的是此行代码在打开RUN跟踪后共运行了几次,因为我们要进行爆破故应找只运行了1次的代码,滑动滚动条来到第一行执行次数为1次的代码处,这行代码的地址与e-debug所得出的按钮事件入口地址是相一致的。
图 9
图10
7 找到按钮事件入口地址后,利用恒大所教的爆破方法即可对软件进行爆破。
最后再次感谢恒大,以及在看雪网上看到的CCdebug写的“消息断点及RUN跟踪”的教程。
恒大S02E07传送门: http://www.52pojie.cn/thread-202573-1-1.html
|