2017年11月21日 星期二

防毒軟體整體架構分析與免殺繞過 (二)

防毒軟體整體架構與免殺繞過 (二)

掃描模組

偵測在電腦內部的所有槽數,進行讀取

各種各樣的檔案都會被掃描到,隱藏的檔案也一樣,包含捷徑檔

壓縮檔的掃描方式我認為滿有趣的。

掃描壓縮檔  前提-----------------------------------------
想當然各位都知道winrar與其他解壓縮軟體

一般的壓縮軟體可以把檔案解壓與加壓

防毒也不例外,但是他們公司有它們自己的作法

利用開源的解壓加壓技術去深入掃描,或是利用自己獨門的解壓技術去掃描。

-----------------------------------------------------------------

壓縮檔的掃描法(與逆向分析相關)

一個經過壓縮的檔案被防毒讀入
防毒使用自家獨門技術把檔案像解壓軟體一樣,把檔案打開
即可發現內部的檔案,在把裡面的檔案完全掃描過一次

分析過之後,發現到的惡意檔案,立即從內部強制移除

有些防毒是連根拔起,就是整個壓縮檔刪除

有些是保留其他正常無害的檔案

那麼可以保留正常的檔案這個防毒軟體,大概的做法就是
該檔案在壓縮檔內都有一定的格式,把壓縮檔用自家的類似16進位編輯程序去開啟

那當防毒判定了內部的某處16進位為某個惡意檔案,就把這段的16進位刪除,再做一些壓縮檔的屬性修改,讓使用者看起來感覺在壓縮檔裡面惡意檔案被刪除了,事實就是如此

但是一些經過加密的壓縮檔,拿給防毒掃描。防毒因為沒有加密的鑰匙,所以無法進行掃描及後續的拆解

---------------------------------------------------------------------------------------------------

掃描模組可以被分成很多個同樣的程序,進行掃描
此模組不僅可以掃描槽,也可以掃描到記憶體啟動區

每個電腦啟動都會經過BIOS調整以及載入開機必要的執行碼
這些都是防毒程式必要的掃瞄地方

一般使用者可能體會到掃描程序的資源占用電腦1%~5%
不要小看%數,因為這樣會讓使用者感覺電腦變得緩慢,必須要把原始碼重寫,甚至優化。

---------------------------------------------------------------------------------

原始碼的優化

如果會逆向分析的人,幾乎都知道堆疊是什麼。
變數運用的必須很少避免佔用到堆疊堆疊量一旦變大相對的參數必須運用的很多同時也必須考慮到是否會有緩衝溢出假設存在緩衝溢出那麼將會讓駭客有機會RCE(遠端執行任意指令)

定義檔在引入之後,需要開發者手動改寫,多餘的程式碼刪除,甚至改寫。這也就是自定義檔

優化主要的就是精簡、精簡、再精簡。

---------------------------------------------------------------------------------

掃描迴圈

迴圈不能寫死!!!

一旦寫了無窮迴圈,下場很慘!
不停的重複無止盡的跑,槽數因此當機。

迴圈的原本意義在於各個資料夾的探勘,寫死的話,會無限探勘,電腦資源隨之暴漲。

之後調用的API無法中斷,迴圈內的運算數字直線往上增加,最後緩衝溢出,電腦就崩潰了。

----------------------------------------------------------------------------------

光是優化就是要看開發者的頭腦了。

這就要靠底層與組合語言的交互運作來執行。



掃描模組,主要的功能就是迴圈。

掃描模組要理解其實不難,幾個觀念下手大概就知道如何運作了。



下一篇會講解比較難的逆向分析結構


其他比較難的就是只有逆向分析模組沙盒模組


請各位多加關注。



防毒軟體整體架構分析與免殺繞過 (三)





沒有留言:

張貼留言

Ollydbg 2.01 繁體中文版

Ollydbg 2.01 繁體中文版 Ollydbg 2.01 繁體中文版下載: Mega:   https://mega.nz/#!I2Qy1aQD!-T5zO3PaANjBHU73I4NlkY8SHMxRptbBV8TpmeFt1fo GD: h...