间谍COM对象

geo*_*osd 6 windows com hook

我为自己设置了一个新的任务,涉及"窥探"COM对象.

即使你不做COM,你也可能熟悉API钩子技术,你可以在调用原始函数之前挂钩导入的函数并执行你自己的代码.如果您尝试挂钩COM对象方法,API挂钩有点复杂但很快就会变得混乱(对于生产代码IMO而言太乱).

所以,目前,要做"我的工作",我为CoCreateInstance设置了一个API挂钩,我为我感兴趣的接口发送手写代理.现在这不是很多接口,但它不是最好的解决方案无论是.

有没有办法以更简洁的方式做到这一点,最好不使用API​​挂钩?

另一方面,这篇文章似乎是伟大的工作http://www.ddj.com/windows/184416546?pgno=5但二进制文件不再起作用(我猜它是围绕Win98时写的).有谁知道它的内部,并能指出我使它再次工作的正确方向?

谢谢

And*_*son 3

我绝对推荐使用 Keith Brown 的“Universal Delegator”来进行低级拦截。Kim Grasman 提到的 ComTrace 工具就使用了它。它允许您将任意 com 对象包装在可以执行拦截、日志记录等操作的“外壳”中。描述通用委托者的原始文章(带有代码)位于此处此处

如果您想监视任意进程中的 com 对象(您没有源代码),那么您还需要使用 CreateRemoteThread() 或类似的方法进行代码注入。如果您以前没有这样做过,这里有一篇文章可能会帮助您入门。