国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號(hào)

黑客老鳥講逆向分析:有關(guān)脫殼以及脫殼實(shí)例講解
2008-02-25   

上節(jié)課講了許多有關(guān)殼的知識(shí),下面我們就開始講如何脫殼,以及脫殼時(shí)要用的的一些工具,首先是查殼,當(dāng)前流行的查殼工具主要以peid和fileinfo這兩個(gè)軟件為代表。

PEiD的原理是利用查特征串搜索來完成識(shí)別工作的。各種開發(fā)語言都有固定的啟動(dòng)代碼部分,利用這點(diǎn)就可識(shí)別出何種語言編譯的。同樣,不同的殼也有其特征碼,利用這點(diǎn)就可以識(shí)別是被何種殼所加密。PEiD提供了一個(gè)擴(kuò)展接口文件userdb.txt ,用戶可以自定義一些特征碼,這樣就可識(shí)別出新的文件類型。

一般的壓縮殼,如Aspack等都有專用的脫殼機(jī)。而加密殼(如ASProtect,Armadillo) 一般很少有脫殼機(jī),必須手工脫殼。手工脫殼一般情況是分三步:一是查找程序的真正入口點(diǎn)(OEP);二是抓取內(nèi)存映像文件;三是輸入表重建。(當(dāng)然現(xiàn)在的加密殼復(fù)雜些,要考慮更多的東西)OEP是Original Entry Point縮寫,即程序加殼前的真正的入口點(diǎn)。

如何尋找oep

外殼初始化的現(xiàn)場(chǎng)環(huán)境(各寄存器值)與原程序的現(xiàn)場(chǎng)環(huán)境是相同的。加殼程序初始化時(shí)保存各寄存器的值,外殼執(zhí)行完畢,會(huì)恢復(fù)各寄存器內(nèi)容。其代碼形式一般如下:

PUSHFD         ; 將標(biāo)志寄存器入棧保存
PUSHAD         ; push eax, ecx, edx, ebx, esp, ebp, esi, edi
……           ; 外殼代碼部分
POPAD          ; pop edi, esi, ebp, esp, ebx, edx, ecx, eax
POPFD          ; 恢復(fù)標(biāo)志寄存器
JMP OEP        ;
OEP: ……          ; 解壓后的程序原代碼

方法一:利用UPX 通用脫殼機(jī)自動(dòng)脫殼

脫殼后的程序,利用PEid進(jìn)行分析,PEid給出如下的信息:
Borland Delphi 6.0-7.0

方法二:跨段指令尋找OEP

用Ollydbg來調(diào)試脫殼 ,運(yùn)行Ollydbg,點(diǎn)擊菜單“Options/Debugging options”,選擇Events項(xiàng),將第一次暫停設(shè)在WinMain函數(shù)上。 Ollydbg打開實(shí)例Bandook v1.35.exe.

相關(guān)代碼:
006E0440 $ 60       pushad     //一開始Ollydbg就會(huì)中斷這行,這個(gè)就是外殼的入口點(diǎn),注意這個(gè)pushad指令 .

如下圖所示

絕大多數(shù)加殼程序在被加密的程序中加上一個(gè)或多個(gè)段,所以依據(jù)跨段的轉(zhuǎn)移指令(JMP)就可找到真正的入口點(diǎn),此時(shí)就會(huì)有POPAD/POPFD 指令出現(xiàn)。UPX 用了一次跨段的轉(zhuǎn)移指令(JMP),在跳到OEP處會(huì)看到虛擬地址的值有一個(gè)突變,此時(shí)就能確定OEP了。

UPX殼比較簡(jiǎn)單,中斷WinMain后,只需要在Ollydbg里往下翻屏,就會(huì)發(fā)現(xiàn)這個(gè)跨段轉(zhuǎn)移指令:

上圖相關(guān)代碼如下:
006E05A2  >  61    popad            //注意這里的popad指令,和開始的pushad對(duì)應(yīng)            
006E05A3  - E9 444EE7FF     jmp     005553EC  //這里跳到OEP,將光標(biāo)移到這,按F4執(zhí)行到這行

這句006E05A3    jmp   005553EC就是跳到OEP的指令,執(zhí)行到這,UPX外殼己將程序解壓完畢,并模擬Windows加載器將原始程序加載到內(nèi)存, 005553EC 就是映射到內(nèi)存目標(biāo)程序的入口點(diǎn),此時(shí)就可抓取內(nèi)存映像文件了。

相關(guān)代碼:
005553EC 55  push ebp
005553ED 8BEC mov ebp,esp
選擇Plugins->OllyDump->Dump debugged process項(xiàng),Dump保存成新的文件。

方法三:編譯語言特點(diǎn)找OEP

各類語言編譯的文件入口點(diǎn)都有一些規(guī)律,可以這利用這點(diǎn)來尋找入口點(diǎn)。

