近期,大量国内用户遭受到cerber勒索软件的侵害,cerber作为新起的勒索软件家族,大有后来居上的姿态,网上也有数篇对于cerber**勒索软件**的行为的分析。这款勒索软件,使用rsa非对称加密加密用户的文件,在没有私钥的情况下,基本上没有可能解密出被勒索的文档。这个勒索软件比较新颖的使用了murmur hash算法,本文本着学习的精神,对murmurhash算法的原理及在此款勒索软件中的使用作了简单的分析。
Murmur hash算法介绍
MurmurHash是一种非加密型哈希函数,适用于一般的哈希检索操作。 由Austin Appleby在2008年发明,并出现了多个变种,都已经发布到了公有领域。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。当前的版本是MurmurHash3,能够产生出32-bit或128-bit哈希值。
MurmurHash算法具有高运算性能,低碰撞率等特点,这也人使的近些年对MurmurHash的使用风生水起,目前应用MurmurHash 的开源系统包括Hadoop、libstdc++、nginx、libmemcached。
Murmur hash 算法实现
根据维基百科上给出的伪代码,我们使用python实现 murmur hash算法,如下:
[Python] 纯文本查看 复制代码
?
def murmur3_x86_32(data, seed=0):[