type
status
date
slug
summary
tags
category
icon
password
Property
Nov 8, 2022 10:36 AM
记录一下通过逆向某APP,通过自行部署腾讯云函数 (SCF) ,包装白嫖官方 API 的过程。
抓包
众所周知,android 7.0 以上在APP未信任user域证书的前提下,是无法抓取 https 请求的。
鉴于测试机系统版本为 android 11,且MIUI 的 BootLoader 解锁流程越来越严苛,借用
太极实现了JustTrustMe 的安装。太极安装,导入 APP,安装 JustTrustMe 模块的过程不表。
值得注意的是,安装
.4 版本才顺利实现 https 请求的抓取。通过接口抓取,发现接口请求参数 sign 的计算方式是最难猜到的。只能通过反编译源码获取计算方式。Jadx 反编译
通过
jadx-gui打开目标 APP,搜索关键字sign=可以找到对应的验签计算流程,通过阅读反编译的代码,大概可以确认参数重排,拼接magic word,利用 MD5 算法计算字符串摘要。编写对应的验签算法
动态调试
到这一步,只能通过对比目标 APP 的参与摘要的字符串与自己拼接的字符串差别,才能确定上一步验签计算失败的原因。
Android Studio配合
smalidea-0.06插件在满足前提的情况下,可以直接进行动态调试。出于安全考虑,Android系统并不允许应用被随意调试,官方文档称需要满足二者之一的条件。1\.App的AndroidManifest.xml中Application标签必选包含属性android:debuggable=“true”;2\.default.prop中ro.debuggable的值为1;
- 通过
apktool反编译目标 APP,添加android:debuggable=“true”属性后重打包,签名后安装重打包的 APP。很可惜安装失败了。
- Mac 上安装
网易mumu模拟器,在模拟器上调试目标 APP。成功。
收尾
到这一步,整个逆向基本完成 90% 了,通过对比字符串差别,发现自己拼接的字符串被主动截取了最后一位 卷毛狒狒石锤
云函数编写
编写云函数,保证入参与官方公开 API 一致,这样就可以白嫖官方及其他开发者提供的工具。