我正在编写基于签名扫描的恶意软件检测。据我了解,主要想法是将扫描文件的签名与黑名单中的签名进行比较。 Here我发现签名是某种MD5哈希,但我怎么能从文件中获取它?还有其他类型的签名吗?
答案 0 :(得分:1)
MD5哈希是文件内容的摘要。如果您有MD5哈希的黑名单,是的,您可以将文件与它们进行比较。我认为这将是一种非常简单和脆弱的扫描恶意软件的方式,但它绝对是一个开始。这将是脆弱的,因为比较MD5哈希只会识别两个文件是否完全相同。任何引入恶意文件的随机性都会使这种扫描方法变得毫无用处。
大多数语言都有一些生成MD5哈希的标准方法。 C#,VB和VC ++可以使用MD5类,PHP有hash函数(使用“MD5”作为第一个参数),在java中有MessageDigest等等。
还有许多其他可用hashing algorithms可用于此目的。 MD5已被证明缺乏某些应用程序,因此SHA算法正在成为这些应用程序的标准。对于此应用程序,您不会期望恶意攻击会尝试创建匹配,而是尝试阻止匹配,但任何哈希标准算法(包括MD5)都应该足以合理地确保不会出现误报被人看见。
答案 1 :(得分:0)
要在java中挖掘邮件,可以使用MessageDigest。根据它的javadoc,它支持MD5,SHA-1和SHA-256。