我应该去哪里获取所有已知病毒的签名列表?

12

我用Python写了一些杀毒软件,但是我找不到病毒签名。软件的工作原理是将硬盘上的每个文件转储成十六进制,从而获得十六进制签名。我应该从哪里获取所有已知病毒的签名呢?


6
不是所有的病毒都有静态签名。 - Lasse V. Karlsen
我该如何使用Python进行启发式分析。这正是我最初想做的事情,但找不到任何有关它的帮助。我认为这是一种更可靠的检测和清除病毒、蠕虫、木马和间谍软件的方法。 - Zac Brown
2
为什么要将硬盘上的每个文件转换为十六进制?这样做没有意义。病毒签名主要由编写杀毒软件的公司创建。您可以使用特定杀毒软件供应商的签名数据库,但除了学习之外,编写一个仅检查其他杀毒软件已经检查过的相同签名的新杀毒软件是没有意义的。此外,“最好的”病毒/蠕虫经常更新(有时每天更新一次),使签名几乎无用。对于这种情况(以及多态代码),可以使用启发式分析。PS:抱歉,我不得不更新我的评论。 - jweyrich
jweyrich:有什么想法怎么做吗?我是一名Python程序员,但也就这样了。 - Zac Brown
似乎将十六进制代码在首次摄入时转换为二进制会更快,然后搜索磁盘文件的字节字符串以查找每个签名...(在Python中,可以通过在字符串前面加上“b”来指定字节字符串,例如b'hello'b'\x68\x65\x6c\x6c\xf',它们都等同于Python 2中的'hello'。) - Sarah Messer
显示剩余3条评论
3个回答

15

Clamav,这是一款开源的GPL杀毒软件。你可以查看其源代码来了解它如何实现启发式和其他功能。它使用C语言编写。

你也可以在那里下载病毒数据库。它们是免费且定期更新的。


3
明智选择!很棒的起点。+1 - jweyrich

6
我怀疑这样的列表不存在,反病毒公司花费大量时间和金钱建立他们的数据库,因此他们不太可能免费发布数据。 此外,正如Lasse所说,不是所有病毒都有静态签名。 “好”的病毒(我认为这意味着本世纪大多数病毒)都将自我变异。

好的,谢谢您的回复。我愿意重新编写软件,使其“好”而不是毫无意义的。只是我不确定我知道如何做到这一点。我需要用Python编写软件。我该如何使它变得更好? - Zac Brown
@Zachary:为什么你想要编写反病毒软件?你想做些什么,是你的竞争对手(如McAfee、Symantec、AVG、Microsoft等)没有做到或者做得不好的呢? - Michael Petrotta
@codeka 不,所有的防病毒软件都会发布这些信息。只是其他软件无法以可读的形式查看。但是可以通过反向工程来获得这些信息(忽略法律问题)。 - jweyrich
3
@Zachary:祝你好运,希望你能学到东西。请注意,微软(我使用的杀毒软件供应商)发布高质量的杀毒软件,可以免费自动、频繁地更新(适用于大多数 Windows 版本)。我并不是要打击你的积极性,但希望你明确市场情况——它已经饱和,并且开发难度很大。 - Michael Petrotta
好的,那么你有没有关于一些未被饱和市场占据的有用软件的想法呢?我很乐意听取建议。只是想要利用我的技能做一些有益的事情。 - Zac Brown
显示剩余4条评论

2

在comodo.com上有一个CSV格式的恶意软件签名数据库,你可以从他们的网站上下载。
下载病毒签名数据库

这是一个相当大的文件(约432MB),因此应包含许多签名。

注:Original Answer翻译成“最初的回答”


我在那个网站上找不到CSV格式的下载,只有他们自己的.CAV文件格式。 - leumasme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接