【安卓逆向】某xx冰城app-sha256withrsa分析

在这里插入图片描述

没错,今天要分析的是这个"sign"字段,"t"是一个时间戳,所以每次请求加密肯定都是变化的。

2.jadx静态分析

拿出我们的jadx,不管三七二十一,直接把这个app给它反编译了,因为我这是低版本的所以没有壳,最新版本的好像有一个奇虎360的壳,但是不重要直接上fart脱壳机就可以。

此处就省略了。

全局搜索下,可以看到符合条件就没几个,那就一个个的点进去看看。

在这里插入图片描述
这里直接来到hashMap.put("sign", d.a(hashMap)); ,感觉很像的样子。
在这里插入图片描述

大概看了下就是声明一个hashMap,然后分别添加ax.az, "appId", "sign",ax.az是个啥点进去看下原来就是时间戳"t"啊,这和抓包看到的请求体一模一样啊

在这里插入图片描述

这里sign = d.a(map),跟进去看看。

在这里插入图片描述

静态分析下,a()方法内部大概就是把传递的map类型参数,拼接成一个string,之后调用b()方法。b()方法内部用到SHA256withRSA算法先做一层加密,最后再来base64加密。

对该算法不了解,可以参考下文章:python rsa加解密

所以关键点在b()方法,只需要hook就可以。分析差不多了,上frida动态调试下。

3.frida动态调试

打开frida服务,运行命令:

frida -U com.mxbc.mxsa -l mixue_hook.js

hook代码如下:

Java.perform(function (){
    var d = Java.use("com.mxbc.mxsa.network.feima.d");
    d.b.implementation = function (str1) {
        console.log("↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
        console.log(`d.b方法被调用`);
        console.log("d.b-参数:" + str1);
        var result = d.b(str1);
        console.log(`d.b加密后的数据:${result}`);
        console.log("↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
        return result;
    };

})

看看跑出来是个啥?

在这里插入图片描述
入参和返回值也知道了,感觉像是一个标准rsa的算法,但是秘钥不知道是啥?

咋办 继续hook啊。

看样子c就是秘钥,里面用到base64了,hook 下base64试一试?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值