首页
论坛
课程
招聘

[调试逆向] 关于VB程序的菜单

2011-7-6 12:52 6909

[调试逆向] 关于VB程序的菜单

2011-7-6 12:52
6909
VB程序真让人头痛,实在没办法了,向大家请教,谢谢。



VBMenu.rar

http://u.115.com/file/bh5cqbwx#     文件名:VBMenu.rar

【预售】物联网安全漏洞实战!离物联网安全研究员只有一个课程的距离!报名满30人开班!

上传的附件:
最新回复 (17)
红尘岁月 2 2011-7-6 19:37
2
0
在网上找到这篇文章,你可以看一下
http://www.vb-decompiler.org/forms_editing.htm

对应的你可以在程序菜单字节中加 05 00 字节,05表示Enable属性, 00表示不显示。或者直接把相应的菜单节删除掉。当然,这些都影响到整个菜单区间的大小,要改相应的属性。
如第一个“1111”的属性字节如下

0040123C  19 00 00 80 02 00 00 02 00 77 6A 00 13 01 00 00  ..€...wj...
0040124C  03 04 00 31 31 31 31 00 FF 02                    .1111.
红尘岁月 2 2011-7-6 19:48
3
0
对于VB程序头结构中Gui,不知道谁有结构说明。对于Gui Object中的每个属性对应的字节是什么,好像还没有看到过一个完整的说明。如03表Caption,05表示Enable等等。
fairynull 2011-7-6 20:29
4
0
第个菜单项下面往下数第8个就是。

0040129D   .  34 34 34 34 0>ascii "4444",0
004012A2      FF            db FF
004012A3      02            db 02
004012A4      19            db 19
004012A5      00            db 00
004012A6      00            db 00
004012A7      80            db 80
004012A8      02            db 02
004012A9      04            db 04    //此项用“0”填充就行
004012AA      00            db 00
004012AB      02            db 02
上传的附件:
jfaumt 2011-7-6 20:32
5
0
红尘岁月朋友,我在1111附近改下就提示无效PE文件,抽空你把3333去掉,做个VB逆向教程,好吗?
红尘岁月 2 2011-7-6 20:40
6
0
修改的这一项应该是ID号,这样也行。佩服

这样应该是只显示后面从ID为0开始的菜单
fairynull 2011-7-6 20:57
7
0
我试过的可以啊?
红尘岁月 2 2011-7-6 20:59
8
0
你的那种方法可,他说的是我说的方法。
fairynull 2011-7-6 21:02
9
0
我以为你说我做的有问题。
红尘岁月 2 2011-7-6 21:07
10
0
当然问题也是有,就是他想只隐藏其中的一个子菜单,你把前面的全部子菜单隐藏了
jfaumt 2011-7-6 21:30
11
0
按fairynull朋友确实可以去除(隐藏)一些菜单,但最后一个好像不那么容易对付....
红尘岁月 2 2011-7-6 23:43
12
0
02 00 不可见 02 ff  可见
05 00 无效   05 FF 有效
上传的附件:
fairynull 2011-7-7 20:46
13
0
00401283   .  33 33 33 33 0>ascii "3333",0
00401288      FF            db FF
00401289      02            db 02
0040128A      19            db 19
0040128B      00            db 00
0040128C      00            db 00
0040128D      80            db 80
0040128E      02            db 02
0040128F      02            db 02       //3改为2,就可以屏蔽掉 3这个菜单。因为没有菜单的具体功能,
                                                    //不知道功能实际有无变化。暂不影响其它菜单。但功能不清楚。
00401290      00            db 00
00401291      02            db 02
00401292      00            db 00

// 以下为VB的两个,一个设置为不可见,一个为正常。可以看到区别。不可见的,会多两个字节,不知道如果把正常的,改为不可见的。因为,正常的会比不可见的少字节。不知道楼上的那个大牛是如何做到的?当然要保证菜单自己的功能

//正常的。
00402396   .  6D 6E 75 48 6>ascii "mnuHelpb",0
0040239F      13            db 13
004023A0      03            db 03
004023A1      01            db 01
004023A2      00            db 00
004023A3      32            db 32                                     ;  CHAR '2'
004023A4      00            db 00
004023A5      FF            db FF
004023A6      02            db 02
004023A7      17            db 17
004023A8      00            db 00
004023A9      00            db 00
004023AA      00            db 00
004023AB      04            db 04
004023AC      08            db 08
004023AD      00            db 00

