电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Windows下APIhook和Windowshook应用区别VIP免费

Windows下APIhook和Windowshook应用区别_第1页
1/12
Windows下APIhook和Windowshook应用区别_第2页
2/12
Windows下APIhook和Windowshook应用区别_第3页
3/12
Window s 下 API hook 和 Window s hook 应用区别 Hook 字面的意思是钩子,但是实际上更像提供一种过滤,或者说修改消息处理,或者API 的机制。 API hook 什么是API 的hook 呢,其实就是将 API 调用的地方进行了转移,或者重新实现的一种技术。这种技术不仅仅可以用在 w indow s 上,其他 OS 上一样可以使用,我曾经在 brew mp 上的手机开发上测试过API hook。所以这里主要只讲 w indow s 下的API hook。 API的hook 基本思路都是想办法替换原来的API,使函数的调用关系,直接进行转换, 典型的如下 可以看到 client 端要调用的FunctionA,在 A 进入之后,就调用了 FunctionB , 在 Function B 中回到 FunctionA 做具体 A 应该做的事情,从 A 返回之后,FunctionB 然后在返回给 Client,那么在 FunctionB 中使用 FunctionA 的前后,它自己都可以干自己想要干的事情,这样就是一个 API 的hook, 下面我们主要讨论 Window s 上最常用的两种API hook 策略。 A)IAT 替换 API hook 所谓的IAT (import address table ) 这个是PE 文件中一个重要的部分,这里我们不详细讨论 PE 文件的构成,因为这个本来就可以写一张内容。我们主要了解的是PE 如何在一个已经加载在内存中的PE 文件如何找到它的IAT。 (1) 为什么要找 IAT? 一个模块,可能依赖别的API,也可能提供API,供别的模块调用,MS 为了在PE 文件中,分别用导入表和导出表进行描述两种关系。导入表 IAT 主要是描述了这个模块依赖那些其他模块提供的API。 而导出表 EAT 是描述这个模块中都提供那些函数供别的模Function A Client 1 Function B 2 3 4 块调用。如果我们在某个模块的导入表中替换它所依赖的函数,那么这样就可以实现 API hook. (2) 如何找 IAT? 要找 IAT 要稍微了解一下 PE 文件的结构, 一个PE 文件的大概长相就是这样,我们要找的IAT,就是要先找到PE 文件可选头,在这个数据结构中,描述了IAT 描述的位置在那里,然后给距IAT descriptor 就可以找到IAT 了。 另外要获得导入表描述符,只要使用这个API ImageDirectoryEntryToData 就可以了, 但是这个API 是有依赖的。我们使用 Du mpbin,或者 TC 都可以看到这个ex e 确实使用kernel32 dll, 所以,我们下一步要替换我们的自己 My CreateProcessW. 将上面函数稍微优化一下,修改一下,就...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Windows下APIhook和Windowshook应用区别

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部