這個小工具是完全基於虛擬機的,脫殼過程中,除了 yp 殼的解密 API 直接定位到系統 API 上去了外,待脫程序的執行完全不直接依賴 win系統,因此,對系統來說,沒有什麼安全威脅,可能一些玩毒弄馬的朋友會更喜歡些。
本來是打算,逐漸引入多線程、多進程的。但,由於沒有操作系統的支持,我是怕了,很多都像是體力活,不打算再繼續寫下去了。目前脫殼效果也還可以,我試驗過 255 種殼 (當然像 UPX 這種,我試驗的小版本也在裡面啦),都能幹掉 (絕大多數是壓縮殼),不知道在你那裡會怎麼樣,希望一切都好吧 :)
說下這個工具的工作原理,它的殼特徵和編譯器特徵保存在 PEid_Sign.txt 裡面,呵呵,借鑒了很多高人的特徵,哈,如果識別不準確,你可以自己動手。
能識別出來的殼 (我把它稱作已知殼),基本上都有對應的脫殼函數,用殼特徵脫殼,可以脫殼,對於一些不好特殊的殼,你可以用 OEP偵測來脫殼,這要依賴編譯器特徵,你也可以自己添加編譯器特徵到 PEid_Sign.txt。(怎麼加?我想你看下就應該知道了,不多說了)
對某些未知殼 (相對上面的已知殼),可能能用未知殼脫殼選項搞定,它裡面的原理也是用了編譯器入口處信息;我試驗某殼時,發現它在解殼時申請很多內存,而又不釋放,這裡,你可以適當增加堆大小,我那個時候設到15Mbyte 才搞定。
對 mslrh 殼,脫到抽 OEP 處就沒有繼續了,不過 dump 出來程序可以運行了,本寫了過修復程序,我怕它跟編譯器有關,這裡就沒有加這個功能了。 |
|