zoukankan      html  css  js  c++  java
  • xposed学习四:总结

      xposed的学习要告一段落,接下来去学习android apk和so加固,这里我们回顾下xposed吧。

      xposed是个hook框架,它是基于dalvik(确切来说是目前的版本,作者说ART也快出来了哦)的,也就是说他只是hook java函数。ok,既然xposed是个hook框架我们就来看下它是怎么搭建的呢?

                           

      xposed核心代码在core中,实际就是把java函数标识成native函数,这样在运行java函数时就是在在执行我们自己定义的native函数从而去执行hooked的callback函数(原理可以去看老罗博客中关于dalvik的分析部分)。base中的几个hooked函数构成我们xposed框架的基石,lib中的接口就是在这个时候被实现的。bese中的代码在XposedBridge.main函数中调用,具体可以去看xposed结合Zygote分析。而在lib提供xposed接口供我们去实现来编写xposed模块(本系列都分析method hook,请自行分析resources部分)。

      xposed的知识点就是说这么多,其实还有很多没分析到,等以后用到了再说咯。那xposed就玩到这了吗?不不不,上文提到当前版本的xposed的核心与dalvik是紧紧相连的。在android5.0中,默认是ART虚拟机了,我们的xposed就会失效。我们可以做些什么呢?网上搜集的资料可以给大家参考下:

      Android Art Hook 技术方案

      alibaba/dexposed:阿里团队基于xposed的ART方案

      xposed就这样了,那除了它关于这个hook我们还有什么其他方案呢?

      cydia substrate:注入zygote进程,采用inline hook,so也可以hook哦。

      adbi:利用ptrace函数attach到进程。

      上面也是2个hook框架,看简介就是知道所用到的知识点与xposed是不一样的。都很感兴趣啊,但时间有限啊,先走完全程,必定要再回来一一剖析。

      好啦,作为框架它的软件开发也是需要我这种新手学习的。这里我们不看C++代码哦,只看jar里的几个类。先看xposed base中涉及到的

      

      ZygoteInit接口我们简单我们忽略不计,来看resource和package。各自接口都有自己的handle函数和继承自callback的内部类Wrapper,且在call(Param)函数中会调用自己的handle函数。这样代码中可以不用区分这两个接口只需调用callback.call就可以去执行各自的handle函数,这也是Wrapper类名的意思所在。感觉有上图了也没什么课讲嘞,还是技术不行没墨水啊囧。

      时间也不早了,到此为止吧。各位看官给点意见呐

  • 相关阅读:
    How to install VXDIAG Honda, Toyota and JLR SDD software
    16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
    Cummins INSITE locked and ask for verification code
    How to use BMW Multi Tool 7.3 to replace lost key for BMW X1
    Bleed Brake Master Cylinder with Intelligent Tester IT2
    Porsche Piwis Tester II “No VCI has been detected”,how to do?
    Creader VIII VS. Creader VII+
    How to solve GM MDI cannot complete the installation
    汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
    汽车节温器单片机开发思路
  • 原文地址:https://www.cnblogs.com/vendanner/p/4808268.html
Copyright © 2011-2022 走看看