社区
进程/线程/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才对呀?
我在网上看到有些朋友也遇到了类似的问题,希望知道解决办法的大侠帮忙分析一下原因。非常感谢
...全文
751
12
打赏
收藏
全局API HOOK只能影响调用进程
采用改写IAT的方法注入全局API HOOK,DLL为APIHOOK_DLL,调用程序为APIHOOK_EXE,SetWindowHookEx的第四个参数为0,DLL句柄正确。 现在的问题是,这个DLL只能HOOK到APIHOOK_EXE的进程中,并且使用正确。但是我明明使用了全局HOOK,应该是可以对系统中所有线程进行HOOK才对呀? 我在网上看到有些朋友也遇到了类似的问题,希望知道解决办法的大侠帮忙分析一下原因。非常感谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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了。。。
Android利用ptrace实现
Hook
API
本文详细介绍了如何在Android系统中利用ptrace实现
Hook
API
,以替代系统函数,如ioctl,来实现监控和控制。首先讲解了
Hook
API
的基本原理和历史背景,然后阐述了在Android上使用ptrace
Hook
API
的具体步骤,包括attach目标
进程
、获取目标
进程
函数地址、
调用
目标
进程
中的函数以及注入代码并运行。文章最后提到了替换系统ioctl函数的实现方法,涉及动态库加载、GOT表项查找和重定位表的操作。
简述
API
HOOK
技术及原理
文章详细介绍了在Linux环境下,包括用户态和内核态的各种
HOOK
技术,如原始的inline
HOOK
技巧,通过修改函数内存来实现功能替换;
全局
的系统
调用
表
HOOK
,用于
影响
所有
进程
的系统
API
调用
;内核跟踪技术kprobe,用于在特定函数执行时进行动态追踪;以及网络技术中的
HOOK
应用,如Netfilter和eBPF在内核网络栈中的作用。这些技术广泛应用于系统调试、安全监控和性能优化等领域。
windows-
API
劫持(
API
-
HOOK
)
API
Hook
,也称为
API
劫持,允许开发者拦截并控制特定函数的执行。通过将目标函数替换为自定义函数,可以在
调用
原始函数前或后执行额外操作。本文介绍了
API
Hook
的基本原理,包括如何创建数据结构来执行汇编指令,从而跳转到自定义函数。同时,解释了DLL注入与
API
Hook
的关系,以及为何修改函数地址不会
影响
其他程序
调用
。为了更好地理解这一技术,作者分享了一段示例代码,但提醒读者实际应用时要考虑64位和其他兼容性问题。
API
hook
原理和实例快速入门(inline
hook
),以dll线程注入方式使用(win7-64bit)
本文介绍了
API
Hook
的基本原理和一个简单的实现案例,特别是在64位Windows系统上的应用。首先,文章阐述了如何找到并
hook
API
函数,接着展示了如何使用inline
hook
来替换
API
函数的原始代码,实现功能的篡改。文中还提到,虽然Detour库提供更稳定的
API
Hook
方案,但本文选择直接进行inline
hook
以展示核心原理。最后,作者分享了生成DLL并利用DLL注入技术实现在目标
进程
中进行
API
Hook
的方法,强调在64位环境下需要注意的部分。
Hook
入门(逆向)
本文介绍
Hook
入门知识,
Hook
是特殊消息处理机制,可监视系统或
进程
消息。根据钩取对象分为Message
Hook
、
API
Hook
等。
API
Hook
常用技术有内联汇编
Hook
和IAT
Hook
,在木马程序编写和APT攻击中重要。文中还阐述各类型
Hook
的原理、使用的关键函数及实现步骤等。
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章