美文网首页
遍历hook Dex中的类

遍历hook Dex中的类

作者: whhccc | 来源:发表于2018-05-18 22:07 被阅读0次
  1. 创建DexFile
DexFile dexFile = new DexFile("/data/user/0/com.test/.cache/classes.jar")
  1. 遍历拿出所有类名
Enumeration<String> classNames = dexFile.entries();
while (classNames.hasMoreElements()) {
    final String className = classNames.nextElement();
    log("hook的类:" + className);
}
  1. 找到类对象,进行hook
Class<?> clazz = XposedHelpers.findClass(className, loadPackageParam.classLoader);

hook构造函数

XposedBridge.hookAllConstructors(clazz, new XC_MethodHook() {});

hook方法

XposedBridge.hookMethod(method, new XC_MethodHook() {});
  1. 打印hook方法中的日志
try {
    Object[] args = param.args;
    if (args != null) {
        Method method = (Method) param.method;
        Log.e(TAG, "方法参数个数:" + args.length + " \n方法路径:" + method.toGenericString());
        int i = 0;
        StringBuilder sb = new StringBuilder();
        for (Object obj : args) {
            i++;
            String value;
            if (obj == null) {
                value = "is null";
            } else if (obj instanceof Context) {
                value = ((Context) obj).getClass().getName();
            } else if (obj instanceof Byte[]) {
                value = new String((byte[]) obj,
                        "utf-8") + " \nbyte:" + Arrays
                        .toString((byte[]) obj);
            } else if (obj instanceof Integer || obj instanceof Long || obj instanceof Boolean || obj instanceof String
                    || obj instanceof Double || obj instanceof Byte || obj instanceof Short || obj instanceof Character
                    || obj instanceof Float) {
                value = String.valueOf(obj);
            } else {
                value = obj.getClass().getName();
            }
            sb.append(" 参数").append(i).append(":").append(value).append("\n");
        }
        Log.e(TAG, "调用前:" + sb.toString());
    }
} catch (Exception e) {
}

相关文章

  • 遍历hook Dex中的类

    创建DexFile 遍历拿出所有类名 找到类对象,进行hook hook构造函数 hook方法 打印hook方法中的日志

  • frida遍历某个类中所有的方法和属性

    前言 有下图一内部类C0108a,想用frida hook该内部类一函数,发现hook不到报类找不到的错误,遍历其...

  • 2020-05-17

    dex脱壳; frida hook libart.so通过DeFile::DexFile或者DexFile::...

  • Java动态代理简单步骤

    实现步骤。1、定义Hook类实现InvocationHandler接口。2、在Hook类中定义需要被代理的对象。 ...

  • 插件开发之360 DroidPlugin源码分析(三)Binde

    Hook机制中Binder代理类关系图 Hook机制中Binder代理时序图 MyServiceManager S...

  • ZJDroid原理

    通过Xposed hook每个应用进程。 通过反射BaseClassLoader获取DexFile,获取dex的m...

  • 非递归式遍历二叉树

    主要可以分为两类:第一类——中序遍历 第二类——前序遍历,后序遍历,水平遍历 前序遍历 后序遍历 水平遍历 之字形遍历

  • DDCTF2018 Hello Baby Dex

    DDCTF2018的Android题目 Hello Baby Dex. 题解有很多,这里用的是frida的hook...

  • Frida 零碎知识(二)

    hook类的全部方法得到实例所属的类枚举类枚举ClassLoader查询指定类 hook类的全部方法 就是使用了j...

  • runtime 遍历 get Int Ivar

    正常遍历一个类中 实例遍历的时候 但是 如果 遍历是 整形,则 object_getIvar 会崩溃,所以需要加类...

网友评论

      本文标题:遍历hook Dex中的类

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