關於PE病毒編寫的學習(五)——病毒如何做標記和記錄信息

1.做標記和記錄信息的區別

   做標記:它是爲了其它病毒識別自己,而在固定或符合一定規則的位置上記錄的符號信息。

 

   記錄信息:它是爲了病毒本身正確運行,而存儲的某些信息,甚至是部分代碼,比如解密程序的隨機密匙、所感染宿主文件的某些信息

 

2.那些地方可以做標記和記錄信息

   (1)可標記的位置

       1/程序的入口區域和尾部區域;並非一定是開頭和結尾,比如

              VirusStart:

                    ...

                    jmp $+3                          ;這裏是示例代碼,實際編寫時,有時不可以用$+xx的方法,需要重定位的方法

                    WORD VirusSymbol 'VS'   ;用WinHex查出這裏的位置,以後這個位置做檢查就可以了

                    ...

 

        2/覆蓋或改寫PE結構上不使用或很少使用的位置:

                 這類方法很多,例如:(1)DOS stub的”This program must run in win32“字符串

                                               (2)PE結構上某些保留位置

                                               (3)PE結構上某些可以修改但不影響程序運行的值,比如代碼節默認爲.text或.code,但也可以改爲.Virus

 

        3/針對編譯器的固定習慣:比如,同一版本的編譯器生成文件都有一樣的啓動代碼,可以進行等價替換爲其它代碼,

                                                     或縮減代碼留出位置做標記

                                                  

    (2)可記錄信息的位置

        1/凡是上述可以做標記的位置都可以記錄信息,如果空間足夠

 

        2/註冊表

 

        3/約定的位置文件創建文件用於記錄信息

 

        4/偷偷混進常用軟件的文檔裏,比如說明文件,幫助文件它們都很少被使用

 

 3. 做標記和記錄信息的方法

     (1)做標記:

 

       1/ 固定標記:很多病毒病毒都直接留下有趣的標記

      

       2/ 規則標記: 標記並不一定是固定值,可以是校驗和、規則數列...

 

       3/ 賭博:採用一些不確定行的方法,從宿主程序抽取某些數據或代碼,然後備份到某處,

                    病毒識別時只要比較這兩處就可以了,而正常程序也可能有重複的可能,殺毒軟件

                    一定不敢和你賭。

    

     (2)記錄信息:

       1/ 直接記錄: 這樣做也沒什麼大不了的,很多信息並不是病毒特有的

 

       2/ 加密:

 

很少有資料直接談這個問題,我收集的這些恐怕遠遠不夠,如您有好的想法,希望不吝賜教                                  

發佈了41 篇原創文章 · 獲贊 4 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章