签名恶意软件检测

问题描述:

我正在编写基于签名扫描的恶意软件检测。据我了解,主要想法是比较扫描文件的签名和黑名单中的签名。 Here我发现签名是某种MD5哈希,但我怎么能从文件中得到它?还有其他类型的签名吗?签名恶意软件检测

+0

[签名扫描](http://*.com/questions/13152150/signature-scanning/13197718#13197718) –

MD5哈希是文件内容的摘要。如果你有一个MD5哈希表的黑名单,是的,你可以比较一个文件对他们。我认为这将代表一种非常简单而脆弱的方式来扫描恶意软件,但这绝对是一个开始。这将是脆弱的,因为比较MD5哈希值只会识别两个文件完全相同。任何引入恶意文件的随机性都会使这种扫描方法变得毫无用处。

大多数语言都有一些生成MD5哈希的标准方法。 C#,VB和VC++可以使用MD5类,PHP有hash功能(使用“MD5”作为第一个参数),在Java中,你有MessageDigest

还有一些其他可用hashing algorithms可能是用于此目的。已经证明MD5对于某些应用是缺乏的,因此SHA算法对于这些应用变得非常标准。对于这个应用程序,如果您不希望恶意攻击尝试创建匹配项,而与尝试阻止匹配相反,则任何散列标准算法(包括MD5)都应该足以合理确保没有误报可见。

对于在java中的消息消息,您可以使用MessageDigest。根据它的javadoc,它支持MD5,SHA-1和SHA-256。