您当前的位置:首页 > 计算机 > 编程开发 > Python

Python使用模糊哈希值比较文件相似度

时间:09-07来源:作者:点击数:

使用ssdeep工具来计算文件的模糊哈希值或分段哈希值,或者编写Python程序调用ssdeep提供的API函数来计算文件的模糊哈希值,模糊哈希值可以用来比较两个文件的相似百分比。这个工具在Windows平台安装比较麻烦,建议使用Linux操作系统,以Ubuntu为例,执行命令sudo BUILD_LIB=1 pip3 install ssdeep即可安装ssdeep和所有依赖包,当然在这之前或许还需要使用sudo apt-get install python3-pip命令先安装pip3工具。

>>> import ssdeep

>>> hash1 = ssdeep.hash('Also called fuzzy hashes, Ctph can match inputs that have homologies.')

>>> hash1

'3:AXGBicFlgVNhBGcL6wCrFQEv:AXGHsNhxLsr2C'

>>> hash2 = ssdeep.hash('Also called fuzzy hashes, CTPH can match inputs that have homologies.')

>>> hash2

'3:AXGBicFlIHBGcL6wCrFQEv:AXGH6xLsr2C'

>>> ssdeep.compare(hash1, hash2)              #比较两个哈希值的相似度

22

>>> import ssdeep

>>> s = ssdeep()

>>> s.hash_from_file(filename) 

对于某些恶意软件来说,可能会对自身进行加壳或加密,真正运行时再进行脱壳或解密,这样一来,会使得磁盘文件的哈希值和内存中脱壳或解密后进程的哈希值相差很大。因此,根据磁盘文件和其相应的进程之间模糊哈希值的相似度可以判断该文件是否包含自修改代码,并以此来判断其为恶意软件的可能性。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门