js逆向-猿人学(10-11)js和app协议破解

猿人学爬虫比赛第十题:《js混淆 重放攻击对抗》

地址: http://match.yuanrenxue.com/match/10

在这里插入图片描述


开无痕,开控制台, debugger 右键选择 :never pause here ,先这样瞧一瞧

在这里插入图片描述

又是无限debugger,后面给页面卡蹦了,电脑内存卡满。

处理方法要么不debug要么用js-hook掉吧。然后从堆栈进去找m,拼代码。

不好意思,后面我就不看了,实在浪费时间。


猿人学爬虫比赛第十一题:《app so文件协议破解》

地址: http://match.yuanrenxue.com/match/11

在这里插入图片描述
我不知道这题是让干什么的,先下载下来安装一下。
在这里插入图片描述

先把网断了看看,输入数据是否能返回结果,如果是本地生成的,要到源码找找答案。

直接把模拟器wifi断开之后,查询返回的是网络异常。那么就抓包看一看接口。

在这里插入图片描述

但是我用charles试了后,没有拦截到数据。该接口并没有走http协议,那么换工具,用HttpAnalyzerStdV7。

换了之后还是没数据,我感觉被坑了。

应该是之前比赛时从接口提交验证,现在赛后改成了本地生成,但是网络异常检测还是存在的,

那么需要从app本身入手了,准备反编译下查看源码。


简单测试了一下,没壳
在这里插入图片描述

那就把apk直接解压下,发现只有一个dex,挺好的,用 dex2jar 反编译dex成jar包

在这里插入图片描述

然后用jd-gui打开,在MainActivity找到代码。

这里是输入数字和提交答案部分。根据代码可知
在这里插入图片描述
query是输入数字获取查询值的方法,然后该接口有sign签名,sign根据输入的数字生成。
在这里插入图片描述
接着往下看了下,submit和上面的query一样
在这里插入图片描述
下面代码是根据response进行验证的部分。正确的时候是0,错误或者异常是-1。
在这里插入图片描述
system.loadLibrary():用来装载动态链接库
在这里插入图片描述

private native String getSign(long paramLong);

可以确定方法名 getSign(long)

正常情况是需要慢慢找,继续分析下源码。我们根据题目要求,直接找so文件就可以。

有两个nativa.so ,没关系是和cpu相关的,我这里直接把第一个拖到IDA中。
在这里插入图片描述


然后在IDA VIEW中全局搜字符串getsign,搜到了一处 0006CF4D 。

在这里插入图片描述
按x找到一处引用
在这里插入图片描述
点击JNI_Onload,转成伪代码之后,
在这里插入图片描述

就到这里了


其实当知道了在哪个so文件中,可以使用其他方式来获取sign值,比如xposed和unidbg。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

考古学家lx(李玺)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值