EasyHook库系列使用教程之四钩子的启动与停止

此文的产生花费了大量时间对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的启动与停止

时间: 2024-08-23 23:57:27

EasyHook库系列使用教程之四钩子的启动与停止的相关文章

EasyHook库系列使用教程之五全局ACL和本地ACL

EasyHook控制钩子函数通过两个ACL表控制 全局ACL:针所有钩取的函数 本地ACL:针对指定的钩取函数 判断ACL是否能够访问的C++代码如下: if(ACLContains(&Unit.GlobalACL, CheckID)) { if(ACLContains(LocalACL, CheckID)) { if(LocalACL->IsExclusive) return FALSE; } else { if(!LocalACL->IsExclusive) return FALS

【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析(转)

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20911629 作者:毛星云(浅墨)    邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本: 2.4.8 在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像

【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别

[<zw版·Halcon与delphi系列原创教程> zw_halcon人脸识别 经常有用户问,halcon人脸识别方面的问题. 可能是cv在人脸识别.车牌识别方面的投入太多了. 其实,人脸识别.车牌识别,只是图像处理,机器视觉一个很小的领域,对于halcon而言,非常简单. 人脸识别.车牌识别,ocr.汉字识别原理.算法都差不多,自己建库就可以了. halcon与cv不同,面对的是工业(超市)流水线,建库基本是全自动的,扫描一下,和二维码差不多,就自动生成了相关的模型库. 非常简单,halc

《zw版&#183;Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对最常用的函数,做了中文说明,目前约250条,以后会逐步优化.增减. 目标是,类似常用英文单词500一样,做成<Halcon常用函数300条>.<halcon常用函数500条>等版本,方便大 家学习. 考虑到通用性,函数采用的是Halcon手册格式,没有转成delphi版,请大家注意.

7Python标准库系列之requests模块

Python标准库系列之requests模块 Requests is the only Non-GMO HTTP library for Python, safe for human consumption. 官方文档:http://docs.python-requests.org/en/master/ 安装Requests模块 Requests模块官方提供了两种方式安装: pip方式安装 pip install requests 源码方式安装 git clone git://github.co

《CURL技术知识教程》系列技术教程整理

<CURL技术知识教程>系列技术教程整理 有时间会不断更新,大家有什么好的推荐的可以在下面回复,我会酌情收录 1PHP采集相关教程之一 CURL函数库 2php中通过curl模拟登陆discuz论坛的实现代码 3php中通过curl smtp发送邮件 4PHP curl 并发最佳实践代码分享 5CURL的学习和应用(附多线程实现) 6php curl模仿ftp文件上传代码 7php使用curl来获取远程图片 8PHP Curl多线程原理实例详解 9curl不使用文件存取cookie php使用

《zw版&#183;Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)

<zw版·Halcon-delphi系列原创教程> 酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其更加彪悍的机器学习.人工智能.      至少,目前国内.海外机器学习.人工智能方面的学者,没有几位重视这块.      国外,可能是版权问题,毕竟,Halcon是售价高达数万欧元(不是人民币)的商业软件,而且主要用于自控.机器视觉等工业领域,而不是大学.      国内,可能是对于Halcon的了解不够.      其实,图像处理的核心,图像识别.分类,

《zw版&#183;Halcon-delphi系列原创教程》 2d照片-3d逆向建模脚本

<zw版·Halcon-delphi系列原创教程> 2d照片-3d逆向建模脚本 3D逆向建模,是逆向工程的核心要素.       3D逆向建模,除了目前通用的3D点云模式,通过2D图像实现快速3D建模,也是目前的重要手段.       2D图像的3D逆向建模,目前常用的有两种模式,一个是左右视距(或多角度取景)图片叠加处理,google的卫星地图3D化,就是这个模式.       另外一种,就是本文要介绍的3D定标模式(handeye??模式),就是在现场先拍摄一张标准3D定标图片,获取定位参

《zw版&#183;Halcon-delphi系列原创教程》航母舰载机&#183;视觉定位标志的识别代码

<zw版·Halcon-delphi系列原创教程>航母舰载机·视觉定位标志的识别代码 航母舰载机机身上的黄黑圆圈的标志是什么意思,辐射?核动力?战术核弹? <百度百科>介绍如下     这是工业数字摄影测量的人工标志    数字摄影测量(Basic concept of digital photogrammetry)是基于数字影像和摄影测量的基本原理,应用计算机技术.数字影像处理.影像匹配.模式识别    等多学科的理论与方法,提取所摄对像以数字方式表达的几何与物理信息的摄影测量学