littlebot
Published on 2025-04-01 / 0 Visits
0

【源码】基于Unicorn引擎的模糊测试框架

项目简介

本项目是一个基于Unicorn引擎的模糊测试框架,主要用于模拟执行二进制程序并开展模糊测试。框架借助Unicorn引擎模拟CPU执行,结合LibFuzzer进行模糊测试,致力于找出二进制程序中潜藏的漏洞与错误。

项目的主要特性和功能

  • 多架构支持:能够支持x86、MIPS、ARM等多种CPU架构。
  • Unicorn引擎:利用Unicorn引擎模拟CPU执行,提供轻量级的CPU模拟器。
  • LibFuzzer集成:集成LibFuzzer进行模糊测试,通过提供随机或特定输入数据,尝试触发潜在的错误或异常行为。
  • 内存管理:提供工具函数,可对内存分配、释放、映射和补丁添加等操作进行管理。
  • 状态管理:具备恢复和保存模拟器状态的功能,便于后续测试与分析。
  • 执行路径跟踪:提供工具用于跟踪和分析程序执行路径及覆盖情况。

安装使用步骤

安装依赖库

bash sudo dnf install cmake ninja pkg-config llvm-devel gtest-devel clang capstone-devel

构建项目

bash mkdir build cd build cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. ninja

安装Python绑定

bash python3 -m venv venv source venv/bin/activate pip install -e python-bindings/

运行模糊测试

  • 使用GDB或其他工具生成进程快照。
  • 运行示例脚本进行模糊测试: bash python3 examples/basic.py -s dump_<timestamp>.json

分析和调试

  • 分析输出的崩溃信息,确定潜在的漏洞或错误。
  • 使用Unicorn引擎和相关的工具进行动态二进制分析和逆向工程。

请在使用本框架前,对Unicorn引擎和LibFuzzer有基本了解,并熟悉相关命令和工具。建议在隔离环境中运行测试,防止对系统造成潜在影响。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】