• 标 题:Professional Quest脱壳实例(vbox4.10),可能很容易,难的我也不会:( (2千字)
  • 作 者:shizg
  • 时 间:2000-6-24 8:43:08
  • 链 接:http://bbs.pediy.com

发信人: 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的壳就不用这么
麻烦了。