首页
社区
课程
招聘
[学习] 用Ollydbg手脱VBOX4.2加的壳 WIN1410DEMO.30
发表于: 2005-12-27 14:16 3779

[学习] 用Ollydbg手脱VBOX4.2加的壳 WIN1410DEMO.30

2005-12-27 14:16
3779
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,到此脱壳完成

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
VBOX的东东可能用softice来脱更好一些 ,不过,近来好象用这个东东加壳的软件不多了
2005-12-31 14:32
0
游客
登录 | 注册 方可回帖
返回
//