OllyDbg使用经验小结

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

[原创作者:vical,转帖请保留完整]

上次在一Cracker BBS即兴写了一个多钟头,那知提交的时候它说俺验证码错,让俺的Crack界处女作付诸东流,F! 原先写的都忘了,这回就再写过一篇吧.

OD是win32下公认的骨灰级调试器,它虽工作在Ring3下功能没有Softice和trw强,但在方便\易用\智能之处却远超这两个Ring0调试器直逼IDA.如果能多利用它提供的特色功能,使用起来就会更轻松舒畅,俺用OD不是很长时间,就把那么一点点的使用经验写上来,错误总是不可避免的,只作个抛砖的作用,把大家的玉引出来.也算是对QQ群上常问OD怎么用的朋友作点交待了.

1.快速定位功能.

在代码窗口按"*"号可定位到当前EIP所在的反汇编语句处,按"-"号可转到上一次聚焦的语句上,按"+"号转到下一个聚焦语句上,在跳转\CALL\RET语句处按回车可跳到目标代码处,前提是当时OD能计算得到跳转的目标地址.而"+"号和"-"号可以连续按.在堆栈窗口也是如此.不同的是此时"*"号跳到ESP所指堆栈位置.

2.命名

在反汇编语句或内存窗口点选再按分号可输入名字,虽没IDA的结构处理功能但还是不能小看其作用,我习惯上给有多处调用或跳转的报错和注册成功代码段起名,给输入的用户名\序列号起名,这样做好再看反汇编结果,结构就清晰明白得多了.

3.显示相对地址

在反汇编窗口\内存窗口\堆栈窗口显示地址的地方双击试试,会发现它显示"==>"号,上下的地方就显示相对于这一句的地址例如$+0F\$-4等,这在堆栈应用得比较多:定位到EBP,双击地址,此时就能很容易地看出局部参数的位置啦.再不怕local.1\local.2等难找难算的标号了.

4.附加功能

此项功能可以躲开很多Anti-debug的软件,俺习惯上先运行目标软件,故意让它报错.再打开OD附加,用F12暂停,ALT+F9返回到用户模块,转到报错窗口按确定,会中断在OD中,一般上都是MessageBox报错的下一行.CTRL+A分析.再看它的跳转来源.如果在前面ALT+F9返回不了用户代码的话,可以在此时看堆栈找出调用结构,直接跳到用户模块也行.

5.条件中断

如果碰到某一个CALL ebx之类语句所在段总是被调用,但又只想跟其中一个的话,可以在此句按Shift+F2写入ebx==0ff之类的条件表达式来下中断.此功能在MessageBox和TranslateMessage时特别有用,前者是判断显示信息的第一个字节,用后者时要先获得按纽的ID再用eax==ID下断.具体怎么使用自己试一试吧.

暂时先写这么多,想到什么再完善.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航