littlebot
Published on 2025-04-08 / 4 Visits
0

【源码】基于Souffle Datalog的二进制反汇编工具

项目简介

本项目名为DDisasm,是一个基于Souffle Datalog的快速且准确的二进制反汇编工具。它可解析ELF文件,利用Datalog语言编译反汇编规则和启发式方法,通过分析ELF文件信息和解码指令,生成中间表示(GTIRB),最终输出可重新汇编的汇编代码。

项目的主要特性和功能

  • 快速且准确的反汇编:能快速解析二进制文件并生成准确汇编代码,支持ARM64、X86_32等多种架构。
  • 中间表示生成:生成GTIRB中间表示,方便进一步进行二进制分析和逆向工程。
  • 调试支持:提供调试选项,可使用Souffle解释器加速开发和调试。
  • 自诊断功能:利用重定位信息进行符号化过程的自诊断,辅助调试和分析。
  • 多线程支持:支持多线程处理,提升反汇编效率。

安装使用步骤

依赖安装

确保已安装以下依赖: - Capstone(版本4.0.1或更高) - libehp(版本1.0.0或更高) - LIEF(版本0.11.5或更高)

构建步骤

  1. 配置CMake: bash cmake ./ -Bbuild -DCMAKE_CXX_COMPILER=<compiler> -DLIEF_ROOT=<LIEF路径> -Dgtirb_DIR=<GTIRB路径> -Dgtirb_pprinter_DIR=<gtirb-pprinter路径>
  2. 编译: bash cd build make

运行反汇编

编译完成后,使用以下命令运行反汇编: bash cd build/bin ./ddisasm <输入文件> --asm <输出汇编文件>

调试选项

  • 关闭特定架构支持: bash cmake ./ -Bbuild -DDDISASM_ARM_64=OFF -DDDISASM_X86_32=OFF
  • 使用Souffle解释器: bash ddisasm --debug-dir <调试目录> --interpreter <Souffle源文件路径> --asm <输出汇编文件> <输入文件>

下载地址

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