发信人: shizg (刀客☆永远的痛), 信区: Hacker
标 题: Professional Quest脱壳实例(vbox4.10)
发信站: BBS 水木清华站 (Fri Jun 23 10:10:12 2000)
这个东东以前就装了,是一个做问卷调查的软件。最近要用,所以拿出来一看,
哇塞,不能用了。然后加载S-Ice,再运行看,出来一个框,是什么vbox警告框,
意思是说我有debug,呵呵。知道是vbox保护了。
下面就是脱壳过程,想练手的可以照着做(找不到可以问我要),好像上一次
有人问那个codevizor也是用vbox4.10保护的:
1。打S-Ice补丁,就是backdoor keeper,这样就不怕vbox不能脱壳弹出上面那个
框框了。如果用trw更爽,直接faults off命令,就可以了。
2。S-Ice加载执行程序quest.exe
3。中断在B53000:
015F:00B53000 PUSH DWORD PTR [ESP+0C]
015F:00B53004 PUSH DWORD PTR [ESP+0C]
015F:00B53008 PUSH DWORD PTR [ESP+0C]
015F:00B5300C PUSH 2B08AEB1
015F:00B53011 PUSH 2BBD9A3E
015F:00B53016 PUSH 2B08AAE1
015F:00B5301B PUSH 2B08AA1B
015F:00B53020 CALL [00B531F0]
015F:00B53026 PUSH FFFFFFFF
015F:00B5302B CALL EAX
015F:00B5302D RET 000C
4。单步执行到B5302B,此时eax=00B4E000,F8跟进,如下:
015F:00B4E000 PUSH DWORD PTR [ESP+0C]
015F:00B4E004 PUSH DWORD PTR [ESP+0C]
015F:00B4E008 PUSH DWORD PTR [ESP+0C]
015F:00B4E00C PUSH 0209AF7E
015F:00B4E011 PUSH FEF61153
015F:00B4E016 PUSH A509A770
015F:00B4E01B PUSH DEFA1690
015F:00B4E020 CALL [00B4E1D4]
015F:00B4E026 PUSH FFFFFFFF
015F:00B4E02B CALL EAX
015F:00B4E02D RET 000C
5。注意B4E020就是vbox用来判断是否过期、有debug的代码,如正常则解码,并
返回程序正确地址于Eax,此时eax=00913F34
6。到B4E02B跟进去,如下:
015F:00913F34 MOV [009E1F4C],ESP
015F:00913F3A XOR EBP,EBP
015F:00913F3C PUSH EBP
015F:00913F3D MOV EBP,ESP
015F:00913F3F CALL KERNEL32!GetVersion
015F:00913F44 MOV EDX,EAX
015F:00913F46 AND EDX,000000FF
015F:00913F4C MOV [009E1F40],EDX
015F:00913F52 MOV EDX,EAX
015F:00913F54 SHR EDX,08
015F:00913F57 AND EDX,000000FF
015F:00913F5D MOV [009E1F44],EAX
。。。
这就是解码后的程序啊。只需要将内存dump出来就可以。
dump方法比较多,我就用procdump来dump,选择full dump,并且在选项里面选择
rebuild新的import表,否则程序是不能运行的,因为找不到dll入口嘛,还执行
什么,呵呵。如果用trw2000,可以用makepe命令
7。最后一步,dump出一个文件,比如quest1.exe,必须修改程序入口地址,可以
用peedit,procdump,将入口地址改为前面跟得的地址,但要注意,该地址应是
00913F34-image的基址(00400000)=00513F34
8。这就是一个脱过壳的执行文件了,运行不需要vbox库,当然过期什么都没有了,
那个干扰画面也没有了。
愿意的话,还可以写一个procdump的script,以后解vboxb410.dll的壳就不用这么
麻烦了。
- 标 题:Professional Quest脱壳实例(vbox4.10),可能很容易,难的我也不会:( (2千字)
- 作 者:shizg
- 时 间:2000-6-24 8:43:08
- 链 接:http://bbs.pediy.com