我在想的一個有效的方法來隔離能力添加到我的防病毒應用程序:VB.net檢疫技術
- 將該文件複製到指定目錄和它的擴展名更改爲none(
*.
)。 - 將文件的二進制代碼保存在XML數據庫中。
哪種方式更好?
但是,我不知道一旦用戶想要恢復文件,我將如何重新編譯二進制代碼。
我在想的一個有效的方法來隔離能力添加到我的防病毒應用程序:VB.net檢疫技術
*.
)。哪種方式更好?
但是,我不知道一旦用戶想要恢復文件,我將如何重新編譯二進制代碼。
一種方法是使用加密引擎加密二進制文件並將其移動到隔離文件夾中,您可以創建一個隨機密碼並使用該密碼加密該文件並將其存儲在某個位置(該密碼也可以是用主密鑰加密)。這可能是最簡單的隔離方式。爲了確定性,只需編寫與隔離代碼完全相反的內容。列舉文件並將其過濾出來,然後當用戶點擊一個項目並按下unquarantine時,它會調用unquarantine函數並將filepath作爲變量。
如果我必須這樣做(再次,我不希望處於這種情況首先,根據我的意見),我會使用一個進程內數據庫引擎,它具有原生支持加密和大型格式的二進制數據。我認爲sql compact或sqlite都適合這一點。
我不會使用xml,因爲它是純文本的,並且二進制數據可以很容易地提取出來,而且我不會只是更改擴展名,因爲該文件仍然可以輕鬆執行。檢疫也不是很重要。
請注意,重命名選項可能是迄今爲止我所討論過的內容中最「高效」的,但是在處理安全軟件時,正確性應始終是您對效率的首要擔憂。有些時候,你可能會損害性能的正確性(3D遊戲渲染軟件會一直這樣做,效果很好),但安全軟件不在這一類。
你可以做的是稍後優化。例如,反病毒引擎使用啓發式(只有大部分時間才能掌握的經驗法則)來使他們的軟件更快,他們這樣做的方式有利於誤報,然後必須進行更仔細的檢查而不是丟失威脅。這隻能起作用,因爲更密切地檢查每個項目的代碼是先編寫並進行了戰鬥測試。
這兩者都不會實際隔離文件。但更重要的是:你在VB.NET中編寫了防病毒程序? – 2011-02-27 14:22:18
@CodyGray:到目前爲止,我已經完成了掃描過程(儘管它對大文件很慢),gui,廣告攔截器和一些GUI。無論如何,如果這些方式不會隔離文件,那麼如何完成? – 2011-02-27 15:32:54
@Cody:那麼微軟......(實際上是在VB6中)。 – 2011-02-27 17:29:12