2012-09-07 80 views
-4

我正在嘗試開發Android反病毒軟件,並試圖找出可能的方法來執行此操作。試圖開發Android反病毒

到目前爲止,我發現唯一的方法之一是使用PackageManager並獲取已安裝的應用程序及其軟件包名稱的列表並將其與黑名單進行比較。有沒有更好的方法來解決這個問題?

+1

我建議在如何防病毒工作和常見的感染方法以及這些感染如何工作方面做一些背景。只查看已知爲惡意軟件的軟件包意味着與實際感染相比,您只能獲得極少的點擊數 – daveh

+0

[IT安全網站]上有相關的問題(http://security.stackexchange.com/questions/32285 /怎麼辦防病毒應用程序換Android的工作)。 – Stan

回答

6

開發一個以root或更好的方式運行的進程:一個審覈進程和文件系統文件的Linux內核模塊。

實施反病毒作爲一個完全用戶空間構造的問題是,惡意軟件通常運行在更高的權限,因此可以輕鬆逃避檢測,這就是爲什麼rootkit感染如此難以處理(「將它從核武器中解救出來,這是確定的唯一方法「)。

你的下一個問題是維護virii的數據庫。早在上世紀90年代的原始AV系統就保存了已知惡意軟件的哈希數據庫。問題是他們不能抵禦多態的可執行文件,那些通過附加到其他程序或Word宏等東西而傳播的可執行文件。另一種方法是開發基於啓發式的系統。在基於虛擬機的系統中,可以輕鬆分析程序的行爲(例如將系統函數的調用定位到惡意軟件),但是一種好的病毒將以「本機」語言編寫,從而使得檢測成爲可能非常困難(如果不是不可能的話)(當我使用諾頓防病毒軟件時,他們的「血獵」啓發式系統從未起作用,並且總是產生太多的誤報)。

最後,你有研究和維護這樣一個數據庫的龐大任務。這就是爲什麼只有大型安全公司(Symantic,McAfee,NOD,Microsoft等)開發AV程序的原因。

如果我是你,我現在就放棄,然後再浪費任何時間。如果這是一個教育練習,那麼您將通過編寫自己的病毒來學習更多關於惡意軟件的知識,而不是寫一個試圖阻止它們的系統。