国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 邏輯算法 > 正文

兩分種搞定UPX殼

2019-09-10 09:02:31
字體:
來源:轉載
供稿:網友

 
兩分種搞定UPX殼
Author:yellow
Email:yellow@safechian.net
Home Page:www.safechina.net
Date:2004-01-19.夜

我從沒有搞過破解只是在前段時間學習PE文件格式在看雪學院Down了一些資料明
天就要放假了閑來無事用一個小時把看雪學院的通覽了一遍為
了練習搞定了幾個CrackMe覺得也怪好玩的覺得!
Crack技術里的脫技術是非常有意思
我不想解釋脫的概念什么的這方面的資料非常多好了不廢話下面讓開始講解如何
在兩分種內脫掉UPX的以前沒有搞過Crack有什么Error的地方高手誤笑!呵呵!

相關工具:

UPX 1.23W(用于壓縮和加)
W32Dasm 10.0黃金漢化版(Cracker們和Hacker們都經常要用的)
OllyDbg 1.09c聆風聽雨漢化版(這個漢化Bug很少很好用)
OllyDump(OllyDbg脫插件)

"開始"-->"程序"-->"附件"-->"游戲"-->"掃雷"-->"右擊"-->"屬性"-->"查找目標"

復制到工作目錄下(我的是D:/temp/Crack/)使用UPX對掃雷程序加
命令如下:
d:/temp/crack>upx -9 winmine.exe -o swinmine.exe
目錄下生成了一個名為swinmine.exe的已加程序

使用W32Dasm打開反匯編已經看不到引入和引出函數參考對話框和菜單參考字串參考全變成了

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
(后面去掉兩個一字節前面添加一字節的十六進制數的CC即匯編語句int 3User Break
Point中斷調用)保存成Pswinmine.exe運行一下彈出一個MessageBox"Software Exception...
位置0101bc2f"出現一個未處理異常?出錯了?沒有!沒有!是我們寫入的int 3發出的!

清楚它的位置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打開剛才打過用戶中斷調用補丁的Pswinmine.exe程序顯示
"模塊"Pwinmine"的快速統計測試報告說明它的代碼總發也許是經過了壓縮加密或者包含
很大數目的嵌入式數據.代碼分析結果將會是非常不可靠的或者是簡單而且錯誤的.您確定要
繼續進行分析嗎?"當然!
點"是"了再按F9程序會中斷在0101bc2f因為我們int 3調用了User
Break Point中斷控制權轉到了OllyDbg其實加(加密)后程序需要在執行時由一小段程序
解密程序然后再跳轉到解密后的代碼執行這和Overflow攻擊中使用的ShellCode編解碼技
術驚人的相似ShellCode在解碼以前只有一小段代碼(通常是解碼子程序)是可執行的其它未
經解碼的代碼(其實在未解碼前它們同加過的軟件代碼一樣是一系列毫無規則的錯誤的指令
甚至是根本不存在的指令代碼)如果執行就會出現錯誤.
右擊選"Dump Debuged Process"在Entry Point框輸入3dd1注意是3dd1而不是3dd0輸入保
存文件名123.exe點確定保存運行一下一切正常(這時程序已從內存中被脫出來).

退出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: "

主站蜘蛛池模板: 外汇| 渭南市| 大石桥市| 盐津县| 漳浦县| 石屏县| 甘德县| 高陵县| 蕉岭县| 惠州市| 昆明市| 辉南县| 沭阳县| 剑阁县| 靖州| 铁岭县| 西乌珠穆沁旗| 巴中市| 息烽县| 威宁| 新蔡县| 彭山县| 友谊县| 体育| 盐源县| 天津市| 宿州市| 左云县| 双峰县| 余姚市| 宾川县| 遂溪县| 沾益县| 四川省| 万山特区| 安远县| 新晃| 开化县| 九龙县| 台东县| 金乡县|