首页
社区
课程
招聘
[讨论]关于vb程序的DIY
发表于: 2009-3-14 21:52 7546

[讨论]关于vb程序的DIY

2009-3-14 21:52
7546
假如有这样一个VB程序
FORM1有1个菜单MnuTest 1个BUTTON

点BUTTON弹出了FORM2,MnuTest点击无实际功能。

那么能否DIY实现点MnuTest也实现和点Button一样的功能弹出FORM2呢
(其实也就是实现FORM2.SHOW)
搞了一晚上 貌似和非VB程序有差别?!

各位高手能否给个提醒,非常感谢。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
做了个例子程序

能否实现将点击MnuTest和点击Command1的功能对调呢
上传的附件:
2009-3-14 21:56
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如果可以实现,各位给个提醒,非常感谢
2009-3-14 21:57
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
以前也研究过,未果,搞不清楚它的内部机制
2009-3-14 22:18
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
stalker:你的几个PEDIY教程做的非常的好啊 呵呵。

看来DIY VB的程序还是非常难的啊
2009-3-14 22:22
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
过奖了,我是菜鸟,都是从论坛上老前辈的文章里学来的,不过现在老前辈们可能都忙于工作或是其他,很少见发主题了。
2009-3-14 22:35
0
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
就你上面的例子程序而言,ctrl + b 搜索 81 6C 24 在所有JMP 下断,运行程序:
004019B8   .  816C24 04 3F0000>sub dword ptr ss:[esp+4],3F
004019C0   .  E9 3B040000      jmp Project1.00401E00                       ;这里跳向FORM2 ,将其改为jmp Project1.00401EF0
004019C5   .  816C24 04 370000>sub dword ptr ss:[esp+4],37
004019CD      E9 1E050000      jmp Project1.00401EF0                       ;这里跳向MnuTest ,将其改为jmp Project1.00401E00
2009-3-15 18:12
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢楼上

这个方法我昨天未发帖的时候也试了
修改后保存文件 点击会出现错误自动退出,不知道原因。

今天又试了一下是可以的。谢谢了
2009-3-15 19:11
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那如果这样
这个程序有FORM1和FORM2两个窗体
去掉FORM1上BUTTON的按钮响应事件。
能不能自己在OD里写一段代码将FORM2 SHOW出来呢
2009-3-15 19:13
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好像涉及到__vbaNew2的一个参数问题
貌似PUSH的第1个参数是固定的 第2个参数决定SHOW哪个窗体出来
但是第2个参数如何得到就不晓得了。
2009-3-15 19:15
0
雪    币: 277
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
你能否找到FORM1上BUTTON的按钮响应事件,直接跳FORM2?
2009-3-15 19:41
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我现在的意思是说 有2个FORM
程序里面没有让FORM2.SHOW的代码
自己来实现该如何实现的问题
2009-3-15 19:47
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
这种东西,可自己编写两个窗体互相显示,再查看对应代码来解决。
2009-3-16 11:41
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这种方法我当然试过
就是还没搞明白__vbanew2的参数是怎么计算出来的
2009-3-16 16:17
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
自问自答:__vbaNew2的参数一个是固定的 另一个是要显示的窗体的位置(?不知道如何表达)
IDA可以分析出来,直接用就行了
2009-3-17 14:32
0
雪    币: 229
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢某位的一个VBOOP.C脚本
2009-3-17 14:33
0
雪    币: 79
活跃值: (35)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
17
vboop分析后,貌似你这个问题不再是问题

找到这个form的方法列表,注意两个jmp就是了,实际上等同于在代码里面把两个事件指向同一个事件处理函数。
2009-3-18 03:06
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
应该是不可以的
2009-3-18 21:23
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
学习学习一一
2009-3-19 14:09
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
20
很可惜不是OD插件
2009-3-19 19:16
0
游客
登录 | 注册 方可回帖
返回
//