一,基于 Flutter 框架
Flutter 是一个跨平台的框架,开发语法为 Javascript,有些 app 基于它来进行应用开发,网络请求的传输使用的就不再是传统的协议如 https ,此时再用 Charles 等工具就无法抓包了。
如何判断 app 是否是基于 Flutter 开发的?将 apk 解压后,在 lib 目录看是否有 libflutter.so 文件:
示例 app:大件运输 v2.5.1
接下来介绍遇到这种情况时,该如何抓包:
- 逆向 libflutter.so,找到指定方法的偏移量
- 修改 hook 脚本的偏移量后,运行 hook 脚本
- SocketDroid 进行 socket5 转发
2.1 寻找编译量
利用 IDA 反编译 libflutter.os【一定区分好32位和64位】,由关键字进行搜索