volexity/GoGrapher
GitHub: volexity/GoGrapher
GoGrapher 是一个基于控制流图相似度的二进制函数匹配工具,用于识别两个二进制文件间结构对应的函数。
Stars: 12 | Forks: 2
# GoGrapher
GoGrapher 是一个控制流图 (CFG) 相似性工具,用于识别两个二进制文件之间匹配的函数。
## 如何安装
要安装 GoGrapher,我们建议直接从 PyPi 拉取:
```
pip install gographer
```
这将安装 GoGrapher 及其必要的依赖项。
### 从源码构建
如果您希望从源码构建并安装 GoGrapher,请使用 cargo 常用的构建命令:
```
cargo build --release
```
或者,如果要将 GoGrapher 构建为 Python 库,请改用 maturin:
```
maturin build --release
```
然后您可以安装生成的 .whl 文件。
## 命令行用法
安装完成后,将提供一个名为 `gographer` 的新实用工具。
```
Usage: gographer [OPTIONS] [REFERENCE_PATH]...
Arguments:
Path to the GO sample to analyze
[REFERENCE_PATH]... Path to the GO reference samples to compare to
Options:
-o, --output Path of the output JSON report
-t, --threshold Value at which matches are considered significant [default: 0.0]
-h, --help Print help
```
以下是使用 GoGrapher 的典型工作流程:
```
gographer path/to/sample.exe path/to/reference.exe -o path/to/report.json
```
执行后,GoGrapher 将对每个二进制文件进行反汇编,然后计算样本与每个参考二进制文件之间的相似度。
根据所使用的命令行选项,生成的相似度报告将以彩色打印到 STDOUT,或保存到指定的输出文件中。
## 参考文献
Volexity 感谢韩国庆南大学 (Kyungnam) 的 Hyun-li Lim 先生提供的关于 CFG 相似性算法的[论文](https://www.ijcse.com/docs/INDJCSE20-11-03-237.pdf),这是 GoGrapher 相似性算法实现的基础。
标签:Go语言, Rust, 二进制分析, 云安全运维, 函数相似度, 可视化界面, 恶意代码分析, 控制流图, 程序破解, 网络流量审计, 逆向分析, 逆向工具, 通知系统, 配置文件