美文网首页
android hook介绍

android hook介绍

作者: Lee_5566 | 来源:发表于2021-01-31 20:49 被阅读0次
    image.png

    目录

    第一章:android hook介绍
    第二章:hook之替换View.OnClickListener
    第三章:HooK之hook Notification

    hook技术

    Hook 又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输,将自身的代码与系统方法进行融入。

    这样当这些方法被调用时,也就可以执行我们自己的代码,这也是面向切面编程的思想(AOP)。

    常见Hook框架

    • Xposed
      通过替换 /system/bin/app_process 程序控制 Zygote 进程,使得 app_process 在启动过程中会加载 XposedBridge.jar 这个 Jar 包,从而完成对 Zygote 进程及其创建的 Dalvik 虚拟机的劫持。
      Xposed 在开机的时候完成对所有的 Hook Function 的劫持,在原 Function 执行的前后加上自定义代码。

    • Cydia Substrate
      Cydia Substrate 框架为苹果用户提供了越狱相关的服务框架,当然也推出了 Android 版 。
      Cydia Substrate 是一个代码修改平台,它可以修改任何进程的代码。不管是用 Java 还是 C/C++(native代码)编写的,而 Xposed 只支持 Hook app_process 中的 Java 函数。

    • Legend
      Legend 是 Android 免 Root 环境下的一个 Apk Hook 框架,该框架代码设计简洁,通用性高,适合逆向工程时一些 Hook 场景。
      大部分的功能都放到了 Java 层,这样的兼容性就非常好。

    Hook需要的技术

    Hook实施

    尽量静态变量和单例,因为一旦创建对象,它们不容易变化,非常容易定位。
    实现流程:

    1. 寻找 Hook 点,原则是尽量静态变量或者单例对象,尽量 Hook public 的对象和静态方法。
    2. 选择合适的代理方式,如果是接口可以用动态代理。
    3. 偷梁换柱——用代理对象替换原始对象。

    相关文章

      网友评论

          本文标题:android hook介绍

          本文链接:https://www.haomeiwen.com/subject/wgkctltx.html