在用户态防止全局钩子注入

项目需要,研究了一个礼拜,防止全局钩子注入的功能基本实现。今天偶然在网路上搜索相关主题,发现“看雪论坛”有前辈早就讨论过这个问题,且提出了解决方案,思路与在下不谋而合。不过据我的分析,该前辈的解决方案还有些缺陷。至少应该从以下角度改进:

1、当全局钩子的LoadLibraryExW调用是通过其他版本的LoadLibrary转发时,必须进行一层堆栈回溯,取得更外面一层的函数返回地址;

2、系统的“uxtheme.dll”和“msctf.dll”会设置全局钩子,因此在LoadLibraryExW中对这两个DLL要放行;

3、一些非全局钩子的DLL也会通过USER32调用LoadLibraryExW,因此必须通过判断第三个参数进行区分。如果第三个参数为8,代表这是钩子;否则不是。这是通过观察而来的,可能不够精确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值