工具:
1、fiddler:http和https调试抓包工具
2、jadx:安卓逆向工具
3、adb
抓取:
1、首先使用Fiddler来抓取手机抖音app这个包,具体配置的操作,网上有很多教程供大家参考。(拟器可以安装模Charles,配置并开启 SSL Proxy)
2、目前版本更新了很多防抓取的算法,大部分是封装在so中,这里有两个思路,第一个可以使用AndServer+Service 打造 Android 服务器实现 so 文件调用,第二个就是静态分析so文件了,第二个难度更大。解决x-gorgon后,预生成设备并注册,就可以调用想要的接口了。
3、目前抓取请求 Headers 中包含如下信息:
- Accept-Encoding: 固定值「gzip」
- X-SS-REQ-TICKET: 当前时间戳
- sdk-version: 固定值「1」
- Cookie: 个人登录信息,有效期很长
- x-tt-token: 个人登录信息,固定值
- X-Gorgon: 动态生成
- X-Khronos: 动态生成
- Host: 固定值
- Connection:固定值「Keep-Alive」
- User-Agent: 固定值「okhttp/3.10.0.1」
X-Gorgon、X-Khronos 计算
1、反编译「短视频」APK
反编译成功后,用关键词「X-Khronos」搜索全局代码,找到生成 「X-Khronos」的 Package Name、Method Name 和 Args。
2、逆向分析函数
使用相关逆向工具,动态代理签名函数,添加相关参数的日志打印逻辑。经分析,函数输入参数有两个:
- URL:整个 API 请求地址
- Headers:包含
cookie
,accept-encoding
,sdk-version
,user-agent
,x-tt-token
,x-ss-req-ticket