OllyDbg破解系列学习笔记(三)
来源:互联网 发布:淘宝客联盟我的舞台 编辑:程序博客网 时间:2024/04/28 05:00
第十二章 消息断点
在程序检测CC断点的情况,使用消息断点的效果会更好。我们知道Windows窗口程序至少有一个消息循环,消息循环有特定的API函数构成,最常见的是GetMessage和DispatchMessage函数,有的消息循环也会用到其他的API函数。
实验:
1、普通CC断点获取文本
加载我们的测试CrackMe,在反汇编窗口中右键选择-Search—Name(label) in current module,可以查看当前模块的导入函数名称表,获取编辑框文本常用的API是GetDlgItemTextA(W)或者GetWindowTextA(W)。我们在列表中可以看到GetDlgItemTextA,但并不意味这个函数就是用来读取用户输入的用户名和序列号的,可能是获取用户输入的其他字段,也有可能是作者故意添加来误导我们。还有就是该API函数可以通过不同的方式来动态加载,不一定通过导入表。我们可以通过如下两个方式设置断点:
下断后,运行程序,输入用户名和序列号点击OK程序会断在我们下断API的汇编代码的第一句处,此时我们注意堆栈
我们在菜单栏选择调试-执行到返回,我们看数据区0x0040218E,用户名已经存在缓冲区里了,F9运行会再次断在GetDlgItemTextA函数处,此时是获取密码框的。
很多有经验的程序员不使用API函数来获取编辑框中文本,而是直接通过发送消息获取编辑框中的文本。
2、消息断点
首先我们单击工具栏中的B删除之前所有CC断点。消息断点与普通CC断点的区别在于,普通CC断点在程序启动之前就可以设置,但是对于消息断点来说,只有在窗口创建之后才能设置以及拦截消息。
F9让程序运行起来,点击工具栏中的W打开窗口列表:
找到Class(类名)为Button,Title(标题)为OK的窗口,在此行单击右键选择--Message Breakpoint on ClassProc(在classProc上设置消息断点),按如下设置:
在Message(消息)下拉列表中选择202 WM_LBUTTONUP,并且选择Break on any Window(当前程序任何窗口接收到该消息都中断),以及Pause program(中断程序),并且选中Log WinProc argument(记录消息过程函数的参数)。设置完毕后点击确定,可以看到OK和cancel按钮都被设置了断点:
下面我们输入用户名和密码并点击OK,程序断了下来:
可以看到程序断在一段不属于主程序的代码中,要回到主程序的代码处也很容易,我们知道主程序的代码是401000开头的这个区段,我们打开内存映射窗口,在地址为401000的区段设置内存访问断点,F9运行,程序会断在主程序代码段中。因为在开头为401000的区段设置了内存 访问断点,所以这时F9实际上是一直的单步执行。这样如果程序不是通过API函数来获取用户输入的序列号的话,我们可以通过消息断点来定位,这是消息断点的优点。
我们还可以给消息断点设置条件记录
可以bp TranslateMessage,并且设置条件记录,记录表达式为MSG,程序不中断,这样我们可以在记录中找到消息记录,并挑选感兴趣的消息。
0 0
- OllyDbg破解系列学习笔记(三)
- OllyDbg破解系列学习笔记(一)
- OllyDbg破解系列学习笔记(二)
- OllyDbg破解系列学习笔记(四)
- OllyDbg破解系列学习笔记(五)
- OllyDbg破解系列学习笔记(六)
- OllyDbg破解系列学习笔记(七)
- OllyDbg破解系列学习笔记(八)
- OllyDbg破解系列学习笔记(九)
- OllyDbg破解系列学习笔记(十)
- OllyDbg破解系列学习笔记(十一)
- OllyDbg破解系列学习笔记(十二)
- OllyDbg破解系列学习笔记(十三)
- 看雪学院-OllyDBG入门系列(三)笔记
- OllyDbg 使用笔记 (三)
- OllyDbg使用学习 笔记
- OllyDBG 入门系列(三)-函数参考
- OllyDBG 入门系列(三)-函数参考
- Tomcat源码分析(四)--容器处理链接之责任链模式
- 数据结构之稀疏矩阵18浅谈三元组,行逻辑以及十字链表
- js中传递参数
- Sbothai เข้ากับคนไทยได้ดี
- RoboCup 2D足球仿真项目team_logo制作教程
- OllyDbg破解系列学习笔记(三)
- 递归:八皇后 92种解
- postgres笔记
- 黑马程序员——面向对象17:Object类
- spark中job的流程分析(未看)
- JAVA学习第三十八课(常用对象API— Map集合及其常用方法
- 前端大牛的修炼之路从现在开始
- Two Sum-LeetCode
- 敛栈拦斩诵镣党淮叛衙承啄刂庸苯