某电商APP的OAuth api_sign逆向

简单记录一下,如需看app逆向详细过程的,可以看我前面的几篇文章,挺详细的。

查壳发现没壳

反编译,搜索关键词,api_sign
在这里插入图片描述
一直追下去
在这里插入图片描述
在这里插入图片描述
追到这里发现没办法跳转了,gs函数加密:gsMethod.invoke(object, context, map, str, Boolean.valueOf(z));

发现旁边有一个初始化的地方,应该是so文件初始化的
在这里插入图片描述

在这里插入图片描述
最终发现是gsNav() 调用so层,生成加密

hook走起:

import sys
import frida

rdev = frida.get_usb_device()
session = rdev.attach('com.xxx.xxx')

scr = """
    Java.perform(function() {        
        var KeyInfo = Java.use("com.vip.vcsp.KeyInfo");
        KeyInfo["gsNav"].implementation = function (context, map, str, z) {
            console.log('gsNav is called' + ', ' + 'context: ' + context + ', ' + 'map: ' + map.entrySet().toArray() + ', ' + 'str: ' + str + ', ' + 'z: ' + z);
            var ret = this.gsNav(context, map, str, z);
            console.log('gsNav ret value is ' + ret);
            return ret;
        };
    })

"""
script = session.create_script(scr)


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


script.on("message", on_message)
script.load()
sys.stdin.read()

经过抓包对比,hook和抓包的是一样的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值