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 @   嘉禾世兴  阅读(371)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示