【作者宣告】:只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
【除錯環境】:WinXP、Ollydbg V1.10、PEiD、LordPE、ImportREC
―――――――――――――――――――――――――――――――――
【脫殼過程】:
朋友拿來這個東東讓我看看,30天的試用,Vbox的標記,看其呼叫的vboxa.dll版本是4.5.0.0,所以知道了是Vbox V4.5。恰巧很久沒寫東西了,索性記錄一下過程吧。目標程式自己搜尋。
―――――――――――――――――――――――――――――――――
設定Ollydbg忽略所有異常選項。老規矩:用IsDebug 1.4外掛去掉Ollydbg的偵錯程式標誌。
00D71248 75 00 jnz short Dreamwea.00D7124A//進入OD後停在這
00D7124A 90 nop
00D7124B 32E0 xor ah,al
00D7124D 8BC5 mov eax,ebp
00D7124F 40 inc eax
00D71250 86E0 xchg al,ah
00D71252 85C0 test eax,eax
00D71254 EB 00 jmp short Dreamwea.00D71256
Shift+F9執行,確定幾個入口提示,彈出經典的Vbox保護畫面。
現在下斷:BP GetProcAddress,然後點“試用”,中斷後取消斷點。
Ctrl+F9兩次,就來到處理IAT的地方了。
0700B17B E8 26FBFFFF call vboxta.0700ACA6
//GetProcAddress
0700B180 83C4 14 add esp,14
//返回這裡
0700B183 85C0 test eax,eax
0700B185 0F84 80000000 je vboxta.0700B20B
0700B18B FF45 F0 inc dword ptr ss:[ebp-10]
0700B18E 8906 mov dword ptr ds:[esi],eax
//函式寫入
0700B190 8B45 F0 mov eax,dword ptr ss:[ebp-10]
0700B193 83C7 04 add edi,4
0700B196 3B45 D8 cmp eax,dword ptr ss:[ebp-28]
0700B199 72 88 jb short vboxta.0700B123
//迴圈
因為Vbox V4.5沒加密輸入表(除了一個函式),所以這裡看看而已,就不必多管了。
――――――――――――――――――――――――
下斷:BP FreeLibrary
中斷後取消斷點,Ctrl+F9返回
070081E2 FF15 D0C10407 call dword ptr ds:[704C1D0] ; kernel32.FreeLibrary
070081E8 8B76 14 mov esi,dword ptr ds:[esi+14]; Dreamwea.009801C0
//返回這裡。[esi+14]=009801C0 這就是OEP值!★
想看看Vbox V4.5是如何跳OEP的?OK,我們在[esi+14]=[015B0014]轉存處下記憶體訪問斷點,F9執行,中斷。
016009B9 8B48 14 mov ecx,dword ptr ds:[eax+14]; Dreamwea.009801C0
016009BC EB 02 jmp short 016009C0
016009C0 894D F0 mov dword ptr ss:[ebp-10],ecx; Dreamwea.009801C0
016009C3 EB 01 jmp short 016009C6
016009C6 8B5D F0 mov ebx,dword ptr ss:[ebp-10]; Dreamwea.009801C0
016009C9 EB 02 jmp short 016009CD
016009CD FFE3 jmp ebx ; Dreamwea.009801C0
//飛向光明之巔! ^O^
――――――――――――――――――――――――
009801C0 6A 02 push 2
//在這兒用LordPE糾正ImageSize後完全DUMP這個程式
009801C2 FF15 08C2B900 call dword ptr ds:[B9C208] ; kernel32.SetErrorMode
009801C8 68 40019800 push Dreamwea.00980140
009801CD FF15 0CC2B900 call dword ptr ds:[B9C20C] ; kernel32.SetUnhandledExceptionFilter
009801D3 E9 20221700 jmp Dreamwea.00AF23F8
――――――――――――――――――――――――
執行ImportREC,選擇這個程式。把OEP改為005801C0,點IT AutoSearch,點“Get Import”,有一個無效函式:
0079DB54 ? 0000 0700EBBF
我們Ctrl+G:0700EBBF看看:
0700EBBF 55 push ebp
0700EBC0 8BEC mov ebp,esp
0700EBC2 E8 A7FFFFFF call vboxta.0700EB6E
0700EBC7 FF75 18 push dword ptr ss:[ebp+18]
0700EBCA FF75 14 push dword ptr ss:[ebp+14]
0700EBCD FF75 10 push dword ptr ss:[ebp+10]
0700EBD0 FF75 0C push dword ptr ss:[ebp+C]
0700EBD3 FF75 08 push dword ptr ss:[ebp+8]
0700EBD6 FF15 D4C30407 call dword ptr ds:[704C3D4]; USER32.PeekMessageA
0700EBDC 5D pop ebp
0700EBDD C2 1400 retn 14
把這個函式修改為USER32.PeekMessageA,FixDump!
OK,啟動時不見試用提示,Vbox 蕩然無存了。
―――――――――――――――――――――――――――――――――
, _/
/| _.-~/ \_ , 青春都一晌
( /~ / \~-._ |\
`\\ _/ \ ~\ ) 忍把浮名
_-~~~-.) )__/;;,. \_ //'
/'_,\ --~ \ ~~~- ,;;\___( (.-~~~-. 換了破解輕狂
`~ _( ,_..--\ ( ,;'' / ~-- /._`\
/~~//' /' `~\ ) /--.._, )_ `~
" `~" " `" /~'`\ `\\~~\
" " "~' ""
Cracked By 巢水工作坊――fly [FCG][NUKE][DCM]
2004-08-15 17:00