首页
/ HeapHopper 开源项目教程

HeapHopper 开源项目教程

2024-09-01 14:19:54作者:戚魁泉Nursing

1. 项目的目录结构及介绍

HeapHopper 是一个用于堆实现的有限模型检查框架。以下是其目录结构及其介绍:

heaphopper/
├── analysis.yaml
├── heaphopper_client.py
├── LICENSE
├── README.md
├── setup.py
├── tests/
│   ├── how2heap_fastbin_dup/
│   │   ├── analysis.yaml
│   │   ├── fastbin_dup.bin
│   │   ├── fastbin_dup.bin-desc.yaml
│   │   ├── fastbin_dup.bin-result.yaml
│   │   └── fastbin_dup.c
│   └── test_heaphopper.py
└── overview.png
  • analysis.yaml: 项目的配置文件。
  • heaphopper_client.py: 项目的启动文件。
  • LICENSE: 项目的许可证文件。
  • README.md: 项目的说明文档。
  • setup.py: 项目的安装脚本。
  • tests/: 包含项目的测试文件和示例。
  • overview.png: 项目的概览图。

2. 项目的启动文件介绍

heaphopper_client.py 是 HeapHopper 项目的启动文件。它包含了生成排列组合、追踪实例、生成 PoC 等功能。以下是其主要功能介绍:

  • gen: 生成排列组合。
  • trace: 追踪实例。
  • poc: 生成 PoC(Proof of Concept)。

示例命令:

# 生成排列组合
python heaphopper_client.py gen -c analysis.yaml

# 追踪实例
python heaphopper_client.py trace -c tests/how2heap_fastbin_dup/analysis.yaml -b tests/how2heap_fastbin_dup/fastbin_dup.bin

# 生成 PoC
python heaphopper_client.py poc -c tests/how2heap_fastbin_dup/analysis.yaml -r tests/how2heap_fastbin_dup/fastbin_dup.bin-result.yaml -d tests/how2heap_fastbin_dup/fastbin_dup.bin-desc.yaml -s tests/how2heap_fastbin_dup/fastbin_dup.c -b tests/how2heap_fastbin_dup/fastbin_dup.bin

3. 项目的配置文件介绍

analysis.yaml 是 HeapHopper 项目的配置文件。它包含了项目的各种配置选项,如分析参数、追踪参数等。以下是其主要配置项介绍:

# 示例配置
analysis:
  target: "tests/how2heap_fastbin_dup/fastbin_dup.bin"
  constraints:
    - type: "fastbin_dup"
  options:
    - enable_tracing: true
    - enable_poc_generation: true
  • target: 指定目标二进制文件。
  • constraints: 指定分析约束条件。
  • options: 指定各种选项,如是否启用追踪、是否启用 PoC 生成等。

通过配置文件,用户可以灵活地调整 HeapHopper 的行为,以适应不同的分析需求。

登录后查看全文
热门项目推荐