keowu/rust_ida_analyzer
GitHub: keowu/rust_ida_analyzer
一款 IDA Pro 插件,专注于 PE 和 ELF 格式 Rust 二进制文件的构件检测、符号恢复与伪代码反编译,帮助逆向工程师更高效地分析去符号的 Rust 样本。
Stars: 19 | Forks: 0
# Rust IDA Analyzer
一个用于 IDA Pro 9+ 的简单插件,专注于对 PE 和 ELF 格式的 Rust 二进制文件进行逆向工程。该项目结合了 Rust 构件检测、符号恢复、可选的 RIFT 集成,以及 Rust 风格的伪代码流程,以补充原生的 IDA/Hex-Rays 视图。
## 演示
**反编译器演示**
此演示基于一个被完全去除符号的 Rust PE 恶意软件二进制文件,仅应用了 RIFT(真实应用场景)。


**插件概览菜单**

**RIFT 菜单**

**伪代码菜单**

**额外演示(去除符号的 ELF + 带符号的 ELF)**
**无符号 + RIFT 恢复:**

**带符号 + RIFT 恢复:**

## 环境要求
- `IDA Pro 9+`
- `Python 3`
- `Hex-Rays Decompiler`,用于依赖 Hex-Rays 伪代码/集成的功能(或者如果您想尝试 pseudo-rust)
## 安装说明
### 1. 安装插件
在仓库根目录下执行:
```
python3 scripts/install_ida_plugin.py --ida-plugin-dir /path/to/ida/plugins
```
以典型的 IDA 9.4 目录结构为例:
```
python3 scripts/install_ida_plugin.py --ida-plugin-dir ~/ida-pro-9.4/plugins
```
安装程序会自动复制:
- `ida_plugin/` 到 `.../plugins/rust_ida_analyzer/`
- `engine/` 到已安装的插件目录
- `data/` 到已安装的插件目录
- 在 `~/.rust_ida_analyzer/config.json` 生成受管理的配置文件
然后重启 IDA 并打开:
```
Edit > Plugins > Rust IDA Analyzer - Open Panel
```
此时,插件已经可以用于 Rust Scan 和 RIFT 等流程。`Decompile Rust` 依赖于下文所述的外部 Oxidizer/angr 环境。
### 2. 创建 Oxidizer/angr 环境
仍在仓库根目录下执行:
```
python3 -m venv .venv-oxidizer
.venv-oxidizer/bin/python -m pip install --upgrade pip setuptools wheel
git clone https://github.com/sefcom/oxidizer .external/oxidizer
.venv-oxidizer/bin/python -m pip install setuptools-rust rust_demangler==1.0
.venv-oxidizer/bin/python -m pip install \
git+https://github.com/angr/archinfo.git@84ad167543028b32e170d3659650707b3866185c \
git+https://github.com/angr/claripy.git@8b890bb13fe743bfdbaae119062631db4f10047b \
git+https://github.com/angr/pyvex.git@3f92fece7147e91cea401e14a3936f20860a402e \
git+https://github.com/angr/cle.git@ce3333d0e1e72936fdbb75eefd70299ead4fb998
.venv-oxidizer/bin/python -m pip install --no-build-isolation -e .external/oxidizer
```
快速验证:
```
.venv-oxidizer/bin/python -c "import angr; import angr.rust; print(angr.__version__)"
```
然后再次运行安装程序,将插件指向正确的 Python:
```
python3 scripts/install_ida_plugin.py \
--ida-plugin-dir ~/ida-pro-9.4/plugins \
--oxidizer-python "$PWD/.venv-oxidizer/bin/python" \
--overwrite-config
```
### 3. 配置
主配置文件位于 `~/.rust_ida_analyzer/config.json`。
相关字段:
- `oxidizer_python`
- `rift_server_url`
- `rift_signature_dir`
- `oxidizer_bridge_path`
- `rift_server_script`
大部分配置也可以通过插件面板进行调整,无需手动编辑 JSON 文件。
## 常见问题
- `bridge-missing`:重新安装插件;安装目录中必须包含 `engine/oxidizer_service/bridge.py`。
- `oxidizer-env-missing`:配置 `oxidizer_python`,定义环境变量 `RUST_IDA_OXIDIZER_PYTHON`,或者按照上文说明创建 `.venv-oxidizer`。
- 菜单未显示:重新安装后重启 IDA,并在 `Edit > Plugins` 中查找带有 `Rust IDA Analyzer -` 前缀的条目。
## 额外说明
一些测试此插件的用户希望有一种“智能体”的方式来进行 Rust 分析。因此,我为 [Rikugan](https://github.com/buzzer-re/Rikugan) 智能体创建了一个可直接复制的技能(skill),位于 ``/integrations/rikugan`` 目录中,并且确实能够产生令人满意的分析结果。
## 参考文献
ANGR. *angr*. GitHub, [s. d.]. Available at: . Accessed on: 9 Jul. 2026.
MICROSOFT. *RIFT*. GitHub, [s. d.]. Available at: . Accessed on: 9 Jul. 2026.
MICROSOFT. *Unveiling RIFT: enhancing Rust malware analysis through pattern matching*. Microsoft Security Blog, 27 Jun. 2025. Available at: . Accessed on: 9 Jul. 2026.
N0FIX. *rustbinsign*. GitHub, [s. d.]. Available at: . Accessed on: 9 Jul. 2026.
NOFIX. *Rust symbols recovery from stripped binaries*. nofix.re, 2 Nov. 2024. Available at: . Accessed on: 9 Jul. 2026.
SEFCOM. *Oxidizer*. GitHub, [s. d.]. Available at: . Accessed on: 9 Jul. 2026.
标签:DAST, IDA Pro 插件, Rust, 二进制分析, 云安全运维, 云资产清单, 反编译器, 恶意软件分析, 符号恢复, 网络流量审计, 逆向工具, 逆向工程