猿人学安卓逆向第十题

声明

写这篇文章的时候,作者还是个逆向小白,而且是边学这道题边做逆向顺便写下这篇文章做记录。

抓包分析

首先打开小黄鸟进行抓包分析,发现app上没有数据返回img

暂时不知道什么原因,那就抓包套餐给他上一遍呗,先导入一个JustTrustMe模块,发现可以正常抓包了。
我这里用的是平头哥的JustTrustMe模块,用xposed的JustTrustMe模块也行,再或者是Java层通杀抓包脚本也能完成数据的抓取。
目标数据包的请求信息:img

代码分析

打开jadx导入要逆向的app,搜索关键词“api/app10”,并没有返回数据。所幸,这道题给了提示信息"rn"

img

那rn是啥呢,因为之前我也没接触过,所以百度了一下,发现有一个帖子对这篇文章有描述,如果你们没听过React Native,可以看一下这个大佬的帖子。http://davidblus.top/wordpress/index.php/2018/10/08/android_react_native_ying_yong_ni_xiang_fen_xi_chu_tan/
我简单的用自己的大白话讲一下,就是一段js代码,通过c++层时翻译成native代码,最终被安卓所使用,而这段js代码保存在Apk文件中assets目录中的index.android.bundle文件。
这是第一种确定方法,靠练习平台给提示,才能意识到。
还有一种办法就是通过获取当前活动界面入手。q佬教的是用adb命令获取安卓中当前的活动界面,我看网上也是那么弄的,命令是这个

adb shell dumpsys activity | findstr "mCurrentFocus"

但是我属于非洲人,脸黑的一批,死活没有这个显示,还有其他的版本,但是不放心,怕取错了。
所以下载一个autojs,用autojs来取当前活动activity,发现是这个com.yuanrenxue.challenge.activity.RNActivity。img
通过jadx,根据这个活动目录,跟进一下。img
咋判断这是用了React Native技术嘞,这技术由facebook开发的,所以导包环节肯定有facebook和react关键字img
既然确认了是用了这门技术,那就去找Apk文件中assets目录中的index.android.bundle文件。

直接在电脑上把app解压即可,顺着目录找即可找到加密文件img
因为他里面只是js代码,所以你咋打开就行,我这里直接在pycharm中打开,因为代码是压缩的,所以找个工具格式化一下即可。
我这里常用的是这个工具网站:https://spidertools.cn/#/formatJS
搜索关键词 “api/app10”,定位到了,皆大欢喜,接下来的操作就是扣js加密代码了img

扣扣js

因为这一段代码没有啥混淆,各个参数的作用很明确,所以看起来比实际见的app要简单的多。img
有一句话将正向开发的高度决定逆向开发的高度,我觉得说的也不赖,就比如这段js如果不是看视频,我很难能扣出来。img
原方法入口是这样的img
我的想法是把他简化成我能理解的一个函数去调用,最后变成了这样。img
然后就是构建网络请求,本题完。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

干瘪的兔子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值