某雪冰城sha256withrsa

本文详细分析了某雪冰城App中的加密机制,重点讲解了sha256withrsa加密方式的应用,以及如何通过Frida工具进行Java层的逆向工程,揭示了使用私钥进行不安全加密的问题。

上期分析了某幸咖啡,是一个白盒aes,难度稍微有点大,是so的,这期想来分析下某雪冰城,下期还是有关奶茶的.
就如标题所说,sha256withrsa,这个碰到的就比较少了,这个是什么加密方式呢?就是名字里的意思,明文先sha256哈希后给rsa加密,rsa是非对称加密,有公钥和私钥,一般是公钥加密,私钥解密,并且私钥比公钥要长很多,私钥也可以推出公钥,反过来不行.
rsa常见的秘钥位数有以下几种,1024 位、2048 位和 4096 位,分别是128字节,256字节,512字节,这个争对的是公钥来说的,这个某雪冰城有点反常,它把私钥放到了app里,公钥放到服务器,不知道写这个app的程序员是怎么想的,要下岗了.

首先抓个包

在这里插入图片描述

有个时间戳和sign是变化的,shopid就是商家id,appid是固定的
所以关注点就是就是这个sign了

脱壳

加密做不好,只能期望这个壳可以保护它
在这里插入图片描述

360加固,主要是整体加固,把未脱壳的反编译一下
在这里插入图片描述
看到了qihoo,没错就是奇虎360的,可以看到反编译出来的类很少,相关的dex都隐藏起来了,只有执行这个app的时候才会在内存中解密,整体加固的壳还是很好脱的,还是fart脱壳机
dex文件已经上传到123云盘https://www.123pan.com/s/4O7Zjv-O9nBd.html

定位

在这里插入图片描述

这里的字符串没有加密,可以直接搜到,不过有点多,可以排除几个系统的类在跟过去,这样的话略显麻烦.
有更简单的方式,hook hsahmap的put方法或者base64的encodeToString都可以找到,因为表单的参数很喜欢这样添加,sign的结果里有+/=也像是base64过的.

function call(){
   
   
    Java.perform(function () {
   
   
        var hashMap = Java.use("java.util.HashMap");
        hashMap.put.implementation = function (a, b) {
   
   
            if (a != null && a.equals("sign"
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杨如画.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值