第 2 章 环境搭建与工具链
📍 知识点地图 | 主题:环境搭建与工具链 | 前置:第1章 | 后续:第3章起 | 核心概念:静态/动态/模拟工具、bootstrap自举
2.1 需要的前置知识/软件
| 依赖 |
用途 |
| Java / JDK |
jadx、apktool(Android 工具) |
| Node.js 22+ |
JS 工具链、MCP server |
| Python 3.x |
Frida、angr、pwntools 等脚本工具 |
| 一台 Linux(推荐 Kali / Ubuntu)或 Windows |
主力分析环境 |
2.2 核心工具清单(按用途分组)
静态分析
| 工具 |
用途 |
平台 |
file |
识别文件类型/架构 |
全平台 |
strings / rabin2 -z |
提取字符串 |
全平台 |
objdump / readelf |
反汇编、查看节区 |
Linux |
| radare2(r2/rabin2/rasm2/radiff2) |
CLI 全功能分析 |
全平台 |
| IDA Pro |
商业反编译器(最强大) |
全平台 |
| Ghidra |
免费反编译器(NSA) |
全平台 |
| Binary Ninja |
现代化二进制分析 |
全平台 |
| jadx |
APK → Java 源码 |
全平台 |
| apktool |
APK 解包/重打包/smali |
全平台 |
| dnSpy |
.NET 反编译调试 |
Windows |
| class-dump / jtool2 |
iOS Mach-O 分析 |
macOS |
| retdec.com / dogbolt.org |
在线反编译对比 |
Web |
动态分析
| 工具 |
用途 |
| GDB + pwndbg/GEF |
Linux 调试 |
| x64dbg / OllyDbg |
Windows 调试 |
| lldb |
macOS/iOS 调试 |
| ltrace / strace |
库调用/系统调用跟踪 |
| Frida |
跨平台动态插桩(Android/iOS/桌面) |
| Objection |
Frida 的免脚本增强层 |
符号执行与模拟
| 工具 |
用途 |
| angr |
符号执行,自动求解 |
| Qiling |
跨平台模拟执行(可模拟 PE/ELF/固件) |
| Unicorn |
CPU 级模拟执行引擎 |
| Triton |
动态符号执行 |
| Manticore |
符号执行 |
Android 动态
| 工具 |
用途 |
| adb |
设备连接/安装/日志 |
| Frida + frida-server |
Hook |
| MobSF |
自动化移动安全分析 |
| Objection |
SSL Pinning/Root 检测绕过 |
逆向辅助
| 工具 |
用途 |
| BinDiff / Diaphora |
二进制对比 |
| ROPgadget / Ropper / one_gadget |
gadget 搜索 |
| libc-database |
libc 指纹反查 |
| pwntools |
exploit 编写框架 |
| binwalk / unblob |
固件提取 |
| qemu |
跨架构仿真 |
| capstone / keystone |
反汇编/汇编引擎(库) |
| z3 |
约束求解器 |
| lief |
二进制格式解析修改库 |
2.3 一键安装(Windows PowerShell)
仓库自带自举脚本,缺什么自动装什么,不要猜路径:
# 查看支持的能力
powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Users\1\src\reverse-skill\skills\scripts\bootstrap-reverse.ps1" -List
# 按需安装,例如
powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Users\1\src\reverse-skill\skills\scripts\bootstrap-reverse.ps1" -Capability @('jadx','apktool','frida','radare2') -StartServices
# 刷新工具索引(检测本机已装工具)
powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Users\1\src\reverse-skill\skills\scripts\refresh-tool-index.ps1"
Linux / macOS:
bash skills/scripts/bootstrap-reverse.sh --list
bash skills/scripts/refresh-tool-index.sh
2.4 Python 包(逆向核心全家桶)
pip install frida-tools angr qiling uncompyle6 capstone lief z3-solver pwntools ropgadget
# Python 3.9+ 字节码: pycdc 需要从源码编译
# git clone https://github.com/zrax/pycdc && cd pycdc && cmake . && make
2.5 Linux 系统包
apt install gdb radare2 binutils strace ltrace apktool upx binwalk qemu-user qemu-user-static
2.6 环境验证(装完跑一遍)
# 核心工具是否可用
file --version && strings --version
r2 -v && rabin2 -v
gdb --version
frida --version
angr: python3 -c "import angr; print(angr.__version__)"
jadx --version
apktool --version
adb devices
2.7 目录规划建议(学习期)
~/re/
├── tools/ # 工具源码(pwndbg、libc-database 等)
├── challenges/ # CTF 题目、crackme 存档
├── cases/ # 每个分析任务一个文件夹
└── notes/ # 学习笔记(强烈建议!)
仓库实践:每个任务建独立 case 目录(scope / timeline / workitems / artifacts),结束后写报告并沉淀经验。学习期就养成这个习惯。
动手练习
- 在本机跑
bootstrap-reverse.ps1 -List,看你的机器支持哪些能力。
- 安装至少:radare2 + Frida + angr + jadx,全部
--version 通过。
- 建好你的
~/re/ 学习目录结构。
深入阅读
- 仓库:
skills/tool-index.md(本机工具实际状态:路径、版本、脚本引用)
- 仓库:
skills/scripts/bootstrap-reverse.ps1 / bootstrap-manifest.json(自动安装清单)
- 仓库:
docs/platforms/linux.md、kali/README-kali.md(平台专项安装)
- 仓库:
skills/awesome-re-resources.md(更多工具与学习资源)