看到很多人问,所以抽空写了这篇帖子。
对于 App 数据包逆向分析来说,第一步也就是最重要的一步就是抓到完整的数据包。在国内 App 抓包方案中成熟的有很多也很好用,经典的就是 Fiddler 、 Charles、Burpsuite等等。但在分析外网 App 时,通过这些方案进行抓包都会面临一个问题,没梯子,抓不到包。本文将介绍如何使用 Charles + Clash + Postern 这三个工具来捕获和分析外网 App 的网络数据包。
Charles 任意本版
Postern 任意本版
Clash 任意版本,需科学
科学后,查看常规端口,记住该端口,再将允许局域网代理打开,如不打开局域网代理,手机无法接入。
Android 7之前把 CA 证书安装到用户证书下即可,但 Android 7 之后的版本只有系统证书才能被信任,所以需要将 CA 证书安装到系统证书下。
部分版本可以通过 Magisk Move Certificates 模块达到此效果,该模块会把用户安装在信任凭证中属于用户部分的证书在重启时移入系统证书目录下,但在部分系统中安装的 CA 证书在用户凭证下,该模块失效。
在电脑中将 Charles 的证书(.pem格式)导出到本地路径,名称为charles.pem。
计算证书 hash 值并修改名称:
将首行 e9352f7c 的 8 位的 hash 值进行复制,拷贝并命名证书:
证书导入到手机,执行以下adb命令将证书导入到/system/etc/security/cacerts/
系统设置 → 更多设置 → 系统安全 → 加密与凭证 → 信任的凭据中可查看
Proxy->Proxy Settings 进行如下设置:
Proxy->External Proxy Settings 进行如下设置:
手机连接与电脑相同 WiFi 对其进行代理,IP 为对应的主机 IP,端口为 Charles HTTP Proxy 所配置的端口。
将代理设置好后,在手机上对 google.com 进行访问,看 Charles 是否能抓到相关数据包,若能则成功。
Postern 的作用是代理转发,Vpx 代理是处于网络层的,可以抓到更多的数据包。
服务器名称:可任意填写
服务器地址:主机 IP 地址就是服务器地址,我这是 172.20.10.5。
服务器端口:可自行在 Charles 中设置,参考:Charles的配置,默认为8889,可更改。
代理类型:SOCKS5
用户名 & 密码:填 | 不填 都可
匹配类型:匹配所有地址
动作:通过代理连接
代理/代理组:上面设置的:服务器名称 - 服务器地址:服务器端口,例:test - 172.20.10.5:16666
上述内容都配置好后,点击开启 Vpx,会看到手机顶部会有个钥匙的标志或 Vpx 字样,不同品牌、不同版本手机会有所不同:
开启后,在手机上对 google.com 进行访问,看 Charles 是否能抓到相关数据包,若能则成功:
抓包的方法有很多,找到适合自己的就好了,祝大家都能抓到自己想要的包。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2024-7-18 14:08
被行简编辑
,原因: done