Olldbg常见问题
2007-01-14 20:15:31 来源:WEB开发网Q:OD中如何运行到光标所在处?
A:将光标移到目标位置,按F4.(SoftICE等价功能键是F7)
Q:如何用OD修改可执行程序?
A:直接在反汇编代码区更改,这时可以使用汇编代码更改,然后选中修改后的汇编代码,右击-->复制到可执行文件-->保存文件.
Q:使用OD,从内存区复制内存数据的时候,有时候无法将所有的数据都复制到剪贴板
A:ALT+o打开调试选项,选择“字符串”标签,里面有个“无法打印的ASCII字符转存为圆点”,选中就可以了。或用OD修改版,可以主页工具下载栏目下。
(nbw回答)
Q:OD为什么删除了断点,重新加载的时候,这些断点都会重新出现
A:设置ollydbg.ini,将配制文件里改成如下:BackupUDDfiles=1
(kanxue)
Q:如何还原到OD到分析前的状态?
A:右键分析/从模块中删除扫描
Q:如果已经知道某一CALL的具体作用,能否把后面所有相同的CALL都改成函数名形式?
A:比如CALL110000 此中已经知道110000是一个核心计算
则如下操作,让光标停在CALL110000这个语句上,按回车键
会跳到110000的地址上去显示,之后让光标停在110000上,按
shift和;(分号)其实就是完成一个:(冒号)的动作,输入
名称,这回所有的调用110000处,都会显示CALL 你刚才输入的
名称了.(nig回答)
Q:什么是UDD?
A:OllyDbg把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等
Q:OD的数据窗口显示一个下划线,是什么意思?
A:重定位加下划线[Underlinefixups],几乎所有的DLL和一部分程序都包含重定位,这样就可以在内存中的不同基地址加载模块了。当该项开启时,CPU反汇编窗口或CPU数据窗口中的重定位地址都将添加下划线。(xing_xsz)
Q:用OD调试一些加壳程序,如Themida等,可能你会发现下断后(包括硬件断点),程序跑到断点时,OD会出现假死现像。
A:打开OD配置文件ollydbg.ini,你会发现:Restorewindows=123346 //这个Restorewindows可能会是一个很大的值
现在只需要将Restorewindows=0,重新用OD调试程序,假死问题就消失了。 (kanxue)
Q:请问“bmsg30A12wm_gettext”这个命令OD中怎么写?(OD中如何下消息断点?)
A:
http://bbs.pediy.com/showthread.php...;threadid=17671
还有:
SoftIce能够跟踪应用程序的消息,那么OllyDbg呢?
byFuZzYBiT
OllyDbg也是可以的,那是一个非常"隐蔽的功能"。它是如此的有用。
1.打开程序
2.名字窗口[在CPU窗口中按CTRL+N]
3.查找User32.TranslateMessageAPI
4.右击/FindReferences(查找参考)
5.下条件断点[SHIFT+F4]
6.表达式:MSG
7.记录函数参数:永远
如果你不能找到它,试试右击鼠标,然后搜索全部模块中的名称。
但是如果我想要捕捉一个特定的消息如WM_COMMAND呢?
只对WM_COMMAND记录
用这个方法做:
1.打开一个程序
2.名字窗口[在CPU窗口中按CTRL+N]
3.查找User32.TranslateMessageAPI
4.右击/FindReferences(查找参考)
5.下条件断点[SHIFT+F4]
6.条件框:MSG==WM_COMMAND
7.记录函数参数:条件满足时
Q:一些修改版的OD无法源码级调试程序
A:OD默认是用DBGHELP.dll,如果目录下没有这个,OD会到系统目录下找DBGHELP.dll。
而修改版OllyICE,为了防止一些程序检测DBGHELP.dll模块,故将其改名了,所以必须在当前目录下保留ICEHELP.DLL这个文件。
更多精彩
赞助商链接