//不正常的。
00402396   .  6D 6E 75 48 6>ascii "mnuHelpb",0
0040239F      13            db 13
004023A0      02            db 02   //多了
004023A1      00            db 00  //这两个字节。
004023A2      03            db 03
004023A3      01            db 01
004023A4      00            db 00
004023A5      32            db 32                                     ;  CHAR '2'
004023A6      00            db 00
004023A7      FF            db FF
004023A8      02            db 02
004023A9      17            db 17
004023AA      00            db 00
004023AB      00            db 00
004023AC      00            db 00
004023AD      04            db 04
004023AE      08            db 08
004023AF      00            db 00
XPoy 3 2011-7-8 01:29
14
0
支持,学习! 推荐给喜欢玩VB程序的朋友一个好网站,红尘岁月老兄找到的只差一个.com啊
http://www.vb-decompiler.com/index.php
这个论坛的结构和P-CODE全的人想自杀啊,真的是太厉害了啊 /:^]..
红尘岁月 2 2011-7-8 09:01
15
0
第一:为什么vb生成的程序正常的比不可见(或无效)的少两个字节?
因为,vb控件默认为可见/有效,所以,如果属性为可见/有效都在编译时优化掉了。

第二:如何添加visible属性与Enabled属性为FALSE?
如果控件没有visible属性与Enabled属性字节,可以手工添加,

如此程序:
添加visible属性为不可见
原数据
00401270  19 00 00 80 02 02 00 02 00 77 6A 00 13 01 02 00  
00401280  03 04 00 33 33 33 33 00 FF 02

插入 visible属性为不可见 02 00,同时要把控件size从 19 00 改成 1B 00
00401270  1B 00 00 80 02 02 00 02 00 77 6A 00 13 01 02 00  
00401280  02 00 03 04 00 33 33 33 33 00 FF 02

还要改两个属性:
1、窗体size 从 F7 改成 F9

00401170  FF CC 31 00 02 B8 48 C8 1E 00 51 07 4D B0 B9 9E  ?.窰?.QM肮
00401180  94 7B 66 0D F0 41 FE C5 BE FB 47 39 41 9B 38 EA  攞f.餉钧G9A?
00401190  2D 54 EA 3F 4D 3A 4F AD 33 99 66 CF 11 B7 0C 00  -T?M:O?檉??.
004011A0  AA 00 60 D3 93 00 00 00 00 00 00 00 00 00 00 00  ?`訐...........
004011B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
004011C0  00 00 00 00 00 00 00 00 00 F9 00 00 00           .........?..R

2、把整个gui的size从 50 01 改成 52 01

004012C0  50 00 00 00 B8 48 C8 1E 00 51 07 4D B0 B9 9E 94  P...窰?.QM肮灁
004012D0  7B 66 0D F0 00 00 00 00 00 00 00 00 00 00 00 00  {f.?...........
004012E0  00 00 00 00 00 00 00 00 10 01 00 00 00 00 00 00  ..............
004012F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00401300  52 01 00 00 00 00 00 00 70 11 40 00 4C 00 00 00  P......p@.L...

最后,程序多加了两个字节,在之间删除两个字节,我选中gui结构后面 (这步应该还要研究一个更好的位置)

004012C0  50 00  B8 48 C8 1E 00 51 07 4D B0 B9 9E 94

全整的步骤:
1、加属性 02 00
2、改控件长度
3、改当前窗体长度
4、改整个gui结构体长度
5、在后面适当的位置删除两个字节

第二:如何把visible属性与Enabled属性为FALSE改成TRUE?
很简单,把02 00或05 00 后面的00 改成 FF 如 02 FF。

总结来说,改属性好改,但加属性不好加。
红尘岁月 2 2011-7-8 09:06
16
0
我是在百度上随便搜索的。看了一下你给的网址,确实比较全。

不过,没有整体的说明所有结构之间的关系,初学者我推荐看本论坛的的

VB6反编译详解(一)
http://bbs.pediy.com/showthread.php?t=28715

VB6反编译详解(二)
http://bbs.pediy.com/showthread.php?s=&threadid=29307
fairynull 2011-7-8 09:21
17
0
真诚的感谢你的回复与帮助。
红尘岁月 2 2011-7-8 09:24
18
0
奇文共欣赏,疑义相与析
游客
登录 | 注册 方可回帖
返回