Frida构造数组、对象、Map和类参数

xiaoeryu Lv5

本章主要内容为hook后参数如何打印和构造

环境:

设备:pixel XL

系统版本:Android 7.1

数组

改变app的返回结果

源码片段

char arr[][] = new char[4][]; // 创建一个4行的二维数组
        arr[0] = new char[] { '春', '眠', '不', '觉', '晓' }; // 为每一行赋值
        arr[1] = new char[] { '处', '处', '闻', '啼', '鸟' };
        arr[2] = new char[] { '夜', '来', '风', '雨', '声' };
        arr[3] = new char[] { '花', '落', '知', '多', '少' };
        Log.d("SimpleArray", "-----横版-----");
        for (int i = 0; i < 4; i++) { // 循环4行
//            Log.d("SimpleArraysToString", Arrays.toString(arr[i]));
//            Log.d("SimpleStringBytes", Arrays.toString (Arrays.toString (arr[i]).getBytes()));
            for (int j = 0; j < 5; j++) { // 循环5列
                Log.d("SimpleArray", Character.toString(arr[i][j])); // 输出数组中的元素
            }
            if (i % 2 == 0) {
                Log.d("SimpleArray", ",");// 如果是一、三句,输出逗号
            } else {
                Log.d("SimpleArray", "。");// 如果是二、四句,输出句号
            }
        }
  • hookCharacter.toString()获取参数和返回值并改变返回结果

  • hookcharArrays.toString()

    • 这里的X值因为格式的问题打印不出来,使用JSON.stringify()方法来打印

  • hookcharArray.getBytes()

    • 有点奇怪,在搜索实例的时候出现了搜索不到的情况,要等app运行了很久(大概一个小时左右了)才能搜索到实例。看报错是编译优化导致的找不到类名。应该是设备或者系统版本的问题。没搜索到类似的问题,回头测试一下
    • 之前是Android 10.0换了7.1没有这个问题了

对象/多态、强转

子类可以强转为父类,父类不能强转为子类

  • 子类强转为父类ok

接口

也可以在hook代码中实现接口

枚举

获取枚举的实例和类

Map

打印以及hook Map

Map的源码片段

        Map<String, String> mapr0ysue = new HashMap<>(); // 创建Map集合对象
        mapr0ysue.put("xiaoeryu 1", "张三"); // 向Map集合中添加元素
        mapr0ysue.put("xiaoeryu 2", "李四");
        mapr0ysue.put("xiaoeryu 3", "王五");
        mapr0ysue.put("xiaoeryu 4", "赵六");

        Log.d("5map", "key值toString"+mapr0ysue.toString());

打印Map

  • 打印可以使用命令frida -U com.xiaoeryu.printout -l lesson5.js加载脚本就打印出来了

hook的话需要添加-f参数重新启动才能hook到

命令:frida -U -f com.xiaoeryu.printout -l lesson5.js --no-pause

测试Demo源码

hook脚本

  • 标题: Frida构造数组、对象、Map和类参数
  • 作者: xiaoeryu
  • 创建于 : 2023-11-18 22:14:47
  • 更新于 : 2023-11-20 21:27:33
  • 链接: https://github.com/xiaoeryu/2023/11/18/Frida构造数组、对象、Map和类参数/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
Frida构造数组、对象、Map和类参数