手脫UPX的幾種方法

2021-09-30 07:30:27 字數 3635 閱讀 1391

第一種:

1.od載入後

0040cdd0 > $  60            pushad

0040cdd1 . be 00b04000 mov esi,工程1.0040b000

0040cdd6 . 8dbe 0060ffff lea edi,dword ptr ds:[esi+ffff6000]

2.f8向下,遇到向上的跳轉就f4強行向下

0040cdf2   > /8b1e          mov ebx,dword ptr ds:[esi]

0040cdf4 . 83ee fc sub esi,-4

0040cdf7 . 11db adc ebx,ebx

0040cdf9 >^ 72 ed jb short 工程1.0040cde8 //f4向下

0040ce56   .  11db          adc ebx,ebx

0040ce58 > 11c9 adc ecx,ecx

0040ce5a . 01db add ebx,ebx

0040ce5c .^ 73 ef jnb short 工程1.0040ce4d //f4向下

0040ce82   .  47            inc edi

0040ce83 . 49 dec ecx

0040ce84 .^ 75 f7 jnz short 工程1.0040ce7d //執行到這裡停下,按向下箭頭到0040ce8c,按下f4

0040ce86 .^ e9 63ffffff jmp 工程1.0040cdee

0040ce8b 90 nop

0040ce8c > 8b02 mov eax,dword ptr ds:[edx] //在此處按f4強行執行到此處

0040ce96   .  83e9 04       sub ecx,4

0040ce99 .^ 77 f1 ja short 工程1.0040ce8c

0040ce9b . 01cf add edi,ecx

0040ce9d .^ e9 4cffffff jmp 工程1.0040cdee //f4向下

0040ceaf   > /3c 01         cmp al,1

0040ceb1 .^|77 f7 ja short 工程1.0040ceaa //f4向下

0040ceb3 . |803f 02 cmp byte ptr ds:[edi],2

0040ceb6 .^|75 f2 jnz short 工程1.0040ceaa

0040ceb8 . |8b07 mov eax,dword ptr ds:[edi] //f4向下

0040cecf   .  83c7 05       add edi,5

0040ced2 . 88d8 mov al,bl

0040ced4 .^ e2 d9 loopd short 工程1.0040ceaf //f4向下

0040cedc   > /8b07          mov eax,dword ptr ds:[edi]

0040cede . |09c0 or eax,eax

0040cee0 . |74 45 je short 工程1.0040cf27 //此處按enter鍵跟隨

0040cf27   > /8bae 28ca0000 mov ebp,dword ptr ds:[esi+ca28]  //跟隨到這裡,按下f4強行執行到此處,f8向下

0040cf2d . 8dbe 00f0ffff lea edi,dword ptr ds:[esi-1000]

0040cf33 . bb 00100000 mov ebx,1000

0040cf5b   > /6a 00         push 0

0040cf5d . |39c4 cmp esp,eax

0040cf5f .^/75 fa jnz short 工程1.0040cf5b //f4向下

0040cf61 . 83ec 80 sub esp,-80

0040cf64 .- e9 5b44ffff jmp 工程1.004013c4 //此處跳轉到程式oep

0040cf69 00 db 00

0040cf6a 00 db 00

0040cf6b 00 db 00

0040cf6c 00 db 00

0040cf6d 00 db 00

0040cf6e 00 db 00

0040cf6f 00 db 00

0040cf70 00 db 00

0040cf71 00 db 00

0040cf72 00 db 00

0040cf73 00 db 00

0040cf74 00 db 00

第二種:

1.od載入,**如下:

0040cdd0 > $  60            pushad

0040cdd1 . be 00b04000 mov esi,工程1.0040b000 //f8執行到這裡,看暫存器中的值,如圖

2.資料視窗中跟隨esp暫存器中的值,並且下乙個硬體斷點,shift+f9執行,斷在如下**處

0040cf57   .  8d4424 80     lea eax,dword ptr ss:[esp-80]

0040cf5b > 6a 00 push 0

0040cf5d . 39c4 cmp esp,eax

0040cf5f .^ 75 fa jnz short 工程1.0040cf5b

0040cf61 . 83ec 80 sub esp,-80

0040cf64 .- e9 5b44ffff jmp 工程1.004013c4 //此處跳轉到程式oep

手脫UPX殼方法介紹

方法1 單步跟蹤 f8單步跟蹤,向上不能讓他跳,有loopd迴圈也一樣 跳轉的下一行按f4 執行到選定位置,迴圈loopd在call下一句f4執行 只允許向下跳,如單步跟蹤call處程式執行,則需要過載程式,再call處f7跟進 近call f7,遠call f8 pushad 入棧 popad 出...

手脫64位UPX殼

背景 近期舍友不知道為啥忽然要漢化乙個gta的外掛程式,第一次聽說他要漢化,問了我一堆關於逆向的東西。由於外掛程式加了upx的殼 也是peid說的,我感覺是乙個很奇怪的殼 他搞不定於是發來給我。我平時也是逆向linux的elf檔案多一些,windows的而且還是64位的幾乎沒搞過,平時也沒脫過什麼殼...

ximo脫殼1 手脫UPX殼

ximo脫殼之基礎教程第一課 手脫upx殼 upx殼為一種簡單的壓縮殼 除錯工具為peid和od 手脫upx有四種方式找到oep 第一種 單步跟蹤 第二種 esp定址 第三種 2次記憶體映象法 第四種 一次直達法 首先,開啟od,將示例程式 開啟該檔案之後,我們進行單步跟蹤 圖中標出的即為單步跟蹤的...