探索未知,揭秘二进制差异:Ghidriff 开源项目解析

探索未知,揭秘二进制差异:Ghidriff 开源项目解析

ghidriffPython Command-Line Ghidra Binary Diffing Engine项目地址:https://gitcode.com/gh_mirrors/gh/ghidriff

Ghidriff Logo

项目介绍

Ghidriff 是一个基于 Python 的命令行工具,专为二进制文件的差异分析而设计。它利用了著名的逆向工程工具 Ghidra 的 ProgramAPI 和 FlatProgramAPI,以强大的功能帮助您找出两个不同版本二进制文件中新增、删除和修改的功能。这个项目的核心在于提供一种简单、快速且准确的方式来查看和理解软件更新中的变化。

项目技术分析

Ghidriff 依赖于 pyhidra 与 Ghidra 进行交互,并通过 jpype 处理 Python 到 Java 的接口。其工作流程如下:

flowchart LR
a(old binary - rpcrt4.dll-v1) --> b[GhidraDiffEngine]
c(new binary - rpcrt4.dll-v2) --> b
b --> e(Ghidra Project Files)
b --> diffs_output_dir
subgraph diffs_output_dir
    direction LR
    i(rpcrt4.dll-v1-v2.diff.md)
    h(rpcrt4.dll-v1-v2.diff.json)
    j(rpcrt4.dll-v1-v2.diff.side-by-side.html)
end

应用场景

Ghidriff 在补丁分析中尤为突出,尤其适用于自动化分析流程。它能够生成易于分享的Markdown和HTML格式的差异报告,使得在研究、教学或博客中展示二进制差异变得极其简单。

示例差异展示:

  • 图像
  • 图像
  • 图像

项目特点

  • 简洁的命令行界面:只需一条指令即可完成二进制差异比较。
  • 高效:即使面对大型二进制文件如Windows内核也能在短时间内完成分析。
  • 社交化分享:以Markdown格式保存结果,方便通过GitHub等平台分享。
  • 多格式支持:提供统一格式和并排视图两种差异显示方式。
  • 独特元数据差异:除了函数差异,还包括二进制字符串、调用和被调用信息以及元数据。
  • Docker 支持自动化测试 提供易用性和可信赖性。
  • 扩展性强:开发者可以自定义实现,创建新的二进制比较算法。

设计理念

Ghidriff 致力于找到所有增加、删除和修改的功能,简化工作流,提供自动化基础,保持简单、快速且准确。其目标是构建一个稳健、可扩展的系统,使二进制差异分析变得社会化,易于分享。

使用体验

了解如何使用 Ghidriff 的更多细节,请参阅官方文档博客文章

小结

Ghidriff 借助 Ghidra 的强大功能,为您揭开二进制世界里的变化之谜。无论是为了安全审计、软件工程研究还是教学演示,Ghidriff 都是一个值得尝试的开源项目。现在就加入,探索无限可能!

立即开始使用 Ghidriff

ghidriffPython Command-Line Ghidra Binary Diffing Engine项目地址:https://gitcode.com/gh_mirrors/gh/ghidriff

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岑晔含Dora

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值