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

共 1249字,需浏览 3分钟

 ·

2022-05-21 15:27

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

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


图源:米游社

今日目标

aHR0cHM6Ly9hcHBtYXRjaC55dWFucmVueHVlLmNvbQ==

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

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

抓包分析

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

time包返回时间戳

app1包返回页面上的数字

主要看app1包的请求

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

这个sign就是分析的重点

加密定位与算法还原思路

取巧的方法

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

然后可以看到sign的逻辑

直接点进sign看方法

frida hook看看参数和结果

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(thisarguments));
            return clazz.sign.apply(thisarguments);
        }
    });
}
setImmediate(main)

这个时候已知入参为

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

再进入sign看下加密的逻辑

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

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

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

搁着套娃呢?

这要是扣岂不是人没了?

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

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

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

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

End.

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

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

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

收到请回复~

我们下次再见。

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

浏览 52
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报