1)Delphi程序
執(zhí)行程序,用LordPE(或Prodump)選dump(full)脫殼,存為dump.exe。接著用Hex Workshop打開 dump.exe,搜索文本“runtime”,搜到后,向前查找離“runtime”最近的十六進(jìn)制數(shù)字“55 8B EC”,數(shù)字所在的地址就是程序的OEP。

2)Visual C程序
可以利用Visual C啟動(dòng)部分幾個(gè)函數(shù)GetCommandLineA(W)、GetVersion、GetModuleHandleA(W)、GetStartupInfoA(W) 等來定位程序的OEP。

常見的各類編譯語言的入口匯編代碼都要熟悉,因?yàn)橐恍┘用軓?qiáng)殼會(huì)偷OEP處的代碼到殼里,一般情況各編譯語言入口代碼都相同,到時(shí)只需要直接引用相關(guān)程序的入口代碼,這給我們恢復(fù)代碼帶來方便。

其它技術(shù):

通過堆棧平衡尋找OEP,通過內(nèi)存斷點(diǎn)尋找OEP

補(bǔ)充講解一下windowsapi函數(shù),這可是脫殼的時(shí)候離不開的,如果熟悉了它可以更快的找到程序的入口及程序領(lǐng)空

Win32 API是基于C語言的接口,但是Win32 API中的函數(shù)可以由用不同語言編寫的程序調(diào)用。

Windows的主要部分有三個(gè)主要子系統(tǒng),分別是Kernel/User/GDI。
Kernel:操作系統(tǒng)核心功能服務(wù),包括進(jìn)行與線程控制、內(nèi)存管理、文件訪問等;
User:負(fù)責(zé)處理用戶接口,包括鍵盤和鼠標(biāo)輸入、窗口和菜單管理等;
GDI:圖形設(shè)備接口,允許程序在屏幕和打印機(jī)上顯示文本和圖形。

常用Win32 API函數(shù)
GetWindowText函數(shù),作用是取得一個(gè)窗體的標(biāo)題文字,或文本控件的內(nèi)容。
GetDlgItemText函數(shù),作用是獲取對(duì)話框文本。
GetModuleFileName函數(shù)
InternetOpen函數(shù)
InternetOpenURL函數(shù)
SetWindowsHookEx函數(shù)
AdjustTokenPrivileges函數(shù)
LookupPrivilegeValue函數(shù)
OpenProcessToken函數(shù)
GetCurrentProcessId函數(shù)
GetCurrentProcess函數(shù)
GetWindowThreadProcessId函數(shù)
GetComputerName函數(shù)


熱詞搜索:

