首页
社区
课程
招聘
怎么样Hook住任意dll的任意函数?
2006-11-6 18:35 4959

怎么样Hook住任意dll的任意函数?

2006-11-6 18:35
4959
我看了《Windows核心编程》之后,用了上面的代码(改IAT),现在Hook住任意的API函数是没问题了。
可是如果是一个类的成员函数,就没办法了,怎么样才能Hook住这种函数?

另外,我现在是先远程注入一个进程,然后Hook住想要Hook的函数,这样的话,对别的进程是没有用的。有的情况下我要Hook住所有进程的API应该怎么做?枚举所有的进程,每个进程注入一遍?这种方法有点恶吧,哪位知道更好的办法?

还有,现在我要执行一个程序才能注入,有没有办法在我想注入的进程启动的时候就自动注入?我想应该是执行进程有一个全局的函数(不知道有没有),我只要全局的Hook住这个函数,我就有机会了。

最后一个问题,我装了RadASM2.2.1.0之后,我其它的一些进程经常莫名其妙挂掉,比如Firefox,QQ,为什么?

谢谢。

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
thinkSJ 4 2006-11-6 18:47
2
0
在你程序启动时调用SetWindowsHookEx,并传入WH_GETMESSAGE作为第一个参数,这样就会将DLL注入到每一个有消息循环的进程中,然后就可以为所欲为了,
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ChenA 2006-11-6 19:15
3
0
最初由 thinkSJ 发布
在你程序启动时调用SetWindowsHookEx,并传入WH_GETMESSAGE作为第一个参数,这样就会将DLL注入到每一个有消息循环的进程中,然后就可以为所欲为了,

嗯,这个方法是不错,就是这个函数太明显了,别人也调一次的话而且它不调用CallNextHookEx,我估计是没戏了,我如果把SetWindowsHookEx这个函数Hook住还有可能,别人也有可能象我这么想,呵呵,问题就变成了启动时怎么样才能最先执行我的程序?写成驱动?
游客
登录 | 注册 方可回帖
返回