CTF-All-In-One/doc/2.6_idapro.md
2018-01-03 20:35:35 +08:00

42 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2.6 IDA Pro
- [常用插件](#常用插件)
- [常用脚本](#常用脚本)
## 常用插件
- [IDA FLIRT Signature Database](https://github.com/push0ebp/sig-database) -- 用于识别静态编译的可执行文件中的库函数
- [Find Crypt](https://github.com/polymorf/findcrypt-yara) -- 寻找常用加密算法中的常数(需要安装 [yara-python](https://github.com/VirusTotal/yara-python)
- [IDA signsrch](https://github.com/nihilus/IDA_Signsrch) -- 寻找二进制文件所使用的加密、压缩算法
- [Ponce](https://github.com/illera88/Ponce) -- 污点分析和符号化执行工具
- [snowman decompiler](https://github.com/yegord/snowman/tree/v0.1.0) -- C/C++反汇编插件F3 进行反汇编)
- [CodeXplorer](https://github.com/REhints/HexRaysCodeXplorer) -- 自动类型重建以及对象浏览C++jump to disasm)
- [IDA Ref](https://github.com/nologic/idaref) -- 汇编指令注释支持armx86mips
- [auto re](https://github.com/a1ext/auto_re) -- 函数自动重命名
- [nao](https://github.com/tkmru/nao) -- dead code 清除
- [HexRaysPyTools](https://github.com/igogo-x86/HexRaysPyTools) -- 类/结构体创建和虚函数表检测
- [DIE](https://github.com/ynvb/DIE) -- 动态调试增强工具,保存函数调用上下文信息
- [sk3wldbg](https://github.com/cseagle/sk3wldbg) -- IDA 动态调试器,支持多平台
- [idaemu](https://github.com/36hours/idaemu) -- 模拟代码执行支持X86、ARM平台
- [Diaphora](https://github.com/joxeankoret/diaphora) -- 程序差异比较
- [Keypatch](https://github.com/keystone-engine/keypatch) -- 基于 Keystone 的 Patch 二进制文件插件​
- [FRIEND](https://github.com/alexhude/FRIEND) -- 哪里不会点哪里,提升汇编格式的可读性、提供指令、寄存器的文档等
- [SimplifyGraph](https://github.com/fireeye/SimplifyGraph) -- 简化复杂的函数流程图
- [bincat](https://github.com/airbus-seclab/bincat) -- 静态二进制代码分析工具包2017 Hex-Rays 插件第一名
- [golang_loader_assist](https://github.com/strazzere/golang_loader_assist) -- Golang编译的二进制文件分析助手
## 常用脚本
#### 内存 dump 脚本
调试程序时偶尔会需要 dump 内存,但 IDA Pro 没有直接提供此功能,可以通过脚本来实现。
```python
import idaapi
data = idaapi.dbg_read_memory(start_address, data_length)
fp = open('path/to/dump', 'wb')
fp.write(data)
fp.close()
```