OllyDbg。OllyDbg是一种具有可视化界面的32位汇编-分析调试器。它的特别之处在于可以在没有源代码时解决问题,并且可以处理其他编译器无法解决的问题。运行环境:OllyDbg可以在任何采用奔腾处理器的Windows 95、98、ME、NT或是XP(未经完全测试)操作系统中工作。支持的处理器:OllyDbg支持所有80x86、奔腾、MMX、3DNOW!、Athlon扩展指令集、SSE指令集以及相关的数据格式,但是不支持SSE32指令集。
加载符号文件。使用符号库,可以让OD以函数名显示DLL中的函数。例如MFC42.DLL是以序号输出函数,这是在OD显示的是序号,如果加载了MFC42.DLL调试符号,则以函数名显示相关输出函数。
加载程序。OD可以使用两种方式加载目标程序调试。一种是CreateProcess创建进程;另一种是利用DebugActiveProcess函数将调试器绑定到一个正在运行的进程上。
加载DLL文件。加载后端在DllMain函数,可调式;加载后运行,点击-调试-调用DLL输出,选择要调试的DLL函数,设置好参数,点击调用。
alt+c,CPU指令窗口;alt+m,显示分配的所有内存块;F7,单步步进,遇到call跟进;F8,单步步过,遇到call不跟进;ctrl+F9,运行到第一个ret时中断;alt+F9,返回到程序领空;F9,运行程序。
软件断点。断点是一个调试器的重要功能,可以让程序中断在需要的地方,从而方便对其分析,可以设置无数个。
硬件断点。针对会自修改的程序,最多同时存在4个。
内存断点。跟踪内存数据使用,内存访问、读、写断点。
消息断点。拦截Windows消息使用。
显示所有函数调用。逆向一个WINDOWS程序比逆向一个DOS程序容易很多,因为在Windows中,有很多API函数被使用,因此,分析一个程序,用什么API关键函数作为切入点就显得比较关键。bpx a,显示所有系统函数调用,方便在调用前下断点。
其它快捷键。crtl+F2,重新载入;crtl+g,跳转地址;crtl+*,设置EIP;alt+b,断点窗口;space,修改汇编代码;;,添加注释。
插件。StrongOD插件,阻止恶意代码反调试,检测OD;command bar,命令行插件,方便调试、断点;OllyDump,将调试进程转存为文件;字符串搜索插件,查找样本内字符串,并能直接定位、下断点。
WinDbg是微软发布的一款相当优秀的源码级调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件,主要用于调试系统文件和驱动程序。
配置。虚拟机硬件配置,添加管道命名,\\.\pipe\com_1;boot.ini中【operating system】节中添加一行,multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft WindowsXP Professional -debug"/fastdetect/debug/debugport=com1 /baudrate=115200;windbg快捷方式,添加以下代码:-b-k com:pipe,port=\\. \pipe\com_1,baud=115200,reconnect -y;启动windbg,等待连接;开启虚拟机,再启动选择调试模式。
命令行调试。dx address:dd,32位双字显示;da,ascii码显示;du,unicode显示。x add data,修改内存数据。bp add 参数,对地址、函数下软断点。bl 显示断点。bc 清除断点。
调试命令。F11或F8,步入;F10 步过;F5,运行;CTRL+SHIFT+F5,重新运行;SHIFT+F5,关闭;CTRL+BREAK,停止。
学习资料推荐。rootkits,Windows内核的安全防护;漏洞分析,0day安全-软件漏洞分析、安全漏洞追踪;网马分析,网页木马攻防实战;木马分析,黑客任务之华山论木马、木马攻防全攻略;基础预备知识,汇编、逆向、win32编程;恶意代码知识,计算机病毒防范艺术、windows安全防范手册、计算机病毒与反病毒技术、计算机病毒分析与防范大全、计算机病毒分析与对抗、决战恶意代码。