IDA Pro Appcall功能浅析
By:obaby
其实IDA的这个功能应该出现的比较早了,最早应该是在IDA Pro5.6中出现的,但是在国内一直没有看到这方面的相关文章。也不知道国内有没有人留意这些者脚本直接调用内置的函数没有明显的区别。如果你使用过GDB调试器(Call命令)、VS(Immediate窗口)或者Borland C++ Builder等你应该对于这个功能比较熟悉了。
其实IDA的这个功能应该出现的比较早了,最早应该是在IDA Pro5.6中出现的,但是在国内一直没有看到这方面的相关文章。也不知道国内有没有人留意这些者脚本直接调用内置的函数没有明显的区别。如果你使用过GDB调试器(Call命令)、VS(Immediate窗口)或者Borland C++ Builder等你应该对于这个功能比较熟悉了。
By :obaby
在IDA Pro6.1中我们扩展了Bochs调试器插件,现在已经可以进行64位代码段的调试。在IDA Pro 6.2版本中将有可能实现PE+ 可执行程序的动态调试。由于程序将会在Bochs系统中执行,因而在调试的过程中我们并不需要实际的64位操作系统,因而在实际的调试过程中可以从任何的32位或者64位的Linux,Mac OS 或者Windows操作系统中使用IDA Pro进行64位可执行文件的调试。
为了确认这一项新的功能,我们将进行PE+格式的一个木马程序进行脱壳并且进行一个大体的分析,这个文件是由MATCODE Software公司的mpress进行压缩的。我们将会对讲解DLL文件脱壳,修复输入表并且最终修复数据库来进行分析。
Unpacking the DLL
我们的目标文件是一个木马的DLL文件,该文件被杀软识别为“Win32/Giku”。我们从使用idaq64载入DLL文件开始进行分析,载入之后按Ctrl+S键打开区段窗口:
VMWare的GDB调试器功能比较简单也比较基础,该调试器并不知道处理器和线程的任何信息(对于Windows系统),因而如果想要得到一些高等级的信息,我们需要自己做一些额外的工作。本文主要讲解了如何使用IDAPython脚本来让IDA处理已经加载的模块列表和加载符号库。
设置VM来进行调试
在进行这一步之前首先要保证你已经有了一个已经安装好的Windows(32位)的操作系统。在开始调试之前,首先要拷贝你想要看到符号的模块到系统目录下,如果你不确定要复制那些文件,可以将如下的文件复制到虚拟机目录下:位于System32目录下的nt*.exe和hal.dll文件、整个System32\drivers目录。在这里我将文件复制到了E:\虚拟机系统\Windows 7\Shar4ed dll\目录下。
编辑虚拟机的.vmx文件来激活GDB调试器功能:
图01
今天在测试的时候发现IDA 5.5可以启动windbg调试器,而IDA 6.0却无法启动windbg调试器。大体看了一下可能是由于搜索路径造成的,重新将windbg安装到program files下之后问题就结局了。
网上也有关于用IDA调试驱动的文章,这里只是再整理一下,用IDA载入驱动分析完成之后选择调试器为Windbg debugger,如图1所示:
图1
然后执行菜单中的Debugger->Debugger options打开如图2所示的设置窗口。
图2
以前总想知道IDA是否能够实现内核调试,后来找了一段时间没什么结果就暂时放弃了。今天在国外的一个博客上偶然看到了用IDA实现内核调试的方法。
其实现在国内也有很多文章介绍了IDA通过串口进行调试的文章,如果大家想看的话可以搜索下。
这里只是参考远远吧实现的方法大体的用中文表述了一下。在调试之前需要安装如下的软件:
This is a plugin for OllyDbg 1.10 and Immunity Debugger 1.xx to replace the old disasm engine by a more recent one : BeaEngine 4.0.
You just have to press Ctrl+W to change the disasm engine.
If you want to use BeaEngine only on selected lines, then just press Ctrl+X.
With this plugin, you can decode recent instructions for the following technologies : MMX, FPU, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 , VMX, CLMUL and AES.
You can even decode undocumented instructions usually used in malicious codes.
If you want to use a specific syntax, BeaEngine allows you to disassemble code in masm32 syntax, nasm syntax, GoAsm syntax or GNU Assembler syntax.
Current version : 3.0
download link:http://cracklab.ru/download.php?action=get&n=ODU1
OllyDbg is a 32-bit assembler level analysing debugger for Microsoft® Windows®. Emphasis on binary code analysis makes it particularly useful in cases where source is unavailable. OllyDbg is a shareware, but you can download and use it for free.