2011-02-11 90 views
7

我正在嘗試創建一個簡單的病毒清除器。我公司開發的算法是指:簡單病毒清除器

  • 檢查原始文件和被感染的文件
  • 從受感染的文件
  • 使用相同的算法分離病毒修復感染病毒
其他文件

我知道這是可能的,因爲這與修補程序的創建方式相同,但我在如何處理這個問題上有點失落。

任何幫助?

+0

如果你有權訪問orignal文件,爲什麼不把它複製到損壞的文件上呢?似乎很少工作。 – driis 2011-02-11 08:16:12

+0

我認爲問題的關鍵在於推導一種能夠在任何感染相同病毒的文件上運行的「修復」。 – Flynn1179 2011-02-11 08:17:38

+0

@driis:是的,這很容易,但我不想那樣做。我希望程序能夠開發一種算法來移除感染相同病毒的其他文件。 – 2011-02-11 08:17:59

回答

3

你必須投入更多的智慧,而不是簡單地做一些模式匹配,並刪除孤立的病毒代碼。

您正瞄準的病毒是files infectors,這些病毒在我們這些日子裏很少使用。 他們大部分的複製過程如下時間:

  1. 他們自我複製的開頭或在的PE files
  2. 末尾,找到PE文件的入口點
  3. 將一個跳轉指令這個位置指向他們的代碼

消毒文件是任何反病毒最困難的部分。它依賴於病毒代碼的質量:如果它有問題,主機文件將不可恢復。

無論如何,您正在進入機器指令的世界,反彙編器(IDA,PE Explorer ...)和調試器將成爲您最親密的朋友。

0

對兩個文件做一個區別,基本思路是逐個比較原始文件和受感染文件,並將差異保存到某些數據結構中。然後,在未來,您可以在其他文件中查找假設爲差異集合的「病毒」,並刪除「病毒」。

唯一的問題是,與「病毒」無關的兩個文件之間可能存在差異,例如,被感染的文件被修改的方式與原來不同,與病毒無關。

編輯*** 檢查其他文件的病毒不會太難,但我假設你正在處理一些純文本格式的文件,對於二進制通知文件,我不認爲你將能夠刪除「病毒」。