殺軟是如何檢測出惡意代碼的?
經過特徵碼:對已存在的流行代碼特徵的提取與比對
經過行爲:是否有更改註冊表行爲、是否有設置自啓動、是否有修改權限等等shell
免殺是作什麼?
植入惡意代碼,防止被殺毒軟件檢測出來,並能成功控制被植入機編程
免殺的基本方法有哪些?
對惡意代碼進行加殼、用其餘語言或編譯器進行再編譯,利用shellcode進行編碼,減小對系統的修改,多在內存裏進行操做,多使用反彈式的鏈接安全
在本次實驗中,主要是對惡意代碼進行免殺操做。能夠看出,對於如今的殺毒軟件來講,着重的是惡意代碼的特徵值與行爲,一旦咱們給出的惡意代碼避免了被查殺的特徵值、減小了對系統的一些行爲,那麼殺毒軟件將沒法判斷此代碼是病毒;更別說一些惡意代碼捆綁到了有用的應用軟件上,更甚是本身創造的一個新病毒。因此,對於殺毒軟件的應用上,咱們不能盲目的絕對相信,也仍是須要本身去多積累些防毒殺毒的知識與方法,儘可能作到有毒可知,有毒可刪。
雖然說在實驗中咱們作出的不少惡意代碼都能避免被殺毒軟件的查殺,可是殺毒軟件也在不斷更新、擴充病毒庫,因此若是想真正的進行實戰的話,最好的方法就是本身去研究各個軟件的源代碼,尋找到漏洞,而且可以寫出攻擊該漏洞的惡意代碼,同時還須要瞭解計算機是如何運做的、殺毒軟件是如何查殺的方面的,來進一步的避免本身生成的惡意代碼在半道上被「截獲」。
有一個風險,但它和咱們剛生成的惡意代碼無關ruby
存在10個風險,且咱們生成的惡意代碼被查出網絡
爲何殺毒範圍大了,不少病毒就查不出來了?說明這款殺毒軟件可能有它的侷限性,大範圍的查找可能精確度、效率不高,因此之後仍是多多一個盤一個盤的單獨殺毒吧tcp
查出惡意代碼工具
當把生成的可執行文件一傳到win7,電腦管家就自動對其進行檢測並刪除掉了測試
一樣的,一傳送到win7上,就被電腦管家檢測出並刪除了編碼
未檢測出惡意代碼code
未檢測出惡意代碼
成功控制靶機
有12%的殺毒軟件檢測到該可執行文件爲病毒,說明使用編程方式的病毒免殺強度仍是挺高的
未檢測出惡意代碼
此次只有5%的殺毒軟件檢測出來了,說明對shellcode進行初次的再編譯對於免殺來講仍是頗有必要的
未檢測出惡意代碼
同只用shikata_ga_nai編譯一次的免殺效果是同樣,那就可能能夠說,不管咱們用同一個編譯器對shellcodea編譯了多少次,只要殺毒軟件認定該編譯器生成的文件就是有問題,那麼最終都會被查殺出來