zoukankan      html  css  js  c++  java
  • 【移动安全基础篇】——08、Android_Hook_xposed

    1. Xposed
      开源,官网地址 http://repo.xposed.info/
    2. Xposed_Demo
    步骤如下:
    (1)导入 lib 文件 XposedBridgeApi-54.jar,在 build.gradle 文件中设置为 provided模式,使其不参与编译到最终文件中
    (2)AndroidManifest.xml 文件修改

    (3)入口类编写
    新建一个类文件

    (4)设置启动入口
    在 assets 文件夹中,新建一个 xposed_init 文件,然后写进入口类的信息,例如example.xposed.XposedMain

    (5)安装激活插件,重启后可看到插件效果

    Xposed 是在程序启动的时候同时加载,因此它的函数钩子是区分进程的。如果想对特定进程下钩子的话可以很方便地使用Xposed。在挂钩函数方面没有 Cydia 那样容易写,但是有一个优点是,对于程序的类和参数,可以通过名字进行下钩子。例如,对应 String 类,类名是 java.lang.String,那么传递的参数可以是”java.lang.String”,与传递String.class 的效果是一样的。
    Xposed 的 Hook 分为函数执行前和函数执行后两个位置,可以分别进行参数修改和结果修改。如果不想进行调用的话,可以在执行前使用 setResult(NULL)函数。
    3. classLoader
    与 java 上类似,classLoader 就是一个类装载器。与 java 不同的是,classLoader 所加载的是 dex 文件本身。所以通过程序的 classLoader,可以获取程序 dex 文件中定义的所有类和其成员函数。同理,如果一个程序有多个 dex,那么会对应多个 classLoader,特别是使用动态加载的dex,则需要传递想要的classLoader才可以进行数据获取,这点需要注意。

    总会有不期而遇的温暖. 和生生不息的希望。
  • 相关阅读:
    Centos7 keepalived 修改日志路径
    mysql 双主复制 centos7
    CentOs 7 安装mysql5.7.18(二进制版本)
    oracle、mysql新增字段,字段存在则不处理
    mysql+ibatis 批量插入
    oracle+ibatis 批量插入-支持序列自增
    oracle 批量插入-支持序列自增
    sftp上传
    java
    mysql
  • 原文地址:https://www.cnblogs.com/devi1/p/13486475.html
Copyright © 2011-2022 走看看