首页
社区
课程
招聘
只要是VB程序,不管是什么壳.....
发表于: 2006-9-4 16:56 9698

只要是VB程序,不管是什么壳.....

2006-9-4 16:56
9698
只是对找入口点有帮助,本人菜鸟,请大家别笑话。

最日,群里一菜鸟问我,下面是他的原话:
“闹心死了。。。PESpin 0.3x - 0.4x -> cyberbob
  交交我怎么脱吧。。。我都快疯了。。。 ”
(晕,本来我就菜,还问我)

这下可把我急得不行,因为我是群主,得给兄弟一个交待,一看程序是VB写的,我乐了!

因为VB的程序的特点使得找入口点很容易(受**oooo兄的启发呀)

不多说了,下面是我的解决方法(win2k,OD,hideOD):

1.忽略所有异常,跑一遍,按ALT+L(主要是看有哪些异常,sh****说的),按ALT+M(看到有“msvbvm60”模块,所以判断出是VB程序),完成了初步的侦察!

2.再用OD加载后到这里
00429087 > /EB 01           jmp     short 0042908A
用ALT+m看一下,还没有“msvbvm60”模块。我想:程序运行之前,总得加载“msvbvm60”模块吧?
故在LoadLibrary末尾的retn下断(方法:在代码窗口,查找->所有模块中的名称->load.....).

3.本例子中经过一次异常,在LoadLibrary末尾断下来了,删除所有断点后,按F8
779EFA9E    3BC3            cmp     eax, ebx//到这里
F8直到retn
779EFAD9    C3              retn //到这里

4.ALT+m,发现了“msvbvm60”模块,ALT+C到代码窗口,查找,所有->所有模块中的名称,这里我们输入ThunRTMain,于是会发现这一行:
6A28DE3E MSVBVM60 .text  输出  ThunRTMain

5.然后执行最重要的一步:CTRL+G 输入 6A28DE3E 对这个地方设断, 将 ThunRTMain 的第一个指令改为 retn(好让程序返回调用处)

6.接下来,就容易了,F9,断下,删除断点,让它执行retn完就到了
004011E4    68 601C4000     push    00401C60
004011E9    E8 EEFFFFFF     call    004011DC                         ; jmp 到 MSVBVM60.ThunRTMain
004011EE    0000            add     [eax], al  //返回到这里
入口点的第三行呀!呵呵!!这时我们把对ThunRTMain的修改改回去,用OD自带的插件dump程序,入口点是11E4.用importrec修复即可。

7.总结:
VB程序的入口点前两句都是差不多的:
004011E4    68 601C4000     push    00401C60
004011E9    E8 EEFFFFFF     call    004011DC                         ; jmp 到 MSVBVM60.ThunRTMain

如果我们将ThunRTMain的第一句改为retn,即可返回到程序的第三行。
(高人教我们,VC的在GetVersion末尾的retn下断,原理是一样的!)

8.还不知是不是 PESpin 0.3x - 0.4x 加的壳呢!用peid查一下,是PESpin 0.70 -> cyberbob!

                           (http://www.cracking.com.cn)

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (31)
雪    币: 89
活跃值: (151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先来支持
2006-9-4 17:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持,回去也找几个VB程序试试。
2006-9-4 19:32
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还不错
如果能再详细些就更好了,菜鸟要读懂这篇还是有难度的
2006-9-4 20:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我用fileinfo 查 也是 PeSpin v0.7
2006-9-5 20:02
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请问楼主:
故在LoadLibrary末尾的retn下断(方法:在代码窗口,查找->所有模块中的名称->load.....).
怎么找到这个要下断得retn得。我是新手。
谢谢!!
2006-9-5 20:47
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
loadlibrarya
loadlibraryexa
这些总有吧!?
2006-9-6 08:57
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
最初由 萧泪血 发布
请问楼主:
故在LoadLibrary末尾的retn下断(方法:在代码窗口,查找->所有模块中的名称->load.....).
怎么找到这个要下断得retn得。我是新手。
谢谢!!


最简单的方法,直接在CPU窗口中用Ctrl+G键,在打开的对话框中输入LoadLibraryA,回车,OD将直接进入LoadLibraryA的API函数入口,再向下找到retn语句下一个F2断点即可。
2006-9-6 09:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你们群号多少啊 我想进去和大家交流下
2006-9-6 21:43
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 小虾 发布
最简单的方法,直接在CPU窗口中用Ctrl+G键,在打开的对话框中输入LoadLibraryA,回车,OD将直接进入LoadLibraryA的API函数入口,再向下找到retn语句下一个F2断点即可。


我用这个方法走到一个jmp EFD276E0,然后就走不动了。该怎么办了啊。谢谢!!
2006-9-11 16:54
0
雪    币: 238
活跃值: (12)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
11
交交我怎么脱吧。。。我都快疯了。。。 ”

"交交"?还是"教教"?第一个有歧异的,老兄甚用,开个玩笑!
2006-9-11 23:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
能不能做个教程啊?・!!!!!!!!!
2006-9-12 22:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
终于有点眉目了!!
郁闷啊・!
2006-9-12 22:46
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
14
最初由 zjierr 发布
能不能做个教程啊?・!!!!!!!!!


楼主不是讲的很清楚了,还需要什么教程?
2006-9-14 17:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
轻易不敢发言,遇到此难题了,阅读研究中,谢谢!!!
2006-9-14 22:44
0
雪    币: 172
活跃值: (212)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
还没有看到“msvbvm60”模块,od运行中程序就出错了(已忽略所有异常)
2006-9-15 19:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
呵呵,这可是好办法
2006-9-18 12:03
0
雪    币: 227
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
郁闷中,看起来有点困难,因为我很菜
2006-9-18 12:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
的确不错的方法。

我坚信:只要方法和思路正确,即使更困难的事情总有完成的一天!

支持楼主。也希望以后可以看到这类有明确方法和目标的帖子!

我先收藏先!
2006-9-18 15:32
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习下,VB程序可以这样脱呀
2006-9-18 19:41
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
好办法.我试试看
2006-9-19 00:02
0
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
不太看得懂啊,真希望能再说得详细些
2006-9-20 21:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我反编一个vb程序是,用查壳工具没发现壳,但不能用字符串参考是怎么回是啊
2006-9-20 23:55
0
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最初由 小虾 发布
最简单的方法,直接在CPU窗口中用Ctrl+G键,在打开的对话框中输入LoadLibraryA,回车,OD将直接进入LoadLibraryA的API函数入口,再向下找到retn语句下一个F2断点即可。


按照操作


找到这儿


一直翻到最后,也没找到一个retn


哪儿操作出错了?
2006-9-21 20:09
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
25
最初由 jerryme 发布
按照操作


找到这儿

........

可能是你的OD的问题。
我的是这样的。
2006-9-21 21:34
0
游客
登录 | 注册 方可回帖
返回
//