huku-/reveal
GitHub: huku-/reveal
REveal 是一个基于分治策略的二进制函数匹配引擎,用于高效对比两个可执行文件之间的函数级差异。
Stars: 0 | Forks: 0
# REveal

## 简介
REveal 是一个用于分治二进制对比的函数匹配引擎,
作为我博士研究的一部分而开发。
它通过 [RElib](https://github.com/huku-/relib) 实现了与框架无关的特性,目前
仅支持 IDA Pro。
## 安装
要安装 REveal,请在逆向工程框架可访问的 Python 虚拟环境中运行以下命令:
```
git clone https://github.com/huku-/reveal.git
pip install .
```
## 使用 REveal
1. 在 IDA Pro 中打开第一个可执行文件(例如,**/tmp/example1**)并运行 **bin/export.py**。
这将创建 **/tmp/example1.export/** 目录来包含导出的数据。
2. 在 IDA Pro 中打开第二个可执行文件(例如,**/tmp/example2**)并运行 **bin/export.py**。
这将创建 **/tmp/example2.export/**。
如果您计划使用编译单元恢复作为分治策略,
请部署 [REcover](https://github.com/huku-/recover) 并遵循相关的
说明。
3. 运行 `reveal` 来执行对比。使用
`--match-hierarchical` 选择分治策略。例如:
reveal -d --match-hierarchical recover-apsnse \
/tmp/example1.export /tmp/example2.export /tmp/results
位置参数指定了两个导出目录以及对比结果的
输出目录。
4. 检查恢复的匹配项:
python bin/parse_matches.py /tmp/results/matched.pcl
## 注意事项
* REveal 可以通过名称匹配函数。这对于导入和
导出的符号特别有用,因为它们通常可以通过名称和
序号来识别。默认情况下,只有导入符号会通过名称匹配(详情请参阅 `reveal -h`)。
* REveal 建立在众多杰出研究人员发表的先前二进制对比研究的
基础之上。著名的 predecessors 包括 BinDiff、Diaphora、YaDiff
和 DarunGrim。
* **REveal 的开发未接受任何组织或政府的资助。**
## 引用
```
@inproceedings{Karamitas2018,
title = {Efficient features for function matching between binary executables},
author = {Karamitas, Chariton and Kehagias, Athanasios},
year = {2018},
booktitle = {2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)},
pages = {335--345},
organization = {IEEE}
}
@article{Karamitas2019,
title = {Function matching between binary executables: efficient algorithms and features},
author = {Karamitas, Chariton and Kehagias, Athanasios},
year = {2019},
journal = {Journal of Computer Virology and Hacking Techniques},
publisher = {Springer},
volume = {15},
number = {4},
pages = {307--323}
}
@article{Karamitas2023,
title = {Improving binary diffing speed and accuracy using community detection and locality-sensitive hashing: an empirical study},
author = {Karamitas, Chariton and Kehagias, Athanasios},
year = {2023},
journal = {Journal of Computer Virology and Hacking Techniques},
publisher = {Springer},
volume = {19(2)},
pages = {319--337}
}
@article{karamitas2025,
title={REcover: towards recovering object files from stripped binary executables},
author={Karamitas, Chariton and Kehagias, Athanasios},
journal={Journal of Computer Virology and Hacking Techniques},
volume={21},
number={1},
pages={29},
year={2025},
publisher={Springer}
}
```
## 许可
版权所有 © 2018-2026, Chariton Karamitas, Athanasios Kehagias,保留所有权利
标签:IDA Pro, 二进制比对, 云资产清单, 漏洞分析, 路径探测, 逆向工具, 逆向工程