QingYi. 发表于 2021-11-6 17:21

使用Frida对某APP进行Hook把玩

本帖最后由 QingYi. 于 2022-1-9 19:48 编辑

首先抓包看看有什么数据,其他的数据都没什么,我们来看看这个signature

打开"jd龟",它告诉我们这里关键词

猜一猜,是上面这个


果然也是bs64加密


如果这个是null就等于null 否则就是后面那个鬼东东,怎么可能是null呢,我们往上看看

其实他就是一个反射

这个GAME_SIGNATURE本质上就是signature,像极了宏定义

于是乎我们去com.hoge.android.jni.Utils这个类下面找找,发现他是在so里面无疑了

没错,它的名字是这样的,前面前缀lib


把它抓出来,丢进去ida中看看

在导出函数里面搜索signature,点进去

第一个是env,第二个也没用到,不用管,第三个第三四个是传进去的参数,再点进去signature

看见了sha算法,再点进去,确实有蛮像

现在我们使用Frida来Hook 这个函数,首先要找到这个地址

在这个界面按下tab键就可以跳到arm汇编代码了,前面这块就是地址
代码如下:
# -*- coding: UTF-8 -*-
import frida, sys

jsCode = """

Java.perform(function(){
      var resPtr = null;
    // find the address of the "so" file
      var soAddr = Module.findBaseAddress("libm2o_jni.so");
    // printf
      send('soAddr: ' + soAddr);
    // function address
      var sha1Addr = soAddr.add(0xA8E8 + 1);
      send('sha1Addr: ' + sha1Addr);
      Interceptor.attach(sha1Addr, {
                onEnter: function (args) {
      // 进入函数时的操作
                        send(Memory.readCString(args));
                        send(args.toInt32());
                        resPtr = args;
                },
                onLeave: function(retval){
      // 退出函数时的一系列操作
                        var buffer = Memory.readByteArray(Memory.readPointer(resPtr), 60);
                        console.log(hexdump(buffer, {
                              offset: 0,
                              length: 60,
                              header: true,
                              ansi: false
                        }));
                }
      });
      
});

""";

def message(message, data):
    if message["type"] == 'send':
      print(u" {0}".format(message['payload']))
    else:
      print(message)

process = frida.get_remote_device().attach("海博TV")
script= process.create_script(jsCode)
script.on("message", message)
script.load()
sys.stdin.read()

看不懂的去翻下官方文档就能懂了

res:

compare:


组限定长度为n的包,不懂的看下c语言官方api,前面定死,后面传来的




v4 和 a1 a2 有关系,a2是传的第一个,也就是版本号,v11 也就和a3有关系,自己琢磨琢磨 从反射那一段到汇编这一块的流程


后面getBytes 再进行b64 编码 完事了.

小飞虫 发表于 2021-11-7 13:45

感谢分享,最近在学习

Light紫星 发表于 2021-11-9 05:07

感谢分析,先收藏一下

神枪泡泡丶 发表于 2021-11-22 16:53

简明扼要学习到了{:301_997:}
页: [1]
查看完整版本: 使用Frida对某APP进行Hook把玩