首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
经典问答
发新帖
0
0
[求助]如何找出VB编译的程序用到了哪些OCX控件?
发表于: 2008-12-14 18:33
3964
[求助]如何找出VB编译的程序用到了哪些OCX控件?
tihty
2
2008-12-14 18:33
3964
我看到一个VB做的程序“系统加速精灵”,发现它的界面上有一个XP风格的Tab控件很不错。
于是我就想把这个控件的OCX文件找出来,这样以后可以用在自己的程序里了。
可是我翻遍了安装目录也找不到。
请大家帮帮忙。
有什么方法可以从VB编译的EXE文件里看出它都用到了哪些OCX控件吗?
谢谢。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
8
)
书呆彭
雪 币:
2110
活跃值:
(21)
能力值:
(RANK:260 )
在线值:
发帖
30
回帖
1861
粉丝
2
关注
私信
书呆彭
6
2
楼
做过COM编程的应该知道呀,下断点QueryInterface试试。
2008-12-14 19:00
0
tihty
雪 币:
27
活跃值:
(127)
能力值:
( LV8,RANK:120 )
在线值:
发帖
29
回帖
1095
粉丝
3
关注
私信
tihty
2
3
楼
确实没怎么做过COM的编程呀,我只懂得如何在VB中用现成的OCX控件。
刚才我bp QueryInterface,结果是“未知的标示附”。
我查了MSDN,发现这个函数是这样解释的:
Platform SDK: COM
IUnknown::QueryInterface
前面加了一个IUnknown::,不知道是何意?
好像是说QueryInterface不是一个API,所以没办法下断点吧。
不知道我的理解对不对。请书呆彭指点。
2008-12-14 19:47
0
书呆彭
雪 币:
2110
活跃值:
(21)
能力值:
(RANK:260 )
在线值:
发帖
30
回帖
1861
粉丝
2
关注
私信
书呆彭
6
4
楼
我说错了,应该是CoCreateInstance()或者CoCreateInstanceEx()函数。
使用COM组件一般是用这两个函数之一来创建一个组件对象并返回它的接口的。
在函数下断点,从堆栈中找到组件的CLSID,然后就可以查到组件是哪个文件中实现的了。
2008-12-14 20:46
0
tihty
雪 币:
27
活跃值:
(127)
能力值:
( LV8,RANK:120 )
在线值:
发帖
29
回帖
1095
粉丝
3
关注
私信
tihty
2
5
楼
我断到CoCreateInstanceEx函数了,堆栈信息如下。
可是我不明白怎么从这里看到CLSID,据说CLSID不是“{xxxxx-xxxxx}”这样的形式吗?
0013F630 769AFAF7 返回到 ole32.769AFAF7 来自 ole32.CoCreateInstanceEx
0013F634 0013F6A8
0013F638 00000000
0013F63C 00000005
0013F640 00000000
0013F644 00000001
0013F648 0013F650
0013F64C 0013F7B4
0013F650 6601A0F0 MSVBVM60.6601A0F0
堆栈里似乎没有这个啊,我想了很久都没弄明白。
请书呆彭指点。
2008-12-14 22:31
0
书呆彭
雪 币:
2110
活跃值:
(21)
能力值:
(RANK:260 )
在线值:
发帖
30
回帖
1861
粉丝
2
关注
私信
书呆彭
6
6
楼
你查一下CoCreateInstanceEx函数的参数说明。
第一个参数是CLSID的引用。
CLSID是一个
结构体
,一般C++编译器引用是通过指针或类似的方式实现的。
2008-12-14 22:56
0
tihty
雪 币:
27
活跃值:
(127)
能力值:
( LV8,RANK:120 )
在线值:
发帖
29
回帖
1095
粉丝
3
关注
私信
tihty
2
7
楼
根据
0013F630 769AFAF7 返回到 ole32.769AFAF7 来自 ole32.CoCreateInstanceEx
0013F634 0013F6A8
0013F638 00000000
0013F63C 00000005
0013F640 00000000
0013F644 00000001
0013F648 0013F650
第一个参数应该是红色那里吧,于是我查了0013F6A8处的堆栈,发现是0BE35203,
为了防止第一个参数是蓝色那行,我又看了0013F650处的堆栈,发现是00000000。
这下彻底未果了。
2008-12-15 00:15
0
tihty
雪 币:
27
活跃值:
(127)
能力值:
( LV8,RANK:120 )
在线值:
发帖
29
回帖
1095
粉丝
3
关注
私信
tihty
2
8
楼
还是不甘心啊,一件事情就这么完了。
书呆彭,帮帮我。
2008-12-15 19:43
0
书呆彭
雪 币:
2110
活跃值:
(21)
能力值:
(RANK:260 )
在线值:
发帖
30
回帖
1861
粉丝
2
关注
私信
书呆彭
6
9
楼
正常情况下,第一个参数是个指针,指向一个GUID结构。
关于GUID的定义,相关头文件中是这样定义的:
typedef struct _GUID
{
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} GUID;
我没用过VB,我只知道在VC中一般是通过(直接或通过MFC间接地)调用底层的CoCreateInstance()或CoCreateInstanceEx()API来获取要调用的组件的接口的。
但我猜测VB也应该是这么实现的。
2008-12-15 19:54
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
tihty
2
29
发帖
1095
回帖
120
RANK
关注
私信
他的文章
[讨论]周末坛子里人都比较少,大家都去干啥了?
4128
应用层反外挂技术实践
40705
[分享]飞秋远程溢出漏洞利用工具
26674
[翻译]初学者向导—GGNFS和MSIEVE分解因数
63210
[原创]qq密码输入框保护组件TSSafeEdit中的花指令研究
16651
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部