用frida-trace来hook iOS的CC_MD5方法

4,057 阅读1分钟

目标

打印CC_MD5方法的参数和返回值

环境

越狱的iOS设备,需要安装frida

macOS系统的电脑,需要安装frida,并安装frida-tools

步骤

(1)手机连接电脑,手机启动要测试的app

(2)frida-ps查看当前app的PID

frida-ps -Ua

输出结果如下:

  PID  Name        Identifier             
-----  ----------  -----------------------
47712  微信          com.tencent.xin
30692  支付宝         com.alipay.iphoneclient
54001  计算器         com.apple.calculator 

(3)frida-trace 最终微信的CC_MD5方法

frida-trace -U 47712 -i "CC_MD5"

输出如下:

Instrumenting functions...                                              
CC_MD5: Loaded handler at "/Users/xxxx/Documents/TargetApp/__handlers__/ASEProcessing/CC_MD5.js"

按住键盘 Ctrl+C 停止frida-trace

(4)根据上面的路径找到 CC_MD5.js 文件,并编辑

主要代码:

  onEnter: function (log, args, state) {
    log('CC_MD5()--arg[0]='+args[0].readUtf8String());
  },


  onLeave: function (log, retval, state) {

    log('CC_MD5()--return--=');
    var md5_digest = hexdump(retval,{length:16});
    var hexified = " ";
    var raw_array = md5_digest.split("\n");
    for (var a=0; a<raw_array.length; a++)
    {
      var line_array = raw_array[a].split(" ");
      for (var b=1; b<line_array.length-1; b++) 
      {
        if (line_array[b].length === 2)
        {
          hexified += line_array[b];
          hexified = hexified.trim();
        }
      }
    }

    log(hexified+"\n");

  }
}

修改后,记得保存。

(5)再次执行步骤(3)

手指操作几下微信,会看到终端有一些CC_MD5相关的打印:

20014 ms  CC_MD5()--arg[0]=dong540131487888 
20014 ms  CC_MD5()--return--= 
20014 ms  c476c6182489c453fff807eeb9595f8d 
20015 ms  CC_MD5()--arg[0]=https://wx.qlogo.cn/mmhead/ver_1/3lDOnjQscyrAxQP555555f8MuNjW8tAqoETibPgkds5qLFiaKEkyzfxZ2fdg5uPuKib6N1WyshhmI5fEqgqRiaXicZVzvp0NoAiakPkbeklsWI39S8/132 
20015 ms  CC_MD5()--return--= 
20015 ms  3d9f8fb870f139c3c73d5d83j5734d26

测试成功!