ida可以分析的文件格式非常多 包括windows下的pe格式文件(.exe .dll .sys)linux 下的elf文件(.elf .so )mac系统的常见文件格式,以及一些不常见到系统的文件格式ida的功能强大,对于一般的无壳保护,无混淆代码的程序ida能直接反汇编出位代码(F5快捷键),在一定程度上减少了逆向分析的难度和门槛。
在进行逆向分析时选择32-bit IDA分析32位程序,64-bit IDA 分析64位程序
一般直接ok,不用修改
配置文件作用解析
页面介绍
显示的长度是将函数编译成二进制码的长度
主界面:
options ->general ->ida options
设置窗口:stack point打开可以看到函数堆栈是否平衡
设置number of opcode bytes可以看到汇编代码的二进制字节码
上面是汇编窗口,栈变化信息和汇编对应的二进制码与上边的窗口设置有关(number of opcode bytes)。下面是伪代码窗口:
数据距离bp指针的位置有利于我们判断不同数据的分布情况,伪代码并非完全可信,有时候要去分析一下汇编代码
DB 定义字节变量,即8位(1字节)变量
DW 定义字变量,即16位(2字节)变量
DD 定义双字变量,即32位(4字节)变量
DQ 定义长字变量,即64位(8字节)变量
DT 定义一个10字节的变量(此处关联到汇编知识,详情自查)
地址细节窗口
可以查看函数调用关系,下面的可以查看函数运行流程
常用快捷键
1.hex dump:直接查看程序的二进制内容(以hex值表示)
一般用于直接查找存在程序中的明文字符串和动态调试时的内容查看
2.disassembly:查看程序反编译出的汇编代码(以汇编语言显示)
一般用于直接分析相关函数的汇编代码
3.Functions_wiondow:函数表(重要)用于分析每一个单独的函数
在逆向分析中往往都是直接利用Function_windows 查找关键函数开始对整个程序进行分析
该窗口提供ctrl+F 的搜索功能 例如可以直接ctrl+f 定位到main函数,选中函数后双击即可在右侧窗口开始分析,对于一般的函数IDA提供强大的反汇编功能,(快捷键f5,f5大法好啊)直接能阅读到c代码,免除了阅读汇编语言的痛苦。
4.names:符号表,包括函数名,变量名等。
5.strings(快捷键f12):字符串表 包括程序中存储的字符串常量(在逆向分析中对于定位关键函数有很大帮助)在逆向分析中,往往我们可以利用Ida中的交叉引用功能找到引用了制定字符串的函数,从而实现了关键函数的定位。比如(在程序的符号表被stripped掉的时候,无法直接搜索main函数) 查看字符串"input:flag"的引用直接定位到main函数*
6.import export :导入表和导出表,表中内容为程序需要的外表函数和可以被外部程序调用的函数(涉及到动态链接的相关知识)
7.段表 :包程序的各个段的信息比如.text(代码段).data(数据段)(涉及到PE结构的相关知识)