Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试创建一个简单的病毒清除程序。我开发的算法旨在:
我知道这是可能的,因为这与创建补丁的方式相同,但我对如何进行此操作有点迷茫。
周围有什么帮助吗??
您必须投入更多的智能,而不是简单地进行一些模式匹配并删除孤立的病毒代码。
您针对的病毒是文件感染器,在我们这个时代很少使用。大多数情况下,它们的复制过程如下:
对文件进行消毒是任何防病毒软件最困难的部分。它依赖于病毒代码的质量:如果它有缺陷,宿主文件将无法恢复。
无论如何,您正在进入一个机器指令的世界,其中反汇编程序(IDA、PE Explorer ...)和调试器将成为您最亲密的朋友。
对两个文件进行差异化,基本思想是逐个字符比较原始文件和受感染文件,直到将差异保存到某些数据结构中。然后在将来,您可以在其他文件中查找假设是差异集合的“病毒”并删除“病毒”。
唯一的问题是这两个文件之间可能会存在与“病毒”无关的差异,例如被感染的文件以与原始文件不同的方式进行了修改,这与病毒无关。
编辑*** 检查其他文件是否有病毒不会太难,但我假设您正在处理一些纯文本形式的文件,对于二进制文件,我认为您无法删除病毒”。