Crack App | yrx App 对抗赛第一题 Sign 算法的还原

2022-06-24 14:30:26 浏览数 (2)

图源:米游社

今日目标

aHR0cHM6Ly9hcHBtYXRjaC55dWFucmVueHVlLmNvbQ==

这次比赛果然是神仙打架,先是珍惜哥哥沙箱乱杀,然后是各路大佬神仙过招,我这菜鸡只能仰望了。

虽然没有参加,不过还是借了账号写写文章,瞻仰下各路大佬的风采(简称蹭蹭流量)

抓包分析

进入 App 第一题之后,可以抓到一下两个包,分别是timeapp1

time包返回时间戳

app1包返回页面上的数字

主要看app1包的请求

除了timepage之外还多了一个sign字段

这个sign就是分析的重点

加密定位与算法还原思路

取巧的方法

直接搜索关键词第一题直接跳到第一题的的逻辑里

然后可以看到sign的逻辑

直接点进sign看方法

frida hook看看参数和结果

代码语言:javascript复制
console.log("脚本加载成功");
function main(){
    Java.perform(function() {
        var clazz = Java.use('com.yuanrenxue.match2022.security.Sign');
        clazz.sign.implementation = function() {
            console.log('find sign <======>');
            console.log("arguments 0 <======>",JSON.stringify(arguments[0]))
            console.log("result <======>",clazz.sign.apply(this, arguments));
            return clazz.sign.apply(this, arguments);
        }
    });
}
setImmediate(main)

这个时候已知入参为

具体的组成page=[page num] time

再进入sign看下加密的逻辑

这就是sign的逻辑,其实就可以进行缺啥补啥了,扣出来java的代码,然后用python调用就行

这个是最方便快捷的,但是可能会卡在下面这个点

这里的OooO00o.OooO00o(-592855683721616730L)是个啥,跟进去看下

搁着套娃呢?

这要是扣岂不是人没了?

不过既然代码都找出来了,直接hook不就完事了呗。

hook 结果这里就是不变的,所以不用扣,直接固定xxxx就完事了

如果不会写,可以用jadx 1.3.5右键自动生成并复制frida片段

虽然说有时候会有一些小问题,但是cv起来很是丝滑

End.

以上就是全部的内容了,咱们下次再会~

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

收到请回复~

我们下次再见。

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

0 人点赞