安卓逆向 -- Frida Hook某车_sign算法分析

接上节课内容

安卓逆向 -- Frida环境搭建(HOOK实例)

安卓逆向 -- FridaHook某车udid的加密值

安卓逆向 -- FridaHook分析3DES加密值

安卓逆向 -- SO文件逆向分析

一、上节课抓包有个sign值

二、用jadx打开,全局搜索"_sign",发现sign值都来自于toSign函数

三、查找toSign函数声明的地方

public static String toSign(Context context, Map<String, String> map) {
        if (map == null) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        sb.append(getSignKey(context));
        for (Map.Entry<String, String> entry : map.entrySet()) {
            sb.append(entry.getKey() + entry.getValue());
        }
        sb.append(getSignKey(context));
        return SecurityUtil.encodeMD5(sb.toString()).toUpperCase();
    }

四、经过分析最后结果来自encodeMD5函数,我们hook该函数

SecurityUtil["encodeMD5"].implementation = function (str) {
    console.log(`SecurityUtil.encodeMD5 is called: str=${str}`);
    let result = this["encodeMD5"](str);
    console.log(`SecurityUtil.encodeMD5 result=${result}`);
    return result;
};

五、查看运行结果,和抓的包一致,只是结果是小写,包里面是大写。所以sign就是上面一大堆参数进行拼接,然后再进行md5运算,最后再转为大写。

参数:W@oC!AH_6Ew1f6%8_appidatc.androidappversion3.16.1channelidcsypwde10adc3949ba59abbe56e057f20f883eudidEmf/VNnohOKgDGg18QXBQFFTz1pKemdyChiQd6+xw1FamdmTTwRuSA==username15836353612W@oC!AH_6Ew1f6%8
加密结果:a9b579e04e9c2ad64dfb3577e6b6d2fe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值