如何创建病毒签名?

Posted

技术标签:

【中文标题】如何创建病毒签名?【英文标题】:How do I create a Virus signature? 【发布时间】:2011-05-24 01:25:59 【问题描述】:

如何创建自己的 .exe 或 .lib 文件的病毒签名?我开始读取文件中的某些字节,然后将它们存储在另一个文件中并手动将其添加到病毒扫描程序中。这行得通吗?谢谢

【问题讨论】:

您是否正在尝试制作一个可以轻松加载到现有免费或商业 AV 产品中的文件?如果是这样,您应该指定哪个... 67% 并不一定那么低。我的比率可能在这个附近,这是因为我问了很多难题,但答案仍然很不完整或根本没有正确答案。 您在寻找EICAR test file吗? 【参考方案1】:

创建文件签名的方法有很多种,其中一种最简单的方法是采用散列函数(如 SHA1)并针对整个文件运行它。

【讨论】:

考虑到即使是 15 或 20 年前幼稚的 polymorphic viruses 也可以轻松绕过 SHA1 或类似的哈希机制,这些哈希值并不是病毒扫描的好工具。 我不是想防病毒,我想创建一个创建病毒定义文件的测试程序,以便故意隔离某些文件【参考方案2】:

基本上,您需要找到使其独特的字节序列,AV 公司花费大量时间来分析行为、训练并找到独特的东西。并且防病毒应用程序读取二进制文件以查找字节模式

请阅读卡巴斯基的Antivirus fundamentals: Viruses, signatures, disinfection

从基本开始,您需要创建/维护一个十六进制表,其中签名是唯一列,后跟名称、类型。并读取您计算机中的文件并尝试与 Hex 数据库表匹配。

现在如何保持它的唯一性,因为很难自己分析每个.exe 以获得签名。如这里所述,请阅读intro-to-creating-anti-virus-signatures

在此处查找 yara 引擎和规则 virustotal.github.io/yara/ 以及 VirusTotal 如何使用它来创建 AV 签名然后使用规则 yararules.com 。很少有像 yaraeditor 这样的工具可以用于帮助你,但通过谷歌你可以找到更多。

然后,您可以将自己的手放在像 ClamAV github.com/Cisco-Talos/clamav-devel 这样的开源防病毒软件上,并将其用于目的。

【讨论】:

以上是关于如何创建病毒签名?的主要内容,如果未能解决你的问题,请参考以下文章

具有数千个签名的防病毒软件如何在很短的时间内扫描文件? [关闭]

如何在 Mac 上的“邮件”中创建和使用电子邮件签名?

每次我们重新发布软件时如何阻止防病毒误报?

如何创建一个自签名的SSL证书

如何创建一个自签名的SSL证书

如何在 PdfBox 中详细显示创建者的签名