Hook技术

--摘自《Android进阶解密》

1.Hook技术分类

  1)根据Hook的API语言划分,分为Hook Java和Hook Native

    * Hook Java主要通过反射和代理来实现,应用于在SDK开发环境中修改Java代码

    * Hook Native则应用于在NDK开发环境和系统开发中修改Native代码

  2)根据Hook的进程划分,分为应用程序进程Hook和全局Hook

    * 应用程序进程Hook只能Hook当前所在的应用程序进程

    * 应用程序进程是Zygote进程fork出来的,如果对Zygote进行Hook,就可以实现Hook系统所有的应用程序进程,这就是全局Hook

  3)根据Hook的实现方式划分,分为如下两种

    * 通过反射和代理实现,只能Hook当前的应用程序进程

    * 通过Hook框架来实现,比如Xposed,可以实现全局Hook,但是需要root

2.动态代理是在代码运行时通过反射来动态地生成代理类的对象,并确定到底来代理谁。Java提供了动态的代理接口InvocationHandler,实现该接口需要重写invoke方法

欢迎关注我的微信公众号:安卓圈

posted @ 2019-01-09 14:53  嘉禾世兴  阅读(361)  评论(0编辑  收藏  举报