在這外殼程序風起雲湧的幾年間,出現了無數優秀的外殼,CoDe_inJect 曾談過對幾種流行殼的看法,我斗膽結合他的言論描述一下現在常見的保護外殼:
ASProtect
無可爭議的外殼界老大,它開創了殼的新時代,SEH 與各種流行反跟蹤技術、多態變形引擎的使用(準確來說是從病毒中借用)、BPM 斷點清除等都出自於此;更為有名的當屬 RSA 算法的使用,使得 DEMO 版無法被破解成完整版;Code Dips也源於這裡;輸入表處理即使現在看來仍很強勁。開發殼應該學習它各種算法的熟練運用,而它最失敗之處就是反跟蹤過於溫柔,令破解者輕鬆研究。
tELock
大名鼎鼎的一款免費的保護軟體,具有較強的反跟蹤能力,用SEH控制 DRx結合記憶體校驗封殺了 BPM 斷點和SuperBPM 等工具。並有 BPE32 變形引擎產生很多異常代碼干擾跟蹤。輸入表的修復讓人頭痛了好一陣子,於此形成諷刺意味的是,輸入表在重定向之前會在記憶體中以完整的形態出現。值得一提的是heXer 花費了數月零散時間,將它逆向並做出了一個加強版,稱之為 tELock X。
PELock
PELock應該是很多殼的綜合,輸入表處理、RSA算法、反跟蹤、清除斷點、SHE 都用到了,而且是第一個可以在Win98下檢測出IceDump的殼。在這個殼中第一次使用了清除代碼、加密代碼、鎖定代碼,使被加密的程序更難轉儲。
DBPE
這個殼在國內如日中天,奧妙在於哪裡?就在於反跟蹤做得比較完善,它是很早使用驅動的殼,雖然驅動的運用僅僅是為了在WinNT下切到Ring-0, 但開創了殼使用驅動的先例。輸入表處理一般,修改了中斷向量並使用其進行解碼,一些版本中有 MMXE 變形引擎使跟蹤起來眼花繚亂。可惜的是由於作者對 RSA 的錯誤理解,使破解者可以做出註冊機,且即使不註冊也可以脫殼。
SVKP
這個殼的有著深厚的背景, 那就是anticracking.sk 與DAEMON、 EliCZ等一大批傳說中的人物有著密切的關係,但是這個殼的反跟蹤和輸入表處理都不夠理想,可能跟作者的編碼能力有關吧。驅動在這個程序中使用比較熟練,一些系統上會隱藏進程使得ImportREC等工具遇到阻礙,運用了 KME 變形引擎使代碼在堆棧中執行,跟蹤起來困難重重。
Xtreme-Protector
如它的名字一樣,似乎是目前最強悍的殼,也是驅動程序使用最為熟練的殼,驅動有解碼、反跟蹤的作用,多線程的SMC使得程序的保護能力直線上升。令很多沒有硬體調試器的破解者望而卻步。
Star-Force
與 Xtreme-Protector不相伯仲的強大外殼,它的核心是一個偽代碼的解釋器,大大複雜了對其的研究工作;一部分導入函數的代碼是從系統庫中拷貝出來並進行修改過的;一部分程序代碼只有在執行時候才解密出來。保護中還大量的應用了這些手段:檢測某些記憶體段的CRC 校驗和,經常地將DRx清零,利用RDTSC指令來控制解碼不同塊的解碼時刻,最後一塊代碼的解碼甚至通過截獲Int 0在 Ring-0 中進行。不過它多用於光盤加密,在共享軟體中並不多見。
Armadillo
當今猛殼之一,殼如其名擁有厚重的裝甲,加殼方式有兩種,一種是標準方式,另一種是CopyMem-II+Debug-Blocker,其標準加殼方式相對來說則容易的多。雙進程方式加殼的修復著實是一件令人頭疼的工作。
Hying』s PE-Armor
網絡遊戲外掛中經常會遇到的殼,許多人對其避而不談令它蒙上了濃重的神迷色彩。它擁有偽裝功能,初學者常常被探測軟體的信息所迷惑。DRx與校驗和解碼技巧非常普遍,輸入表的處理比較好,會針對對不同的編譯器做特殊處理,內涵仿真虛擬機系統作為SDK使得脫殼更為困難。它的一個非常老的版本源代碼在看雪的新書《軟體加密內幕》中公開,幾乎沒有什麼強度,但通過其學習外殼開發非常有價值。
ACProtect
首次使用了一些新反跟蹤技巧的殼,剛剛浮出水面的一段時間內鬧得沸沸揚揚後被123112用他的妖幻調試器 TRW2000 結果了,有關它的一些反跟蹤,fly寫過一些詳細介紹,這裡不再贅述。經過很多版本的改進,ACProtect的 Embedded Protect 和 RSA Protect 做得非常不錯,即使不使用SDK修復起來也是非常不便的。另外fly總結了利用「ESP定律」的方法,可以減輕跟蹤強度。
Obsidium
這個殼的特色在於支持分頁加密,並且擁有強大的代碼、資源充定位功能,令修復很困難。輸入表的處理似乎不錯,新版本不幸激發了 heXer 通宵的興趣在一夜之間支離破碎。
Pll621Shell
山村老妖Pll621的私人工具,先於Hying的殼擁具有Dump Shield 功能,花指令繁多,Win98下跟蹤比較麻煩,輸入表重構但加密簡單,最大的特色是會偽裝為VC++6.0。這個殼停止更新很久了,但籍於它作者的名字,很多人從未放棄過對它的追求。
PESpin
壓縮與加密並重的殼,輸入表處理較好,代碼替換功能據說非常強大,不過fly與他的一個神秘朋友一舉擊破它的主程序防護,令作者也不得不寫信詢問脫殼的方法。醞釀中的新版本可能使用KME變形引擎,不過在WinXP Sp2的DEP機制中我只能祝願它能夠如願運行起來。
SDProtector(SoftDefender)
軟體保護神,極多的反跟蹤技巧和花指令,即使閱讀源代碼理解都非常困難。多線程的全程保護令它增色不少,並且具有偽裝為VC++的功能,也許會逐漸取代幻影成為國內加密軟體的霸主。由於充斥著大量的SEH、反跟蹤和自校驗,脫殼時必須全程跟蹤,即使h****、Y*** 這樣的超人也許要一定時間。
EncryptPE 2004
2003版本已經曾為過去,不多做評價。新的EPE具有良好的兼容性(並非指運行的兼容性)、無限層加密支持和自調試機制,並且帶包括易語言在內的多種SDK。heXer預言它將是未來使用最多的殼,其實力可想而知。
VCASM
最近VCASM新出了Vcasm-Protector,尚未見有評論。VCASM是一個作者的老作品,它使用4個進程互相調試和大約3個線程反跟蹤,充斥的難以計數的異常,從頭跟到入口幾乎成為不可能。目前破解方法似乎只有附加在運行後的進程上寫代碼修復,但是如果和其他外殼配合加密了資料段,脫殼就會變得極度困難了。
eXcalibur
中文名如雷貫耳,叫「仙劍」,不過金玉其外敗絮其中,實在有辱這個名字。作者是 LiNSoN(過去的 fORGAT),說來慚愧,它純粹是為了學習加密和彙編而做的殼,沒甚麼自己的特色,並且基本都是借用他人代碼,它的價值僅僅限於給初學者做練習了,源代碼全部公開,作者自己都沒了。唯一值的說的,是它的最後一個版本中附帶了一首動聽的MIDI《御劍江湖》。
(