2 babbyso babbyso 于 2016.02.01 17:05 提问

关于注入和挂钩的异同

在Android中,注入和挂钩指的是什么(即标准定义),两者有什么区别(如定义、操作过程)?

另外,下面这段描述是注入还是挂钩还是什么?能否配合定义分析一下。
将拦截动态库加载到服务所在的进程;
将进程中的输入输出控制函数的地址替换为拦截动态库的第一地址;
在应用程序对服务进行调用时,基于第一地址执行拦截动态库,以获得应用程序的信息和调用的信息,并且将调用的信息中包括的要被调用的服务 的地址替换为拦截动态库的第二地址;
基于第二地址,显示应用程序的信息和调用的信息。

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.02 08:16

首先,注入和挂钩本身在不同的上下文中都有不止一种解释。比如sql注入,线程注入,这个都是指添加代码。组件注入说的是在运行时装配库,但是就你说的场景,动态库拦截添加一些自定义代码,这里的注入和挂钩说的其实都是一件事。没必要咬文嚼字。

91program
91program   Ds   Rxr 2016.02.01 17:24

这段描述既有so注入(inject),也有挂钩(hook)的;两者是相辅相成的。即在调用 动态库 时,做地址替换(个人理解类似于映射)的处理。
这两个概念总是一起出现,可能只有理解了这篇文章,才可能搞清楚两者的关系:
Android中的so注入(inject)和挂钩(hook) - For both x86 and arm

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!