兩分種搞定UPX殼
Author:yellow
Email:yellow@safechian.net
Home Page:www.safechina.net
Date:2004-01-19.夜
我從沒有搞過破解只是在前段時間學(xué)習(xí)PE文件格式在看雪學(xué)院Down了一些資料明
天就要放假了閑來無事用一個小時把看雪學(xué)院的通覽了一遍為
了練習(xí)搞定了幾個CrackMe覺得也怪好玩的覺得!
Crack技術(shù)里的脫殼技術(shù)是非常有意思
我不想解釋脫殼的概念什么的這方面的資料非常多好了不廢話下面讓開始講解如何
在兩分種內(nèi)脫掉UPX的殼以前沒有搞過Crack有什么Error的地方高手誤笑!呵呵!
相關(guān)工具:
UPX 1.23W(用于壓縮和加殼)
W32Dasm 10.0黃金漢化版(Cracker們和Hacker們都經(jīng)常要用的)
OllyDbg 1.09c聆風聽雨漢化版(這個漢化Bug很少很好用)
OllyDump(OllyDbg脫殼插件)
"開始"-->"程序"-->"附件"-->"游戲"-->"掃雷"-->"右擊"-->"屬性"-->"查找目標"
復(fù)制到工作目錄下(我的是D:/temp/Crack/)使用UPX對掃雷程序加殼
命令如下:
d:/temp/crack>upx -9 winmine.exe -o swinmine.exe
目錄下生成了一個名為swinmine.exe的已加殼程序
使用W32Dasm打開反匯編已經(jīng)看不到引入和引出函數(shù)參考對話框和菜單參考字串參考全變成了
String Resource ID=00001: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00002: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌?
哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?quot;
String Resource ID=0!
0003: &q
uot;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00004: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00005: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00007: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00009: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00011: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00014: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
String Resource ID=00014: "哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌"
先按Ctrl+End光標走到了最后一行再選擇W32Dasm的"查找/查找文本"菜單輸入"popad"選中
查找方向為向上找到這樣的語句:
:0101BC28 FF96E8BC0100 !
call dword ptr [esi+0001BCE8]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
│:0101BBF0(C)
│
:0101BC2E 61 popad
:0101BC2F E99C81FEFF jmp 01003DD0;<==---
光標移到:0101BC2F E99C81FEFF jmp 01003DD0這句上選擇"編輯/快速編輯"
菜單項將
E99C81FEFF000000000000000000000000000000改為
CCE99C81FEFF0000000000000000000000000000
(后面去掉兩個一字節(jié)前面添加一字節(jié)的十六進制數(shù)的CC即匯編語句int 3User Break
Point中斷調(diào)用)保存成Pswinmine.exe運行一下彈出一個MessageBox"Software Exception...
位置0101bc2f"出現(xiàn)一個未處理異常?出錯了?沒有!沒有!是我們寫入的int 3發(fā)出的!
看
清楚它的位置0101bc2f
再反匯編Pswinmine.exe看一下0x01!
01bc2f地
址的指令就明白了:
:0101BC28 FF96E8BC0100 call dword ptr [esi+0001BCE8]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
│:0101BBF0(C)
│
:0101BC2E 61 popad
:0101BC2F CC int 03;<==---
:0101BC30 E99C81FEFF jmp 01003DD1<==---
退出W32Dasm打開OllyDbg打開剛才打過用戶中斷調(diào)用補丁的Pswinmine.exe程序顯示
"模塊"Pwinmine"的快速統(tǒng)計測試報告說明它的代碼總發(fā)也許是經(jīng)過了壓縮加密或者包含
很大數(shù)目的嵌入式數(shù)據(jù).代碼分析結(jié)果將會是非常不可靠的或者是簡單而且錯誤的.您確定要
繼續(xù)進行分析嗎?"當然!
點"是"了再按F9程序會中斷在0101bc2f因為我們int 3調(diào)用了User
Break Point中斷控制權(quán)轉(zhuǎn)到了OllyDbg其實加殼(加密)后程序需要在執(zhí)行時由一小段程序
來解密程序然后再跳轉(zhuǎn)到解密后的代碼執(zhí)行這和Overflow攻擊中使用的ShellCode編解碼技
術(shù)驚人的相似ShellCode在解碼以前只有一小段代碼(通常是解碼子程序)是可執(zhí)行的其它未
經(jīng)解碼的代碼(其實在未解碼前它們同加殼過的軟件代碼一樣是一系列毫無規(guī)則的錯誤的指令
甚至是根本不存在的指令代碼)如果執(zhí)行就會出現(xiàn)錯誤.
右擊選"Dump Debuged Process"在Entry Point框輸入3dd1注意是3dd1而不是3dd0輸入保
存文件名123.exe點確定保存運行一下一切正常(這時程序已從內(nèi)存中被脫殼出來).
退出OllyDbg打開W32Dasm再次反匯編123.exe(已脫UPX殼的掃雷程序)
菜單參考:
Menu: MenuID_01F4
Menu: MenuID_01F4 Item: ""
Menu: MenuID_01F4 Item: "??)(M)"
Menu: MenuID_01F4 Item: "?B)"
Menu: MenuID_01F4 Item: "-?I)"
Menu: MenuID_01F4 Item: "痼(S)"
Menu: MenuID_01F4 !
Item: "丕(E)"
Menu: MenuID_01F4 Item: "
主站蜘蛛池模板:
国产日韩欧美综合
|
国产精品久久久久久久久久免费看
|
超碰人人艹
|
日本成人一二三区
|
九九色综合
|
成人亚洲视频
|
天堂中文字幕在线
|
久久久国产精品一区
|
午夜免费观看网站
|
免费毛片a线观看
|
拍真实国产伦偷精品
|
欧美v在线
|
国产999久久
|
欧洲精品乱码久久久久蜜桃
|
精品一区不卡
|
亚洲九九|
亚洲福利电影网
|
日韩中文视频
|
国产精品人成在线播放新网站
|
久久美女视频
|
噜噜噜天天躁狠狠躁夜夜精品
|
久久福利|
亚洲综合99
|
国产av一级毛片
|
欧美3区|
黄桃av|
羞羞视频免费在线观看
|
久久99精品久久久久国产越南
|
欧美国产亚洲一区
|
欧美日韩午夜
|
成人一区二区三区
|
国产成人精品a视频一区
|
91精品久久久久久久久
|
久久69精品久久久久久久电影好
|
国产第一区在线观看
|
欧美午夜一区
|
午夜精品久久久久久久99樱桃
|
av大片|
久久久久国产视频
|
国产图区
|
99精品免费|