Crack App | 某新闻 app 参数 sn 加密逻辑分析

共 1923字,需浏览 4分钟

 ·

2022-05-17 10:55

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!


图源:网络

今日目标

aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzQwMzYz

爬虫相关的 Js 逆向越来越卷了,吓得我赶紧开始学 App 

抓包分析

今天分析的是这个 app 的首页信息流

使用的抓包组合是charles + postern 抓包如下

通过这个包可以看到返回了title还有新闻相关来源,参数中带有sn

这个参数的长度让人不得不怀疑是不是md5的加密,不过还是要看看加密的逻辑是不是

apk拖入jadx看看

70 + M 一下就反编译完了,一看就不对劲,jadx中啥都没有,应该是加壳了

查个壳看看

用的是腾讯加固,所以分析之前还是要脱壳看看

App 脱壳

app 脱壳的工具有很多,比如:

yang 神 frida_dump : https://github.com/lasting-yang/frida_dump

寒冰大大的 FART : https://github.com/hanbinglengyue/FART

目前世面上的脱壳工具还是很多的,今天我是用的是 BlackDex ,一款脱壳 App,先试试看能不能脱下来我们需要的内容

打开 BlackDex 然后再打开目标 App 就可以了

脱壳完成就会保存到指定的目录下

ES文件浏览器打开对应的路径

就看到脱好的dex

然后将这些个dex压缩好,剪切到的/sdcard中,然后用命令拉到 pc

adb pull /sdcard/xxx.zip [pc path]

然后再用jadx分析就好了

ps:压缩的 zip 直接拖到jadx里面就行了

加密参数定位与分析

拖到jadx里面编译之后检索sn=可以找到下面的逻辑

通过上面的逻辑大概可以知道valueOf是时间戳然后str是根据时间戳计算出来的结果

现在看aa的方法就在下面

这里对z做了一个判断,所以需要返回看下我们抓包里面有没有z代表的token,如果有的话这里就要带上str3也就是token一块计算,如果没有的话就不用

传入了strz之后就计算出一个str2,这个str2会进入b方法

跟进去看看b,这里的b的逻辑是一个md5,逻辑很清晰

所以真就是我们文章开头猜的那样,最后经过了一次md5计算

知道最后的逻辑是md5之后,就要看看md5的入参是什么,就要用到frida动态调试了

这个时候就有人问了,这些参数明明在上面的逻辑里面都能看到,为什么还要动态调试?

因为静态分析的结果不可信,动态调试输出的结果更加可信,所以要动态调试和静态调试相互印证

Frida hook 动态调试

用下面的 hook 代码

Java.perform(function ({
        var aaa = Java.use('类名');
        aaa.b.overload('java.lang.String').implementation = function (a{
        console.log("参数===>:"+a);
        var result = this.b(a);
        console.log("结果===>:"+result);
        return result;
    };
});

得到的结果如下

发现除了jadx里面能找到的参数之外,后面跟了一串乱码,这一串乱码是怎么来的?

回到jadx里面,可以看到就是NativeSecureparam.readMD5Key();返回的

现在需要分析NativeSecureparam.readMD5Key();是怎么计算出来的,通过这个方法的名字可以知道,这个字符串就是md5的盐值

so 分析

通过jadx可以知道这个方法是一个Native方法

来自libifeng_secure.so,用IDA打开对应的so文件

32 位的 so 报错JUMPOUT,所以直接偷懒用64

找到对应的函数,点进去,可以看到下面的逻辑

这里要修改一下参数类型,可以看到下面的逻辑

其实就是将一串字符赋值v2并返回,没有其他的操作,回到jadx再看下逻辑就知道其实sn的逻辑就是

md5(版本号 + proid + publishid + uid + loginid(未登录是空) + "" + st + so中的字符串)

md5 就不用算法还原了吧,大家应该都会。

以上就是今天的全部内容了~

公众号配套技术交流群,备注【咸鱼666】,入群交流

我是没有更新就在摸鱼的咸鱼

收到请回复~

我们下次再见。

对了,看完记得一键三连,这个对我真的很重要。

浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报