SoftICE是一款经典的调试工具,运行在Ring0级,可以调试驱动。但平时调试的程序都是Ring3级,因此推荐大家用OllyDBG(简称OD),这款工具上手容易,功能十分强大,现在论坛上的文章基本都是用OllyDBG来讲解的。
Q:从哪儿得到 OllyDBG、IDA等加解密工具?
A:
bf3K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6u0r3N6r3!0G2L8s2y4Q4x3X3g2Z5N6r3@1`. 另外,由于版权,本站不提供SoftICE、IDA等商业软件下载,需要的可以用Google搜索或时常关注论坛。
Q:W32Dasm中的“Ord:0109h”是什么?
A:是Hint,本函数在其所驻留DLL的导出表中的索引号
( firstrose 回答)
[QUOTEd=Olldbg常见问题]
Q: OD中如何运行到光标所在处?
A: 将光标移到目标位置,按F4.(SoftICE等价功能键是F7)
Q: 如何用OD修改可执行程序?
A:直接在反汇编代码区更改,这时可以使用汇编代码更改,然后选中修改后的汇编代码,右击-->复制到可执行文件-->保存文件.
Q:使用OD,从内存区复制内存数据的时候,有时候无法将所有的数据都复制到剪贴板
A:ALT + o 打开调试选项,选择“字符串”标签,里面有个“无法打印的ASCII字符转存为圆点”,选中就可以了。或用OD修改版,可以主页工具下载栏目下。
(nbw回答)
Q:OD为什么删除了断点,重新加载的时候,这些断点都会重新出现
A:设置ollydbg.ini,将配制文件里改成如下:Backup UDD files=1
(kanxue)
Q:如何还原到OD到分析前的状态?
A:右键 分析/从模块中删除扫描
Q:如果已经知道某一CALL的具体作用,能否把后面所有相同的CALL都改成函数名形式?
A:比如 CALL 110000 此中已经知道110000是一个核心计算
则如下操作,让光标停在CALL 110000 这个语句上,按回车键
会跳到110000的地址上去显示,之后让光标停在110000上,按
shift 和; (分号) 其实就是完成一个:(冒号)的动作,输入
名称,这回所有的调用110000处,都会显示CALL 你刚才输入的
名称了.(nig回答)
Q:OD现在有一个毛病,一旦修改了调试的程序并保存后,重新载入后OD就会重分析程序,原来保存的Udd文件就失效,给调试带来很大不便。
A:问题在这:Olly Advaced 插件,附加选项Ⅱ /忽略被修改的断点处内存(4st0ne回答)
Q:什么是UDD?
A:OllyDbg 把所有程序或模块相关的信息保存至单独的文件中,并在模块重新加载时继续使用。这些信息包括了标签、注释、断点、监视、分析数据、条件等等
Q:OD的数据窗口显示一个下划线,是什么意思?
A:重定位加下划线[Underline fixups],几乎所有的DLL和一部分程序都包含重定位,这样就可以在内存中的不同基地址加载模块了。当该项开启时,CPU反汇编窗口或CPU数据窗口中的重定位地址都将添加下划线。(xing_xsz)
Q:用OD调试一些加壳程序,如Themida等,可能你会发现下断后(包括硬件断点),程序跑到断点时,OD会出现假死现像。
A:打开OD配置文件ollydbg.ini,你会发现:Restore windows= 123346 //这个Restore windows可能会是一个很大的值
现在只需要将Restore windows=0,重新用OD调试程序,假死问题就消失了。 (kanxue)
Q:请问“bmsg 30A12 wm_gettext”这个命令OD中怎么写?(OD中如何下消息断点?)
A:
http://bbs.pediy.com/showthread.php?s=&threadid=17671
还有:
SoftIce 能够跟踪应用程序的消息,那么OllyDbg呢?
by FuZzYBiT
OllyDbg也是可以的,那是一个非常"隐蔽的功能"。它是如此的有用。
1. 打开程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 表达式: MSG
7. 记录函数参数:永远
如果你不能找到它,试试右击鼠标,然后搜索全部模块中的名称。
但是如果我想要捕捉一个特定的消息如WM_COMMAND呢?
只对WM_COMMAND记录
用这个方法做:
1. 打开一个程序
2. 名字窗口[ 在CPU窗口中按CTRL+N ]
3. 查找 User32.TranslateMessage API
4. 右击/FindReferences(查找参考)
5. 下条件断点 [SHIFT+F4]
6. 条件框:MSG==WM_COMMAND
7. 记录函数参数: 条件满足时
Q:一些修改版的OD无法源码级调试程序
A:OD默认是用DBGHELP.dll,如果目录下没有这个,OD会到系统目录下找DBGHELP.dll。
而修改版OllyICE,为了防止一些程序检测DBGHELP.dll模块,故将其改名了,所以必须在当前目录下保留ICEHELP.DLL这个文件。