龙空技术网

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

之乎者也吧呀 102

前言:

此刻姐妹们对“安卓so文件怎么打开”大体比较关心,看官们都想要分析一些“安卓so文件怎么打开”的相关文章。那么小编也在网上收集了一些关于“安卓so文件怎么打开””的相关知识,希望你们能喜欢,小伙伴们一起来学习一下吧!

接上节课内容

安卓逆向 -- 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

标签: #安卓so文件怎么打开 #c语言sign函数怎么写