上期分析了某幸咖啡,是一个白盒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"

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





