com hook问题,jameshoo请进

rageliu 2009-12-21 02:36:32
jameshoo兄,我记得你发过帖说成功hook了com。好象你说不同实例都会进到你的hook 函数,this指针不同,想和你确定下这个问题
...全文
164 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jameshooo 2009-12-28
  • 打赏
  • 举报
回复
今天被人提醒了一下,才发现有人向我提问,但ID名写错了,所以我没有收到。

话说当年搞这个HOOK确实成功了,但关键之处不是我搞成功的,而是 zhoujianhei(好像就是这个ID),当时的试验环境是:
系统创建了一个接口实例,我HOOK了其中一个接口方法(其它方法不理),这个容易成功。我希望验证一下同一个接口的其它实例是不是也自动被我HOOK了。按照C++原理,同一个类是共享相同虚表的,HOOK一个虚表对所有实例都有效,但在COM环境中不能成立,原因就在于,组件是在其它的模块中实现的,即使是同一个接口定义,在不同模块中都会有各自的虚表地址,所以它可能会指向不同模块中的虚表。换句话说,两个模块提供的同一种接口类型实际上是两种不同的类型。
其实里面的机制我还没完全搞明白,因为在特定环境下,获得的COM接口只是一个代理接口,代理接口是如何产生这个虚表的,我也没明白,现在也懒得去深究了。
zhd6392 2009-12-25
  • 打赏
  • 举报
回复
com不是提供了二进制层次上的封装,它也能被hook么?学习...
我在地球 2009-12-22
  • 打赏
  • 举报
回复
好好学习,天天向上
  • 打赏
  • 举报
回复
zoulie 2009-12-21
  • 打赏
  • 举报
回复
貌似有这个帖子讲过HOOK COM的, 坐等jameshoo
雪影 2009-12-21
  • 打赏
  • 举报
回复
mk
他的这篇文章我也没看过。
谁给个链接?
rageliu 2009-12-21
  • 打赏
  • 举报
回复
本来准备问点现成的资料,就不用再写测试了,结果jameshoo没来,呵呵
ahao 2009-12-21
  • 打赏
  • 举报
回复
还用这个表啊,会有什么附加操作呢?
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 rageliu 的回复:]
我没说明白,第一个实例的时候,虚表里的地址已经有。以后创建其他实例的时候,是直接用这个已经有的表还是有一定的附加操作。我测试看到有操作。
[/Quote]
虚表是属于类的,所有对象共享一个虚表。
rageliu 2009-12-21
  • 打赏
  • 举报
回复
我没说明白,第一个实例的时候,虚表里的地址已经有。以后创建其他实例的时候,是直接用这个已经有的表还是有一定的附加操作。我测试看到有操作。
ahao 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rageliu 的回复:]
我测试了下,确实是不同实例使用了同一个虚表
[/Quote]

不同实例本来就用同一个虚表
rageliu 2009-12-21
  • 打赏
  • 举报
回复
没来啊。

我测试了下,确实是不同实例使用了同一个虚表
sjdev 2009-12-21
  • 打赏
  • 举报
回复
去年的事情了吧,我记得。

等老胡出来……
ziplj 2009-12-21
  • 打赏
  • 举报
回复
sf

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