You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查二进制文件是否由相同或相似源代码编译生成

非可复现构建场景下的二进制同源性校验方法

不可复现构建的正常差异范围

不可复现构建产生的合法差异通常仅占二进制总大小的 0.1%~5%,所有差异都属于非功能性的元数据或编译随机值,不会修改代码逻辑,常见差异类型包括:

  • 构建嵌入信息:时间戳、构建机器路径、官方构建编号、版本标记
  • 编译器随机输出:部分版本编译器的栈保护canary随机值、符号随机重排的结果、寄存器分配的微小差异
  • 环境差异:编译环境的依赖库小版本差异、系统头文件宏定义差异带来的符号偏移变化

这些差异不会改变程序的控制流结构、函数调用关系和核心指令语义,和恶意插入的代码有非常明确的区分边界。

二进制比对的操作方案

不要直接用diff、cmp这类原始字节比对工具,要做结构化二进制差异分析,操作步骤如下:

  • 先预处理两个比对样本(官方样本和待测样本):剥离调试信息、注释段、.note段里的构建元数据,消除已知的固定差异点
  • 提取两侧的.text可执行代码段,比对函数级的控制流图结构:相同源码编译出的函数,基本块拆分、跳转逻辑、调用关系完全一致,只有少量立即数、偏移地址会有差异
  • 用结构化比对工具做函数语义相似度匹配:正常同源函数的相似度普遍高于95%,如果出现相似度低于80%的函数,或是存在不在官方源码函数清单内的新增函数,就可以判定存在外来代码插入。

结论

按照上述流程执行规范的二进制diff操作,可以达到99%以上的置信度,确认二进制是否被插入未授权的外来代码。不可复现构建的常规微小差异不会对判定结果产生干扰,恶意插入的代码必然会留下新增函数、修改原有控制流的可识别特征。

内容的提问来源于stack exchange,提问作者hungrykitten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:54:08