上一篇:黑客老鳥講逆向分析:什么是殼及殼的加載過程
下一篇:黑客老鳥講逆向分析:逆向分析技術(shù)全揭秘(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
日韩精品中文字幕一区 | 青草av.久久免费一区| 精品久久久久久久人人人人传媒 | 国产三级精品三级在线专区| av不卡一区二区三区| 亚洲影视资源网| 亚洲天堂福利av| 国产精品美女久久久久aⅴ国产馆| 日韩免费电影网站| 欧美一区二区三区播放老司机| 成人免费视频国产在线观看| 久久99日本精品| 日韩高清不卡一区二区三区| 亚洲成a人片在线不卡一二三区 | 亚洲一区在线视频| 成人免费一区二区三区在线观看| 国产欧美一区二区三区在线看蜜臀| 日韩午夜中文字幕| 欧美色大人视频| 欧美绝品在线观看成人午夜影视| av电影在线观看不卡| 国产激情一区二区三区| 国产一区二区三区免费播放| 狠狠色丁香久久婷婷综| 日韩电影一二三区| 久久精品理论片| 国产一区二区三区观看| 国产一区二区网址| 成人黄色777网| 色婷婷综合久久久久中文一区二区| 成人免费视频免费观看| 91在线播放网址| 在线观看不卡视频| 欧美老肥妇做.爰bbww视频| 91精品国产欧美日韩| 在线观看欧美黄色| 欧美一区二区视频免费观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 中文成人综合网| 自拍av一区二区三区| 男人操女人的视频在线观看欧美| 国产寡妇亲子伦一区二区| 欧美日韩一区三区四区| 亚洲国产经典视频| 日本午夜精品视频在线观看| 99久久久无码国产精品| 日韩欧美亚洲一区二区| 亚洲最快最全在线视频| 国产69精品久久久久毛片| 91麻豆精品国产91久久久久久| 国产精品不卡一区| 国产经典欧美精品| 日韩欧美自拍偷拍| 亚洲福利视频一区| 91丝袜美女网| 欧美国产日韩亚洲一区| 精品在线免费视频| 日韩欧美亚洲国产另类| 亚洲一区二区欧美日韩| 成人h动漫精品| 国产女同互慰高潮91漫画| 久久国产欧美日韩精品| 欧美日韩不卡在线| 午夜精品爽啪视频| 在线免费av一区| 亚洲人成人一区二区在线观看| 国产成人精品一区二区三区四区| 欧美人狂配大交3d怪物一区| 亚洲综合在线五月| 欧美最猛黑人xxxxx猛交| 亚洲日本一区二区| av综合在线播放| 18欧美亚洲精品| 91极品视觉盛宴| 一区二区视频在线| 91小视频在线观看| 亚洲精品网站在线观看| 欧美亚洲动漫另类| 图片区小说区区亚洲影院| 7777精品伊人久久久大香线蕉| 亚洲最大色网站| 7777精品久久久大香线蕉| 日韩福利电影在线| 精品日产卡一卡二卡麻豆| 国产在线观看免费一区| 国产精品五月天| 色综合天天综合在线视频| 亚洲影视在线观看| 欧美电影免费观看完整版| 国产乱色国产精品免费视频| 中文字幕精品在线不卡| 91麻豆福利精品推荐| 亚洲.国产.中文慕字在线| 日韩免费在线观看| 国产不卡视频在线播放| 国产精品视频第一区| 欧美伊人精品成人久久综合97 | 欧美经典一区二区| 色婷婷综合久色| 青娱乐精品在线视频| 久久久91精品国产一区二区精品| av中文一区二区三区| 亚洲成人tv网| 国产欧美视频一区二区| 日本道色综合久久| 免费人成精品欧美精品| 国产欧美精品日韩区二区麻豆天美| 99国内精品久久| 美女网站一区二区| 亚洲日穴在线视频| 精品免费视频.| 欧美在线观看18| 国产一区二区不卡在线| 一区二区三区在线免费视频| 日韩精品一区二区三区视频播放 | 91美女福利视频| 久久精品二区亚洲w码| 中文字幕亚洲精品在线观看| 91精品久久久久久久99蜜桃| jiyouzz国产精品久久| 美腿丝袜在线亚洲一区| 亚洲欧美区自拍先锋| 精品精品国产高清a毛片牛牛 | 久久精品夜色噜噜亚洲a∨| 色先锋资源久久综合| 国产宾馆实践打屁股91| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品成人午夜| 国产亚洲美州欧州综合国| 欧美精品自拍偷拍| 91浏览器在线视频| 岛国av在线一区| 久久精品国产亚洲高清剧情介绍 | 一区二区在线观看不卡| 日韩三级视频在线看| 欧美自拍丝袜亚洲| 成人手机在线视频| 国产精品亚洲视频| 国内成+人亚洲+欧美+综合在线| 天天av天天翘天天综合网色鬼国产| 国产精品每日更新| 337p日本欧洲亚洲大胆色噜噜| 欧美精品在线观看播放| 欧美在线观看一区| 91麻豆.com| 色天天综合色天天久久| 91丨九色丨蝌蚪富婆spa| 成人精品视频一区二区三区尤物| 精品一区二区免费看| 免播放器亚洲一区| 精品一二三四在线| 久久99精品久久久久久国产越南| 视频在线观看一区二区三区| 性欧美大战久久久久久久久| 亚洲第一电影网| 欧美aaaaaa午夜精品| 免费不卡在线观看| 国产一区二区三区黄视频 | 亚洲一区二区三区自拍| 亚洲精选视频免费看| 亚洲香肠在线观看| 亚洲高清不卡在线观看| 日韩黄色一级片| 免费高清在线视频一区·| 精品一区二区三区的国产在线播放 | 午夜精品视频一区| 久久se这里有精品| 国产成人在线免费| 色一区在线观看| 欧美成人vr18sexvr| 欧美精品一区二区蜜臀亚洲| 国产清纯白嫩初高生在线观看91 | 亚洲另类春色国产| 天天影视色香欲综合网老头| 麻豆国产一区二区| 成人美女视频在线看| 色视频一区二区| 日韩午夜电影av| 一区二区中文视频| 日韩极品在线观看| 成人免费视频一区二区| 欧美久久一区二区| 国产欧美一区二区精品性| 亚洲精品国产视频| 激情图片小说一区| 日本韩国视频一区二区| 欧美电影免费观看高清完整版在线 | 国产成人三级在线观看| 日本高清视频一区二区| 精品日韩在线观看| 一区二区三区免费| 国产一区二区三区在线观看精品| 色综合婷婷久久| 欧美mv日韩mv国产网站app| 亚洲女同ⅹxx女同tv| 精品亚洲成a人在线观看| 欧美综合一区二区三区| 欧美激情在线看| 日本中文字幕一区二区有限公司| 国产91在线观看丝袜|