Car*_*ens 3 linux comparison binary-files
我正在尝试比较两个二进制文件以识别其中之一。
我拥有的第一个文件包含我感兴趣的数据,可用于识别第二个文件。第二个文件来自第 3 方,其中可能包含第一个文件中的信息(或非常相似)。
这两个文件的大小可以不同(例如,第一个文件可能是 500KB,而第二个文件可能是 4MB)。因此,我一直试图对第一个文件中有多少在第二个文件中进行评分,以便我可以肯定地说它是相关的或源自同一来源(文件 1 的 99% 存在于文件 2 中)。
我试过使用,cmp -l file1.bin file2.bin | wc -l
但问题是我感兴趣的领域没有对齐。
我也尝试过使用,diff
但是它们总是不同的。如果我能找到不同的总字节数,我可以将其从文件大小中删除,以查看剩余部分是否与我的文件匹配。
任何帮助深表感谢。
为了计算差异而比较二进制文件,您可以使用radiff2
,您可以在您的 Linux 存储库中搜索它(可以在包radare2 中找到)。
radiff2
具有-c
计算二进制差异的参数。它还能够
使用以下选项计算
Levenshtein 距离和两个文件之间的相似性百分比-s
:
$ radiff2 -s /bin/true /bin/false
similarity: 0.97
distance: 743
Run Code Online (Sandbox Code Playgroud)
有关使用的更多信息,radiff2
请参阅文章
Binary diffing。