今日目标
aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzEyMzY2NzE=
js 逆向卷不动了,开始入门 app
抓包分析
打开 app,然后检索python
关键词,可以找到下面的请求
其中signature
还有request_sign_q
是分析的重点
查壳与脱壳
现在基本 app 都会做加固防护,所以还是直接看看有没有壳
果然还是有壳的,是数字家的
还是用上次的办法,先脱壳试试,然后再抓包看请求
很好,BlackDex 直接挂逼了
掏出葫芦娃大佬的frida-dexdump
试试
项目地址:https://github.com/hluwa/frida-dexdump
使用方法也很简单,直接pip3 install frida-dexdump
就行了,具体的可以看看大佬的项目,记得star
r0env
自带了frida-dexdump
,所以先看看frida-dexdump
的帮助文档
每个项都做了通俗的标注,大佬太贴心了。
直接frida-dexdump -d
走起,这个选项很慢,没有FART
倒数 3 秒脱壳那么快,但是非常给力
# 准备工作 1、启动 frida server 2、启动 app 并保持 app 运行状态 3、启动 frida-dexdump
直接开整,然后就脱下来了,不指定输出路径的话默认会保存在frida-dexdump/[package name]
的路径下
全部打包太多了,所以我删掉了非常小的几个dex
,按照大小排序打包了最大的几个,拖到jadx
中分析
通过检索我们可以大致定位到signature
还有request_sign_q
的位置,接下来分析看看
加密参数分析
signature 参数分析
先看signature
,这个参数直接检索结果可太多了
所以试着通过同一个请求的其他参数辅助定位,这个和 js 逆向中分析参数的思维逻辑是相通的
然后就可以找到下面的位置了
这个位置是okhhtp3.Interceptor
和 js 逆向中遇到的拦截器一样也是在往请求中搞一些小动作
这里可以看到signature
经过了C26321sk1.a(url.url().toString(), hashMap)
的出结果
所以继续追进去看看a
方法都做了什么操作
进去之后看到这里取了appid、cv、platform、reqid、version
这些参数之后,还调用了一个a
方法
这里的a
方法返回的是context
,是 app 的上下文,和加密关系不大,主要的逻辑还是在C13259SignUtil.a
中
可以看看这个文章:http://gityuan.com/2017/04/09/android_context/
跟到C13259SignUtil.a
中,可以看到,方法里调用了signInternal
方法
这个方法是个native
方法,使用下方代码,hook
看下结果和参数
Java.perform(function () { var SignUtil = Java.use('类名'); SignUtil.signInternal.implementation = function (a,b) { console.log("参数 a ===>:"+ a); console.log("参数 b ===>:"+ b); var result = this.signInternal(a,b); console.log("结果===>:"+result); return result; }; });
可以看到参数a
是标识context
实例,b
参数是一串字符串符合我们前面的分析
这个so
我们之后分析
request_sign_q 参数分析
依旧是搜索定位,这个参数好定位得多
关键得函数是这个b
函数,继续跟进去分析b
函数
这个就比较简单啦,是一个AES
加密,同样的hook
一下看看
Java.perform(function () { var encryptUtil = Java.use('类名'); encryptUtil.b.implementation = function (a) { console.log("参数 a ===>:"+ a); var result = this.b(a); console.log("结果===>:"+result); return result; }; });
输出的内容比较多
这里就截了短的一个给大家看看,大家可以根据抓包来印证分析出入参
不是自写算法,大家可以试试看用python
还原一波
so 分析 - 没写,还不会
刚刚我们分析了signature
参数,但是只到调用的位置就没有继续了,因为接下来就是so
层的分析了
把对应的so
拖到IDA
里面瞅瞅,有点难,还是之后熟悉了unidbg
还原之后再来分析吧
End.
以上就是今天的全部内容了,又一次见识到自己的菜,继续学习了。