-
-
[原创]od shift+f4 示例.
-
发表于: 2010-12-24 20:25 21945
-
学习od, 偶有所得, 分享, 高手请无视.
一直知道od有条件断点, 一直不太会用, 终于下决心学了下, 有点所得, 与大家分享.
首先感谢 http://bbs.pediy.com/showthread.php?threadid=16494 , 由这儿学到怎么用, 而且有个图, 很直接明了.
下面就是我的所得了.
1, 条件断点的条件 应该是可以断寄存器的值或寄存器指向的地址的值的.
eax==1 是eax等于1时断.
[esp+8]==2f2f 是断esp+4指向的值为0x2f2f. 这种可以断一些函数类的参数, 如send( SOCKET s, const char FAR *buf, int len, int flags );的第3个参数是直接值, 就可以用[esp+8]表示了(是指直接断在call ws2_32.send这行上).
[[esp+8]]==4b4f 就是esp+8的地址所指向的4字节的内容了. 这个后面会有个图示例.
2, 条件断点, 可以选择断或继续运行, 同时做些记录. 菜鸟所得, 一直不知道od可以断点然后继续运行的, 唉, 丢人大了. 有这个选择后就可以向windbg一样, 遇到断点, 记录某些状态然后记程序继续运行了.
3, 下断的窗口中 记录函数参数 的选项不是总为可用, 如果断在函数上才会可用, 断在一些非调用函数的指令是不可用的.
关于几个基本点, 很简单, 说一下.
ALT+L会打开记录窗口, 我们从这儿看断点记录.
ALT+C会打开CPU窗口, 我们在这儿下断.
CTRL+F2会重新运行程序.
下面上图.
1, 设置断点的位置, 当然可以shift+f4了, 或者右键操作也行.
我们的主题即然说是示例就会提供一个大家实验的平台. 有个ok.rar做为附件提交上来了, 大家如果想实验一下的话, 可以下载了玩. 里面有exe,也有源码.
图1
设置断点在MessageBoxA上, 参数3为OK, 遇断暂停程序, 记录第2参数的值,不显示函数参数.
图2
就是上面设置断点的结果查看了. 当然了, 第一步会在MessageBoxA上停下来.
图3
设置断点在MessageBoxA, 参数3为OK, 遇断不停继续, 记录第2参数的值, 显示函数参数.
图4
就是图3断点的结果查看了, 当然, 因为设置了遇断不停, 程序会直接弹出框来, 然后不会断住.
实验程序的源码包: OK.rar
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- call $+5是啥意思? 12374
- [原创]od shift+f4 示例. 21946
- [求助]设置符号表后, 调试时超慢, 正常吗? 3622
- [建议]论坛应该有个自己的图标. 3729
- [建议]首页中工具下载的页面中, 补全对应工具的作者网站的链接. 3492