在Android中,注入和挂钩指的是什么(即标准定义),两者有什么区别(如定义、操作过程)?
另外,下面这段描述是注入还是挂钩还是什么?能否配合定义分析一下。
将拦截动态库加载到服务所在的进程;
将进程中的输入输出控制函数的地址替换为拦截动态库的第一地址;
在应用程序对服务进行调用时,基于第一地址执行拦截动态库,以获得应用程序的信息和调用的信息,并且将调用的信息中包括的要被调用的服务 的地址替换为拦截动态库的第二地址;
基于第二地址,显示应用程序的信息和调用的信息。
在Android中,注入和挂钩指的是什么(即标准定义),两者有什么区别(如定义、操作过程)?
另外,下面这段描述是注入还是挂钩还是什么?能否配合定义分析一下。
将拦截动态库加载到服务所在的进程;
将进程中的输入输出控制函数的地址替换为拦截动态库的第一地址;
在应用程序对服务进行调用时,基于第一地址执行拦截动态库,以获得应用程序的信息和调用的信息,并且将调用的信息中包括的要被调用的服务 的地址替换为拦截动态库的第二地址;
基于第二地址,显示应用程序的信息和调用的信息。
这段描述既有so注入(inject),也有挂钩(hook)的;两者是相辅相成的。即在调用 动态库 时,做地址替换(个人理解类似于映射)的处理。
这两个概念总是一起出现,可能只有理解了这篇文章,才可能搞清楚两者的关系:
Android中的so注入(inject)和挂钩(hook) - For both x86 and arm