首页
社区
课程
招聘
[原创]不注册使用 COM 组件
发表于: 2006-10-27 13:39 11696

[原创]不注册使用 COM 组件

dummy 活跃值
23
2006-10-27 13:39
11696

下面的源码是在一个在没有注册 flash 组件的情况下,使用 flash 组件播放 flash 的例子

com_proxy.h 是关键。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
2
flash.part2.rar
上传的附件:
2006-10-27 13:40
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
3
学习
2006-10-27 19:26
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
留名,以后用得着
2006-10-27 20:05
0
雪    币: 441
活跃值: (149)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
最初由 WAKU 发布
留名,以后用得着


学习
2006-10-27 23:54
0
雪    币: 466
活跃值: (175)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
6
这个东西好。研究了好长时间没有收获呢
2006-10-29 02:05
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
代码我已经收藏,先学一下

不过很是郁闷,我直接用你的release版本播放一个swf文件,出现这样的错误,是不是你的这个程序有系统要求的??我的是XP-SP2,我又VC重新编译了一下,错误依旧.



2006-10-29 19:07
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
8
抱歉这个问题,我没有遇到过,不知道是什么原因导致的
2006-10-30 07:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
的确会有七楼所说的问题,楼主做事不仔细啊
你在user权限下试试
我的系统Win2K,user权限,也出现七楼的问题!
下班回家用自己的机子再试试。
2006-10-30 11:50
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
10
哦,不好意思
2006-10-30 12:09
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
11
最初由 chinawash 发布
的确会有七楼所说的问题,楼主做事不仔细啊
你在user权限下试试
我的系统Win2K,user权限,也出现七楼的问题!
下班回家用自己的机子再试试。


LZ能够拿出来分享已经很好了。
况且软件有BUG是很正常的事,光凭这样一个BUG就说LZ做事不仔细,太武断了。

大家应该也都看到,最近论坛的交流氛围出现了问题,
所以这个时候在心直口快的同时,考虑下是否合适。

一点建议,请谅解!
2006-10-30 13:09
0
雪    币: 466
活跃值: (175)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
12
楼主能索引一下实现的思路就好了
2006-11-4 19:21
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
13
实行方法就是 hook api(主要 hook 了 CoGetClassObject 之类的 api...), 过滤传递过来的 CLSID
,如果发现是自己代理的 CLSID, 那么就仿照系统的操作方式(详细可以看看 wine)

我对 COM 也不太了解,所以无法了解这种硬操作会有什么样的后果
2006-11-4 19:43
0
雪    币: 150
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
com的dll不是导出有4个函数么
其中有个函数
STDAPI DllGetClassObject(
REFCLSID rclsid,  //CLSID for the class object
REFIID riid,//Reference to the identifier of the interface
// that communicates with the class object
LPVOID * ppv //Address of output variable that receives the
// interface pointer requested in riid
);
给他rclsid以及riid就可以创建出相应的com对象了。
所谓的注册就是给出一些信息让操作系统调用。
其实你只要load这个dll然后调用DllGetClassObject就可以得到这个对象的接口,但要自己实现套间之类的东西(也可以不管,不过会有线程问题的)
2006-11-15 11:00
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
好东西!
2007-3-25 13:05
0
游客
登录 | 注册 方可回帖
返回
//