社区
进程/线程/DLL
帖子详情
全局API HOOK只能影响调用进程
kinghawk
2006-07-25 03:10:59
采用改写IAT的方法注入全局API HOOK,DLL为APIHOOK_DLL,调用程序为APIHOOK_EXE,SetWindowHookEx的第四个参数为0,DLL句柄正确。
现在的问题是,这个DLL只能HOOK到APIHOOK_EXE的进程中,并且使用正确。但是我明明使用了全局HOOK,应该是可以对系统中所有线程进行HOOK才对呀?
我在网上看到有些朋友也遇到了类似的问题,希望知道解决办法的大侠帮忙分析一下原因。非常感谢
...全文
674
12
打赏
收藏
全局API HOOK只能影响调用进程
采用改写IAT的方法注入全局API HOOK,DLL为APIHOOK_DLL,调用程序为APIHOOK_EXE,SetWindowHookEx的第四个参数为0,DLL句柄正确。 现在的问题是,这个DLL只能HOOK到APIHOOK_EXE的进程中,并且使用正确。但是我明明使用了全局HOOK,应该是可以对系统中所有线程进行HOOK才对呀? 我在网上看到有些朋友也遇到了类似的问题,希望知道解决办法的大侠帮忙分析一下原因。非常感谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
化外之民
2006-07-27
打赏
举报
回复
修改IAT的那部分必须放到回调函数里面去执行,由系统来调用。而且你还要HOOK LoadLibrary等函数才能HOOK到后面加载的模块。
kinghawk
2006-07-27
打赏
举报
回复
晕,不能增加分数么?
kinghawk
2006-07-27
打赏
举报
回复
frank_necsthz(磊磊)兄:请问,你提到的instance是指哪一个?
maijian(asmvc)雄:谢谢支持,我用Windows核心编程中的代码可以HOOK住MessageBox,用我自己的代码,只HOOK调用函数,也可以,就是无法HOOK住全局的MessageBox,奇怪。
希望大家继续提出宝贵的建议,这也是我们共同学习的依次机会,我马上再增加帖子的分数,就当作对大家回复的感谢。
frank_necsthz
2006-07-26
打赏
举报
回复
全局钩子,不要忘了,全局数据共享,即#pragma data_seg(".sharedata")
另外,instance也不要忘记设定
kinghawk
2006-07-26
打赏
举报
回复
谢谢楼上的兄弟,我也知道IAT方法Hook全局API不是对所有的API都有效,我也没准备HOOK所有的API,对于改写函数开始的四字节,用汇编指令JMP我已经实现了,我提的这个问题完全是学术上的,呵呵。
现在我用MessageBoxA(W)试验都没有成功,说明我的代码中还是有问题。网上的代码的确很多,比较并没有什么本质的区别(我并没有一行一行的比较分析,这是最后一步做法),我还是努力查找原因,如果有幸解决了,一定和大家共享……。
希望大家更踊跃的讨论。
maijian
2006-07-26
打赏
举报
回复
有一点我要跟楼主讲清楚的,就是<<Windows 2000NT核心编程>>里面讲的IAT方法Hook全局API是有问题的,不是全部的API都Hook得了,本人很早以前就试过了,至于金山之类的软件它们是用另外一种方法,改写函数开始的4个字节,JMP xxxxxxxx这样来实现的,这种方法才是最有效的
LookSail
2006-07-26
打赏
举报
回复
网上这样的代码大把,你去对比一下为什么别人 SetWindowHookEx 0 就可以
kinghawk
2006-07-26
打赏
举报
回复
我觉得肯定是在代码的什么地方出了问题,我试了试Windows核心编成上的代码,的确可以全局HOOK,比较了一下我的代码,发现两者的实现原理是一样的,只是个别函数的使用不同,努力分析中。
难道SetWindowHookEx的第4个参数为0页不能全局HOOK么?难道还有别地方需要特别注意?奇怪
DentistryDoctor
2006-07-26
打赏
举报
回复
你看钩子的相关代码了。
maijian
2006-07-26
打赏
举报
回复
楼主,不是你代码的问题,MessageBox不是肯定可以Hook到的,我以前用IAT的方法就是这样了,在MFC里面也Hook不到AfxMessageBox,虽然AfxMessageBox最终还是调用MessageBox,但就是Hook不到,用VB也差不多,其实不是楼主你的代码有问题,而是IAT这种方法的问题而已
healer_kx
2006-07-25
打赏
举报
回复
词霸为啥能hook每个程序呢/?还不是临时hook的.
healer_kx
2006-07-25
打赏
举报
回复
那你只能该系统的dll了。。。
API
HOOK
全局
钩子, 防止
进程
被杀
API
拦截 防止
进程
被控制台杀死. 用的是
全局
钩子 通过修改
进程
的导入表修改OpenProcess的地址指向我们自定义的函数
api
hook
拦截对Win
Api
函数的
调用
_可钩任意指定的
进程
.zip
api
hook
拦截对Win
Api
函数的
调用
_可钩任意指定的
进程
.zip
vb6无dll实现
全局
hook
任意
进程
任意
API
如题所言,在XP和Win7均可以运行,非常稳定,可以拦截到指定
API
,但我看不懂代码,不知道如何获取拦截到的参数,有高人看到指点下。
API
_
HOOK
.rar_
api
hook
_
hook
api
_system用户
进程
_visual c
通过
API
HOOK
创建SYSTEM用户
进程
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章