关于逆向工具IDA Pro
的基本知识和扩展——脚本+插件(基于IDA7.0)。
1.基础
A.IDA文件目录简介
B.IDA常用快捷键功能
空格键
:反汇编窗口切换文本跟图形Esc
:在反汇编窗口中使用为后退到上个操作的地址处Shift +F5
:打开签名窗口shift+F12
:自动分析出参考字符串ALT+T
:搜索字符串(文本搜索)ALT+L
:标记(Lable)ALT+M
:设置标签(mark)ALT+G
:转换局部变量为结构体ALT+Enter
:跳转到新的窗口Alt+B
:快捷键用于搜索十六进制字节序列,通常在分析过程中可以用来搜索opcodeCTRL+M
:列举出当前已经添加的标签CTRL+S
列举出二进制程序的段的开始地址、结束地址、权限等信息F9
:动态调试程序(其实IDA主要用作静态分析用的)F5
:将一个函数逆向出来(生成c伪代码)G
:跳转到指定地址A
:将选择的信息转换成ASCII(转换成可读性跟强的字符串)X(ctrl+X)
:交叉引用,类似于OD中的栈回溯操作N
:对符号重命名:&;(冒号&分号)
:光标所在位置添加常规注释和可重复注释P
:创建函数T
:解析结构体偏移M
:转换为枚举类型常量Y
:设置变量类型H
:转换16进制C
:光标所在地址处的内容解析成代码D
:光标所在地址处的内容解析成数据A
:光标所在地址处的内容解析成ascll码字符串U
:光标所在地址处的内容解析成未定义内容。
IDA pro介绍
《IDA Pro权威指南》
2.IDA脚本
A.支持语言
- python
- IDA的脚本语言——IDC
其中,python语言就不用过多的介绍了,下面简单介绍一下IDC语言。
IDC语言
在IDA软件的帮助选项中,包含着对IDC语言的语法和函数的介绍(相当于官方说明/API手册),如下图所示。
一些常见的IDC函数介绍如下(包括但不限于,用到可查询API手册)——
(1)读取和修改数据的函数
(2)用户交互函数
(3)字符串操纵函数
(4)代码交叉引用函数
B.运行方式
在IDA中运行python、IDC脚本/命令有三种方式,如下图所示。
C.脚本示例
枚举一个函数的调用方。
3.IDA插件
A.基础
插件开发:c++开发的dll文件。具体的知识(如插件的开发、安装、执行等)可以参考《IDA Pro权威指南》中第17章的内容。
B.常见插件
IDA中自带的插件如下图所示。
接下来列出一些开源的可用的IDA插件。
(1)静态分析
- IDA FLIRT Signature Database——用于识别静态编译的可执行文件中的库函数
- IDA signsrch——寻找二进制文件所使用的加密、压缩算法
- IDA scope——自动识别windows函数和压缩、加密算法
- Ponce—— 污点分析和符号化执行工具
- snowman decompiler——C/C++反汇编插件(F3 进行反汇编)
- keystone—— 二进制文件修改工具,可以直接修改汇编
- CodeXplorer——自动类型重建以及对象浏览(C++)(jump to disasm)
- IDA Ref——汇编指令注释(支持arm,x86,mips)
- Hexlight——大括号高亮匹配及跳转(B跳转到匹配括号)
- auto re——函数自动重命名
- nao——dead code 清除
- HexRaysPyTools——类/结构体创建和虚函数表检测
- findcrypt-yara——寻找常用加密算法中的常数
(2)动态调试
IDA sploiter——漏洞利用开发工具,寻找gadget
DIE——动态调试增强工具,保存函数调用上下文信息
sk3wldbg——IDA动态调试器,支持多平台
idaemu——模拟代码执行(支持X86、ARM平台)
(3)其他
Keypatch——ida补丁神器
IFL
FRIEND——FRIEND is an IDA plugin created to improve disassembly and bring register/instruction documentation right into IDA View.
x86emu——Embedded x86 emulator for Ida Pro.
Lighthouse——Code Coverage Explorer for IDA Pro
AndroidAttacher
python Editor——what it Does: I always hated the Old Run script command, so i set up making my own editor for ida pro. Just like the ida one but much nicer and better Python language. Run Scripts files and apps within ida.
ret-sync——ret-sync stands for Reverse-Engineering Tools synchronization. It’s a set of plugins that help to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg/OllyDbg2/x64dbg) with IDA disassembler. The underlying idea is simple: take the best from both worlds (static and dynamic analysis).让调试器(WinDbg / GDB / LLDB / OllyDbg / OllyDbg2 / x64dbg)与IDA同步的一个插件。
C.参考链接
IDA插件收集
来自FLARE团队的IDA Pro实用程序
FLARE IDA Pro的脚本系列:自动化提取函数参数
火眼(FireEye)实验室FLARE IDA Pro脚本系列:MSDN注释插件