EasyHook库系列使用教程之四钩子的启动与停止
来源:互联网 发布:sass平台数据安全 编辑:程序博客网 时间:2024/06/15 06:17
此文的产生花费了大量时间对EasyHook进行深入了解同时参考了大量文档
先来简单比较一下EasyHook与Detour钩取后程序流程
Detours:钩取API函数后,产生两个地址,一个地址对应真Hook函数地址,一个对应真实API地址
EasyHook:钩取API函数后,所有API指向同一地址,通过ACL控制是否跳转到真实API地址
Detour:只要钩取之后,相关于一个API变成两个函数
EasyHook:钩取之后,相关于还是一个API,通过控制ACL来判断是否跳转到真实API
EasyHook使用中的一种特殊情况:
需要实现这样一个功能,截获打开文件(CreateFile)和获取文件大小(GetFileSize)函数,且在打开文件时需要获取文件的大小,即在HookCreateFile中同时使用CreateFile和GetFileSize。此时问题来了。CreateFile此时调用的是真实的API,而GetFileSize将会调用HookGetFileSize。如果存在更多的函数,必将导致问题。
EasyHook的启动与停止
EasyHook两种ACL表,一种是包含方式(LhSetExclusiveACL),一种是排除方式(LhSetExclusiveACL),包含方式,对于加入到ACL中的线珵,全部Hook。排除方式,对于加入到ACL中的线程,全部取消Hook。
通过动态调整开关状态即可实现Hook的启动与停止
0 0
- EasyHook库系列使用教程之四钩子的启动与停止
- EasyHook库系列使用教程之二插入钩子接口
- EasyHook库系列使用教程之三插入钩子示例
- EasyHook库系列使用教程之五全局ACL和本地ACL
- EasyHook库系列使用教程之一写在之前
- clayui界面库系列教程之四:控件的使用
- EasyHook库的应用
- [C#]利用EasyHook创建安装本地钩子[教程翻译+理解]
- Tomcat系列课程之第二课-Tomcat的启动与停止
- EasyHook 中部分函数的实现分析—-申请钩子
- Hadoop源码分析之NameNode的启动与停止
- Hadoop源码分析之NameNode的启动与停止(续)
- Hadoop源码分析之DataNode的启动与停止
- Hadoop源码分析之DataNode的启动与停止
- Android 多线程之可以重复启动与停止的服务
- 服务器的启动与停止
- resin的启动与停止
- nginx的启动与停止
- Android Volley完全解析(四),带你从源码的角度理解Volley
- Python 迭代器 和 生成器yield
- 页面布局中常用的清除浮动的方法
- Apache POI介绍
- 菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_t
- EasyHook库系列使用教程之四钩子的启动与停止
- 读书笔记(会不断更新中)
- 主题敏感PageRank
- app 设计原则 ,步骤
- wordpress后台安装主题或插件时需要FTP帐号怎么办
- 关于QT生成对话框在vs中处理的反思
- 微信支付开发教程
- CVS提交错误:sticky tag '1.1' for file 'xxx.cpp' is not a branch
- 今天竟然有人模仿我的QQ号进行骗钱