-
-
[学习] 用Ollydbg手脱VBOX4.2加的壳 WIN1410DEMO.30
-
发表于:
2005-12-27 14:16
3873
-
[学习] 用Ollydbg手脱VBOX4.2加的壳 WIN1410DEMO.30
Ollydbg手脱VBOX4.2加的壳 WIN1410DEMO.30
【作者声明】:只做研究用,没有其他目的。 DarkBull脱过MINITAB14.13,本人参照却脱不出来.原来。。。。。看下面
【调试环境】:Win2000 SP4、Ollydbg V1.10、FI、ImportREC
―――――――――――――――――――――――――――――――――
【脱壳过程】:
看过http://bbs.pediy.com/showthread.php?s=&postid=133308#post133308 ,本人也欲试试,于是找来WIN1410DEMO.30 用FI查壳显示
VBOX v4.2 {MtE} Weijun Li PREVIE 是vbox4.2的壳
设置Ollydbg V1.10隐藏选项,忽略所有异常,载入MINTAB14.exe,等一会,噫....这是什么??? 如图:
[不知如何贴图]提示:无法读取被调试的时程(00EDB00..00EEC6CF)的内存
确定后进入。。。至此,进入了错误的深渊,...看到NAG后下Bp GetProcAddress却断不下来(本人在这里走了不少弯路,也上论谈求助却得不
到答案).....GAME OVER!
再来先开MINITAB等出来了NAG。。就是那个试用的对话框! 打开OD,将进程附加进来,一连六个确定.
77F813B2 C3
RETN ;断在这里
77F813B3 33C9
XOR ECX,
ECX
77F813B5 E9 A5BE0000
JMP ntdll.77F8D25F
77F813BA > 55
PUSH EBP
77F813BB 8BEC
MOV EBP,
ESP
先按F9 再下断点
Bp GetProcAddress 回界面点Try 来到 kernel32领空
77E661CD > 55
PUSH EBP ;这里
77E661CE 8BEC
MOV EBP,
ESP
77E661D0 51
PUSH ECX
77E661D1 51
PUSH ECX
77E661D2 53
PUSH EBX
77E661D3 57
PUSH EDI
去除断点后CTRL+F9 ,F8来到VBOX420领空后,这里一路下,直到返回MINITAB主程序(不知道为什么这里不能CTRL+F9) 到这里
06A104AB B8 01000000
MOV EAX,1
06A104B0 5F
POP EDI
06A104B1 5E
POP ESI
06A104B2 5D
POP EBP
06A104B3 5B
POP EBX
06A104B4 81C4 14010000
ADD ESP,114
06A104BA C3
RETN
06A104BB 5F
POP EDI
06A104BC 5E
POP ESI
06A104BD 5D
POP EBP
06A104BE 33C0
XOR EAX,
EAX
06A104C0 5B
POP EBX
这里先F8一段再CTRL+S 找序列
push ebx
push ebx
call esi
来到
069E044F 53
PUSH EBX
069E0450 53
PUSH EBX
069E0451 FFD6
CALL ESI ; 在这里设断点F2
069E0453 5B
POP EBX
069E0454 85C0
TEST EAX,
EAX
069E0456 74 2E
JE SHORT 069E0486
069E0458 68 00800000
PUSH 8000
069E045D 6A 00
PUSH 0
069E045F 56
PUSH ESI
清断点 按F9后断在069E0451按F7跟入到
08990000 0BC0
OR EAX,
EAX
08990002 74 00
JE SHORT 08990004
08990004 2BC5
SUB EAX,
EBP
08990006 74 00
JE SHORT 08990008
08990008 33C5
XOR EAX,
EBP
0899000A 0BC5
OR EAX,
EBP
按CTRL+S找
PUSH [
EBP-8]
PUSH [
EBP-4]
PUSH [
EBP+8]
到
08990140 FF75 F8
PUSH DWORD PTR SS:[
EBP-8]
08990143 FF75 FC
PUSH DWORD PTR SS:[
EBP-4]
08990146 FF75 08
PUSH DWORD PTR SS:[
EBP+8]
08990149 E8 08000000
CALL 08990156
;在此处F2设断
0899014E 5F
POP EDI
0899014F 5E
POP ESI
08990150 C9
LEAVE
08990151 C2 0400
RETN 4
08990154 CC INT3
08990155 CC INT3
清断点,在 08990149 处F7跟入在CTRL+G找
JMP EBX到
089903C8 FFE3
JMP EBX ;在此处F2设断
089903CA 8B55 F8
MOV EDX,
DWORD PTR SS:[
EBP-8]
089903CD 8B42 14
MOV EAX,
DWORD PTR DS:[
EDX+14]
089903D0 8945 F0
MOV DWORD PTR SS:[
EBP-10],
EAX
089903D3 8B4D F0
MOV ECX,
DWORD PTR SS:[
EBP-10]
089903D6 FF11
CALL DWORD PTR DS:[
ECX]
089903D8 B8 01000000
MOV EAX,1
089903DD 5F
POP EDI
089903DE 5E
POP ESI
089903DF 5B
POP EBX
089903E0 8BE5
MOV ESP,
EBP
089903E2 5D
POP EBP
089903E3 C3
RETN
F9运行 到089903C8处 F8一次到达真正的
EIP 入口点修正为 5B5442 用olldump脱壳出来,再用ImportREC修复IAT,到此脱壳完成
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)