前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js逆向-猿人学(10-11)js和app协议破解

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

作者头像
李玺
发布2021-11-22 14:13:19
1K0
发布2021-11-22 14:13:19
举报
文章被收录于专栏:爬虫逆向案例

猿人学爬虫比赛第十题:《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。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 猿人学爬虫比赛第十题:《js混淆 重放攻击对抗》
  • 猿人学爬虫比赛第十一题:《app so文件协议破解》
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档