0xdea/augur
GitHub: 0xdea/augur
一款基于 IDA Pro 9.x 的无头 Rust 插件,用于从二进制文件中自动提取字符串及其相关函数的伪代码,并按字符串组织输出。
Stars: 98 | Forks: 6
# augur
[](https://github.com/0xdea/augur)
[](https://crates.io/crates/augur)
[](https://crates.io/crates/augur)
[](https://hex-rays.com/ida-pro)
[](https://twitter.com/0xdea)
[](https://infosec.exchange/@raptor)
[](https://github.com/0xdea/augur/actions/workflows/build.yml)
[](https://github.com/0xdea/augur/actions/workflows/doc.yml)
Augur 是一个极速的 IDA Pro 无头(headless)插件,用于从二进制文件中提取字符串及其相关的伪代码。
它将引用字符串的函数的伪代码存储在有组织的目录树中。

## 功能
* 得益于 IDA Pro 9.x 和 Binarly 的 idalib Rust 绑定,提供极速的无头用户体验。
* 支持 IDA Pro Hex-Rays 反编译器实现的任何架构的二进制目标。
* 反编译功能基于 [haruspex](https://github.com/0xdea/haruspex) 导出的 `decompile_to_file` API。
* 引用特定字符串的每个函数的伪代码都存储在单独的目录中。
## 博客文章
*
*
## 另见
*
*
*
*
## 安装
获取最新版本最简单的方法是通过 [crates.io](https://crates.io/crates/augur):
1. 下载、安装并配置 IDA Pro(见 )。
2. 安装 LLVM/Clang(见 )。
3. 在 Linux/macOS 上,按如下方式安装:
export IDADIR=/path/to/ida # 如果未设置,构建脚本将检查常见位置
cargo install augur
在 Windows 上,则使用以下命令:
$env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
$env:PATH="\path\to\ida;$env:PATH"
$env:IDADIR="\path\to\ida" # 如果未设置,构建脚本将检查常见位置
cargo install augur
## 编译
或者,你可以从 [源代码](https://github.com/0xdea/augur) 构建:
1. 下载、安装并配置 IDA Pro(见 )。
2. 安装 LLVM/Clang(见 )。
3. 在 Linux/macOS 上,按如下方式编译:
git clone --depth 1 https://github.com/0xdea/augur
cd augur
export IDADIR=/path/to/ida # 如果未设置,构建脚本将检查常见位置
cargo build --release
在 Windows 上,则使用以下命令:
git clone --depth 1 https://github.com/0xdea/augur
cd augur
$env:LIBCLANG_PATH="\path\to\clang+llvm\bin"
$env:PATH="\path\to\ida;$env:PATH"
$env:IDADIR="\path\to\ida" # 如果未设置,构建脚本将检查常见位置
cargo build --release
## 用法
1. 确保已使用有效许可证正确配置 IDA Pro。
2. 按如下方式运行:
augur
3. 在 `binary_file.str` 目录中找到每个反编译函数的提取伪代码,按字符串组织:
vim .str
code .str
## 兼容性
* IDA Pro 9.0.241217 - 最新兼容版本:v0.2.3。
* IDA Pro 9.1.250226 - 最新兼容版本:v0.6.2。
* IDA Pro 9.2.250908 - 最新兼容版本:v0.7.5。
* IDA Pro 9.3.260213 - 最新兼容版本:当前版本。
## 更新日志
* [CHANGELOG.md](CHANGELOG.md)
## 待办事项
* 与 [oneiromancer](https://github.com/0xdea/oneiromancer) 集成。
* 允许用户选择即使反编译器不可用也处理字符串交叉引用。
* 考虑将 `traverse_xrefs` 转换为迭代遍历,以避免潜在的栈溢出和无限循环。
* 考虑集成 [proptest](https://proptest-rs.github.io/proptest/intro.html) 以补充单元测试。
* 实现类似于 的功能。
标签:Hakrawler, Headless, Hex-Rays, idalib, IDA Pro, Rust, URL提取, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 伪代码提取, 反编译, 可视化界面, 字符串提取, 恶意代码分析, 情报收集, 插件, 漏洞研究, 网络流量审计, 网络调试, 自动化, 逆向工程, 通知系统, 配置文件, 静态分析