OllyDebug调试技巧(一)
Chinese:
1、F2下断点,Alt+B打开断点编辑器,可编辑所有下过的断点,空格键可快速切换断点状态。
2、当位于某个Call中,这时想返回到调用这个Call的地方,可以按Ctrl+F9快捷键执行返回功能。这样OD就会停在遇到的第一个返回命令(Ret, Retf)
3、如果跟进系统dll提供的api函数中,此时想返回到应用程序领空里,可以按快捷键Alt+F9执行返回到用户代码命令
4、领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。
5、如004014F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统dll所在的地址空间。
6、程序通常读取文本框内容的字符串用的是以下两个函数:GetDlgItemText(A/W), GetWindowText(A/W)
7、一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。
8、按Ctrl+G键打开跟随表达式的窗口。
9、Ctrl+N可以打开应用程序的导入表,然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱。
10、VC++中,一般调用函数的指令都是push,push,push...Call,参数是逆序入栈的。
11、VC++中,关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里面,如果32位的eax不够存放返回值,系统会将返回值放在内存的某个位置并把该位置的地址放在eax返回。