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(真实应用场景)。 ![Rust 伪代码反编译器演示](/imgs/pseudocodedemo1.png) ![Rust 伪代码导航演示](/imgs/pseudocodedemo2.png) **插件概览菜单** ![插件概览菜单](/imgs/pluginoverview.png) **RIFT 菜单** ![RIFT 菜单](/imgs/riftmenu.png) **伪代码菜单** ![Rust 伪代码菜单](/imgs/pseudocodemenu.png) **额外演示(去除符号的 ELF + 带符号的 ELF)** **无符号 + RIFT 恢复:** ![无符号的 Rust 演示](/imgs/elfnosymbls.png) **带符号 + RIFT 恢复:** ![带符号的 Rust 演示](/imgs/elfsymbls.png) ## 环境要求 - `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, 二进制分析, 云安全运维, 云资产清单, 反编译器, 恶意软件分析, 符号恢复, 网络流量审计, 逆向工具, 逆向工程