ARM單進程脫殼之FtpRush v1.0

ARM單進程脫殼之FtpRush v1.0

【目    標】:FTPRush v1.0
【工    具】:Olydbg1.1(diy)LORDPEImportREC1.6F
【任    務】簡單的脫一下殼
【操作平臺】:Windows Xp sp1
【作    者】:loveboom[DFCG][FCG][US]
【簡要說明】:因爲程序和其它的ARM的加的程序有所不同,程序的部分代碼跑到殼內去了.。所以就寫一下。

【詳細過程】:
設置:

 忽略全部異常,隱藏好你的OD,載入後到殼的入口處:

007E4DE0 >/$  55            PUSH EBP             ;標準的C的入口來的

007E4DE1  |.  8BEC          MOV EBP,ESP

007E4DE3  |.  6A FF         PUSH -1

在程序的EP處下斷HE GetModuleHandleA,然後運行,當然中途會中斷好幾次的,我們注意下堆棧,當出現這個樣子的時候就接近我們要找的東西了.

00127A48   01049B22  /CALL to GetModuleHandleA from 01049B1C

00127A4C   00127B84  /pModule = "MSVBVM60.DLL"

看到這樣子後,小心按幾次f9,現在到這裏:

00127A48   01049B22  /CALL to GetModuleHandleA from 01049B1C

00127A4C   00127B84  /pModule = "advapi32.dll"

再按一次F9:

看到這裏的時候,取消硬件斷點hd GetModuleHandleA,然後返回到程序代碼:

01065EC0    FF15 CCF00601   CALL DWORD PTR DS:[106F0CC]              ; kernel32.GetModuleHandleA

01065EC6    3985 9CC4FFFF   CMP DWORD PTR SS:[EBP-3B64],EAX          ; 返回到這裏

01065ECC    75 0F           JNZ SHORT 01065EDD

01065ECE    C785 98C4FFFF 5>MOV DWORD PTR SS:[EBP-3B68],1073B58

01065ED8    E9 C4000000     JMP 01065FA1

01065EDD    83A5 74C2FFFF 0>AND DWORD PTR SS:[EBP-3D8C],0

01065EE4    C785 70C2FFFF 9>MOV DWORD PTR SS:[EBP-3D90],1074198

01065EEE    EB 1C           JMP SHORT 01065F0C

01065EF0    8B85 70C2FFFF   MOV EAX,DWORD PTR SS:[EBP-3D90]

01065EF6    83C0 0C         ADD EAX,0C

01065EF9    8985 70C2FFFF   MOV DWORD PTR SS:[EBP-3D90],EAX

01065EFF    8B85 74C2FFFF   MOV EAX,DWORD PTR SS:[EBP-3D8C]

01065F05    40              INC EAX

01065F06    8985 74C2FFFF   MOV DWORD PTR SS:[EBP-3D8C],EAX

01065F0C    8B85 70C2FFFF   MOV EAX,DWORD PTR SS:[EBP-3D90]

01065F12    8338 00         CMP DWORD PTR DS:[EAX],0                 ; 直接按f4執行到這裏,然後把[eax],0

01065F15    0F84 86000000   JE 01065FA1

具體可見下圖:

改好後就可以得到全部的IAT的。

修改完畢,在code段下f2斷點:

這樣子很快就到了程序的OEP處:

0076C0AC    55              PUSH EBP                                 ; oep

0076C0AD    8BEC            MOV EBP,ESP

0076C0AF    83C4 F0         ADD ESP,-10

0076C0B2    B8 A4B77600     MOV EAX,0076B7A4

這裏先別急着DUMP看看代碼先吧:

0040525A  - E9 5FC73303     JMP 037419BE                             ; 看看吧,怎麼樣,代碼進殼裏去了

0040525F    0FC8            BSWAP EAX

00405261    76 00           JBE SHORT 00405263

00405263    0FC8            BSWAP EAX

00405265    C740 04 B851400>MOV DWORD PTR DS:[EAX+4],004051B8

0040526C    8968 08         MOV DWORD PTR DS:[EAX+8],EBP

0040526F    A3 40467700     MOV DWORD PTR DS:[774640],EAX

00405274    C3              RETN

00405275    8D40 00         LEA EAX,DWORD PTR DS:[EAX]

00405278    31D2            XOR EDX,EDX

0040527A    A1 40467700     MOV EAX,DWORD PTR DS:[774640]

0040527F    85C0            TEST EAX,EAX

00405281    74 1C           JE SHORT 0040529F

00405283    64:8B0A         MOV ECX,DWORD PTR FS:[EDX]

00405286    39C8            CMP EAX,ECX

00405288    75 08           JNZ SHORT 00405292

0040528A  - E9 55C73303     JMP 037419E4                             ; 這裏也是

0040528F    C3              RETN

現在我們要動一下手術了,用lordpe全部他dump一下,然後在OD中打開內存頁面找到我們要DUMP的那個段雙擊後,保存數據到文件:

保存後,我們計算一下03740000400000imgbase=03340000,好了記下先.

lordpe載入我們剛纔保存下來的段。並改一下VA爲我們剛纔記下的那個值:

改好後,重建一下文件,重建選項爲:

重建文件完畢,FIXDUMP一下就行了,OK這次脫殼就這樣結束了.現在程序也顯示已經註冊了J.

 

 

Greetz:

 Fly.Jingulong,yock,tDasm.David.ahao.UFO(brother).alan(sister).all of my friends and you!

 

By loveboom[DFCG][FCG]

Email:[email protected]

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章