通常情况下,我们使用反编译工具是为了在没有源代码的情况下促进对程序的了解,以便于我们分析软件的漏洞、分析编译器生成的代码,以验证编译器的性能和准确性,同时也可以用来分析软件是否带有恶意程序,提高安全性。
目前市面上功能比较全面、分析算法较先进的一款反编译工具叫做IDA,今天我们来探讨下关于这款工具的一些快捷键使用方式。
一、断点列表
IDA具备断点调试功能,我们可以通过在反编译视图窗口中,点击左侧的行空白处,为该行打上断点。一旦我们打的断点多了,就需要在断点列表中进行查看过往所打的断点。通过“Ctrl+Alt+B”快捷键就可以快速打开BreakPoints断点列表,如图1。
二、分号注释
在反编译过程中,我们一定会用到IDA的注释功能,无论是在函数的创建之初,还是在代码的分析时,我们都需要用到注释来记录某段代码的功能。
我们可以通过右键点击空白处,添加注释,也可直接使用快捷键“分号”,快速打开注释界面。
三、提取IDA数据
IDA对可解析的程序文件,在反编译过程中,主要将程序分为代码部分和数据部分。我们通过键盘快捷键“Shift+E”可以打开提取数据界面,将数据按照指定的数据格式提取到TXT文本文档中,如图3。
四、逆向伪代码
IDA还有一个非常强大的逆向生成伪代码的功能,我们在没有程序源代码的情况下,通过点击“F5”快捷键可以使用IDA的此项功能生成程序伪代码。值得一提的是,程序伪代码只能提供大概的程序结构思路,而不是真正的程序代码,不过这也已经非常有研究价值了。
五、添加外部插件
IDA还支持添加外部插件,通过插件来提高IDA的使用效率,目前绝大多数为IDA开发的第三方软件都是以插件的形式发布。插件可以是通用的,可用于处理各种二进制文件,也可以是专用的,只用来处理某个特殊的文件。点击快捷键“Ctrl+3”可以打开插件视图。
本文主要以介绍大家较为常用的一些IDA基本功能为基础,向大家介绍IDA的这些功能作用与快捷键使用方式。实际上IDA的功能远远不止这些,还有创建函数、创建结构体、查看流程视图、搜索文本等等,这些都需要大家自己在使用过程中慢慢深入发掘学习。