這個教程主要是講判斷程序是否加殼,所以老鳥飛過。很多人一看到這里,就會說用PEID查殼就行了呀,其實不然?,F(xiàn)在 一些商用的軟件為了加密來保護知識產(chǎn)權(quán),已不滿足于ASProtect、ACProtect等這些有名的強殼,這些殼雖加密強度高,對新手來說遙不可及,但因為很多人研究,已經(jīng)很容易手動脫殼。所以這些商家就想到了自行加殼(這在看雪的加密與解密中有提到)和修改程序入口的特征(搞黑客,做木馬免殺的都知道),這樣查殼工具就會顯示無殼,但其實還是加了殼的,有時還不止一層殼。
那怎么準(zhǔn)確的判斷是否加殼呢?這就是今天的主要內(nèi)容。 首先按照常規(guī)給軟件查殼 ![]() 看上去沒有殼,那我們再深入看看,點擊PEID右下角的擴展信息試試 ![]() 判斷1: 你有沒有壓縮呀? 雖然殼有壓縮殼和加密殼,但現(xiàn)在大多數(shù)的殼都有壓縮功能,而現(xiàn)在PEID提示壓縮的可能非常大,也就是說加殼的可能性很大,當(dāng)然Ollydbg在載入時也有類似的提示。但這些還不能完全準(zhǔn)確地判斷,還是OD載入試試 ![]() 判斷2: 好多命令有問題哦! 看見了嗎,很多是未知命令或錯誤命令,一般程序不會是這樣的吧! 再看看 ![]() 判斷3: 我知道你有多少 一般加殼程序為了不讓人破解,就會加密一些重要的信息,比如文本字串,這個軟件查找文本字串時會出現(xiàn)錯誤,顯然作者有東西不讓我們知道 到這里,同學(xué)們都知道這軟件八成就是加殼的,那還有什么其他特征呢 ![]() 判斷4: 跳轉(zhuǎn)和循環(huán) 一般來說,加殼的軟件一般都有很多的跳轉(zhuǎn),而且沒有規(guī)律,大多是JMP,循環(huán)出現(xiàn)在算注冊碼的時候,但有時用在加殼程序在內(nèi)存中解碼的時候,所以可以作為脫殼的突破口 ![]() 判斷5: 雷人的命令 這程序真的很雷人,004DA3C2的命令就是一個死循環(huán),進去就出不來 說到這里,我突然想到有些殼會故意加這些命令來使OD提示異常,有些可以跳過,有些(比如這個軟件)OD會提示無法回避命令,這樣的話,個人推薦StrongOD插件,具體設(shè)置見圖 ![]() ![]() 設(shè)置好了,就可以跳過大多數(shù)的異常了,當(dāng)然在記得在不用的時候把鉤去掉 對于這種不明的殼,只有手動了,具體的手動操作大家可以在百度找“手動脫殼”,我就不提了 個人嘗試了一下,找到一個疑似OEP的地方 ![]() 入口是Dephi的,而殼剛剛查過,是VC的,那么這是OEP的可能很大,脫殼試試 ![]() 修復(fù)過程很正常,但是運行時出錯 ![]() ![]() ![]() 個人覺得奇怪的是既然系統(tǒng)提示出錯,為何軟件又運行了,難道是自校驗。但也許是我修復(fù)輸入表時有問題。 教程就寫到這里了,牛人可以試試脫殼,能脫的,請回復(fù)一下,簡要講講脫殼的過程,或是另外寫一個帖子,反正就是要分享經(jīng)驗了。 把軟件地址附上http://u./file/f3915243ea 2011常識判斷名師模塊-伍景玉01.exe |
|