首页 > 编程语言 >安卓逆向 -- Frida Hook某车_sign算法分析

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

时间:2023-06-08 22:02:10浏览次数:45  
标签:逆向 -- 安卓 sign result sb encodeMD5

接上节课内容

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

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

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

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

一、上节课抓包有个sign值

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

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

安卓逆向 -- Frida Hook某车_sign算法分析_加密结果_02

安卓逆向 -- Frida Hook某车_sign算法分析_加密结果_03

三、查找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


标签:逆向,--,安卓,sign,result,sb,encodeMD5
From: https://blog.51cto.com/u_15288375/6443610

相关文章

  • 程序员该如何优雅地过中秋?
    又是一年中秋节,在此祝所有朋友:中秋快乐!!! 中秋节前,作为程序员的你有没有被要求做一个抽奖小程序呢?抽奖程序可是整个中秋晚会最精彩的环节,毕竟,有时候,抽出来的中奖员工就成了“null”了~~~要问程序员中秋放假是否打算出去玩?他们或许会说:放假,不存在的,我的心中只有工作~在程序员眼中,只有上......
  • 深入浅出模板模式和动态代理
    模板模式模板模式是使用最频繁的设计模式之一,如果能正确的使用好模板模式,能使代码更加优雅,同时也便于后期维护和扩展。另外也是面试常问的设计模式之一。本次Chat分享的是易懂版模板模式,首先了解模板模式,然后会例举多个生活实例,再写一个案例,最后介绍Spring和Mybatis源码......
  • C语言编程—头文件
    头文件是扩展名为.h的文件,包含了C函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用C预处理指令#include来引用它。前面我们已经看过stdio.h头文件,它是编译器自带的头文件。引用头文件......
  • eclipse打开时包an error has occurred see the log file,具体log如下
    !SESSION2013-11-0619:50:37.375-----------------------------------------------eclipse.buildId=M20120208-0800java.version=1.6.0_23java.vendor=SunMicrosystemsInc.BootLoaderconstants:OS=win32,ARCH=x86,WS=win32,NL=zh_CNFrameworkargume......
  • ApacheCN Pandas 教程集
    Pandas秘籍零、前言一、Pandas基础二、数据帧基本操作三、开始数据分析四、选择数据子集五、布尔索引六、索引对齐七、分组以进行汇总,过滤和转换八、将数据重组为整齐的表格九、组合Pandas对象十、时间序列分析十一、Pandas,Matplotlib和Seaborn的可视化Pandas学习手册中文......
  • Crowdin 使用指南
    作者:飞龙创建项目一、Github登录二、之后会跳到个人信息页,点击左上角的Projects->CreateProjects来创建项目。三、在Projectname填写项目名称,注意是全站唯一名称,和Github不一样。如果重复了可以加上apachecn-前缀。如果你想让大家都看到的话,选择Publicproject,就和Github......
  • 如何正确使用redis实现分布式锁?
    分布式锁三种实现方式:数据库乐观锁基于redis的分布式锁基于zookeeper的分布式锁为了保证分布式锁的高可用,我们至少要确保所得实现同时满足一下几个条件:   互斥性,即就是在任意时刻只有一个客户端能持有锁   不会发生死锁,即就是说计算有一个客户端持有锁期间崩了但是锁没有......
  • Dubbo系列<3>-服务提供端与消费端应用的搭建
    创建一个工程dubbo,其中一共分三个module:provider:服务提供者consumer:服务消费者api:是针对服务的接口和实体install成jar给provider和consumer使用1:基于配置方式调用api结构和代码如下:importjava.io.Serializable;/***用户信息**@Authortianweichang*@Date2018-08-1......
  • 源码安装redis-migrate-tool(redis迁移工具)部署安装
    源码安装redis-migrate-toolredis-migrate-toolunzipredis-migrate-tool-master.zipcdredis-migrate-tool-masteryum-yinstallautomakelibtoolautoconfbzip2autoreconf-fvi./configuremake./src/redis-migrate-toolrmt.conf配置项修改[source]typ......
  • 完美的数字
    题目:*输入正整数N,检查它是否完美输出YES或者NO。*把一个数字的每一位拆分开,计算他们的阶乘再累加,如果和等于原数字,则该数字是完美的。*eg:*145*1+4*3*2*1+5*4*3*2*1==145---------------------------------------------阶层的意思:5!=5的阶层=5*4*3......