脫殼方法和殼流程

概述
脫殼是一項綜合技術,結(jié)合PE文件格式枫匾、匯編指令的分析迅诬,調(diào)試加密的程序并將其還原的一個過程。
殼一般分為兩種婿牍,加密殼和壓縮殼侈贷,里面所使用的技術有,壓縮算法、對代碼加密俏蛮、對IAT加密撑蚌、對資源加密。
我們從簡單入手-壓縮殼搏屑。

脫殼三步法
1尋址OEP
2dump內(nèi)存到文件
3修復文件
脫殼三步法-尋址OEP技巧
1堆棧平衡法(ESP定律)
殼代碼就像一個函數(shù)争涌,進入時會開辟堆棧、保存寄存器環(huán)境辣恋,退出時會恢復堆棧亮垫、恢復寄存器。所以應該是堆棧平衡的伟骨,那我們可以在殼代碼操作了堆棧后對堆棧設置訪問或?qū)懭霐帱c饮潦,然后運行程序,當斷點命中的時候携狭,應該就是退出殼代碼的時候继蜡。在其附近單步幾次,應該就能到達程序的原始OEP逛腿。
2特征定位法
在我們熟悉的程序中稀并,我們可以使用特征來定位程序原始OEP。特征有幾種:
① 二進制特征
比如release版的VS2013是:
E8????????E9 call jmp
② API特征
比如vc6.0的第一個API調(diào)用是:
GetVersion
比如Delphi程序第一個API調(diào)用是:
GetModuleHandleA
3單步跟蹤法
這種方法一般使用在分析自己加殼的程序或者是練習分析殼時单默。
脫殼-0.aspack.exe
1尋址OEP
ESP定律
2dump內(nèi)存

image.png

3修復文件


image.png

注意:如果程序有隨機基址碘举,脫殼后需要把隨機基址標志位置0.

殼代碼的基本流程
① 保存寄存器環(huán)境
② 加載一些必要的API
③ 解密代碼和數(shù)據(jù)
④ 修復重定位
⑤ 填充IAT
⑥ 恢復寄存器環(huán)境

=========================

分析殼代碼-0.aspack.exe
① 殼OEP


image.png

② 加載必要API


image.png

③ 解密解壓縮代碼


image.png

④ 修復重定位


image.png

⑤ 修復IAT
001D726F 03F2 ADD ESI,EDX ; esi=導入表結(jié)構(gòu)
001D7271 8B46 0C MOV EAX,DWORD PTR DS:[ESI+0xC] ; 獲取模塊DLL名稱RVA
001D7274 85C0 TEST EAX,EAX
001D7276 0F84 0D010000 JE 00_aspac.001D7389
001D727C 03C2 ADD EAX,EDX ; 加上基地址,字符串VA
001D727E 8BD8 MOV EBX,EAX
001D7280 50 PUSH EAX
001D7281 FF95 A90F0000 CALL DWORD PTR SS:[EBP+0xFA9] ; 獲取模塊基地址
001D7287 85C0 TEST EAX,EAX
001D7289 75 07 JNZ SHORT 00_aspac.001D7292
001D728B 53 PUSH EBX
001D728C FF95 AD0F0000 CALL DWORD PTR SS:[EBP+0xFAD]
001D7292 8985 A9050000 MOV DWORD PTR SS:[EBP+0x5A9],EAX ; 保存模塊基地址
001D7298 C785 AD050000>MOV DWORD PTR SS:[EBP+0x5AD],0x0
001D72A2 8B95 88040000 MOV EDX,DWORD PTR SS:[EBP+0x488] ; 獲取基地址
001D72A8 8B06 MOV EAX,DWORD PTR DS:[ESI] ; 獲取指向OrignalFirstThunk RVA
001D72AA 85C0 TEST EAX,EAX
001D72AC 75 03 JNZ SHORT 00_aspac.001D72B1
001D72AE 8B46 10 MOV EAX,DWORD PTR DS:[ESI+0x10]
001D72B1 03C2 ADD EAX,EDX ; 計算得出 OrignalFirstThunk VA
001D72B3 0385 AD050000 ADD EAX,DWORD PTR SS:[EBP+0x5AD] ; 0
001D72B9 8B18 MOV EBX,DWORD PTR DS:[EAX] ; 獲取INT中的數(shù)據(jù)搁廓,即指向函數(shù)名稱的 RVA
001D72BB 8B7E 10 MOV EDI,DWORD PTR DS:[ESI+0x10] ; 獲取 FirstThunk
001D72BE 03FA ADD EDI,EDX ; 計算得出 IAT 地址
001D72C0 03BD AD050000 ADD EDI,DWORD PTR SS:[EBP+0x5AD] ; 0
001D72C6 85DB TEST EBX,EBX ; 判斷結(jié)束
001D72C8 0F84 A5000000 JE 00_aspac.001D7373
001D72CE F7C3 00000080 TEST EBX,0x80000000 ; 判斷是否是序號
001D72D4 75 04 JNZ SHORT 00_aspac.001D72DA
001D72D6 03DA ADD EBX,EDX ; 指向函數(shù)字符串結(jié)構(gòu)=INT[i]+模塊基地址
001D72D8 43 INC EBX ; 減去2引颈,跳過字符串結(jié)構(gòu)的序號
001D72D9 43 INC EBX
001D72DA 53 PUSH EBX ; 保存寄存器環(huán)境
001D72DB 81E3 FFFFFF7F AND EBX,0x7FFFFFFF ;去掉序號
001D72E1 53 PUSH EBX ; 壓入字符串或是序號
001D72E2 FFB5 A9050000 PUSH DWORD PTR SS:[EBP+0x5A9]
001D72E8 FF95 A50F0000 CALL DWORD PTR SS:[EBP+0xFA5] ; 獲取函數(shù)地址
001D72EE 85C0 TEST EAX,EAX
001D72F0 5B POP EBX ; 恢復寄存器環(huán)境

⑤ 修改屬性,跳轉(zhuǎn)原始OEP

image.png
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末枚抵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子明场,更是在濱河造成了極大的恐慌汽摹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苦锨,死亡現(xiàn)場離奇詭異逼泣,居然都是意外死亡,警方通過查閱死者的電腦和手機舟舒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門拉庶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秃励,你說我怎么就攤上這事氏仗。” “怎么了夺鲜?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵皆尔,是天一觀的道長呐舔。 經(jīng)常有香客問我,道長慷蠕,這世上最難降的妖魔是什么珊拼? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮流炕,結(jié)果婚禮上澎现,老公的妹妹穿的比我還像新娘。我一直安慰自己每辟,他們只是感情好剑辫,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著影兽,像睡著了一般揭斧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峻堰,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天讹开,我揣著相機與錄音,去河邊找鬼捐名。 笑死旦万,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的镶蹋。 我是一名探鬼主播成艘,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贺归!你這毒婦竟也來了淆两?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拂酣,失蹤者是張志新(化名)和其女友劉穎秋冰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婶熬,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡剑勾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赵颅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虽另。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饺谬,靈堂內(nèi)的尸體忽然破棺而出捂刺,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布叠萍,位于F島的核電站芝发,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苛谷。R本人自食惡果不足惜辅鲸,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腹殿。 院中可真熱鬧独悴,春花似錦、人聲如沸锣尉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽自沧。三九已至坟奥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拇厢,已是汗流浹背爱谁。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留孝偎,地道東北人访敌。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像衣盾,于是被迫代替她去往敵國和親寺旺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容