已root的安卓+XPosed+JustTrustMe破解ssl pinning

接下来详细,如何在已root的安卓中,借助XPosed和JustTrustMe,去实现绕开https证书校验,实现抓包https得到明文数据。

准备好已root的安卓

对于想要获取已root的安卓,有两种方式:

  • 对于安卓真机来说
    • 很久之前是很简单的事情
      • 随便买个安卓手机,都容易去root
    • 现在
      • 大多数手机品牌(小米,华为等)新买到的都是安卓新版本
        • 比如 Android 8.0, Android 9.0之类的
      • 且都很难root
        • 都要向官方申请,要等很长时间(以月为单位)
          • 申请先解锁BL=BootLoader
          • 然后才能root
        • 而且最后还未必通过
      • 结论就是:
        • 现在很难买到能root的新安卓手机了
    • 所以
      • 最终方案是:
        • 去淘宝买个二手的已root的安卓手机
          • 比如:400元左右的
            • 二手小米4
              • 型号:MI 4 LTE-CU
              • 安卓系统版本:Android 4.4.4
  • 对于安卓模拟器来说
    • Mac中也有很多安卓模拟器
      • 目前测试能用的有
        • 夜神Nox安卓模拟器
          • 模拟的是:Android 4.4.2
        • 网易MuMu安卓模拟器
          • 模拟的是:Android 6.0.1
      • 其他不能用,不好用的有
        • Andy:安装后无法正常运行
        • 天天模拟器:没有我要的Mac版
        • Genymotion:收费的,还要麻烦的去破解,暂时懒得继续试
        • BlueStacks:只支持Win,不支持Mac,且也比较老旧

如前所述,已root的安卓,可以选用:

  • 安卓真机
    • 二手小米4:Android 4.4.4
  • 安卓模拟器
    • 夜神模拟器:Android 4.4.2
    • 网易MuMu:Android 6.0.1

中的任何一个。

此处以Mac中的夜神模拟器为例去解释。

  • Mac版 夜神模拟器 Nox App Player
  • 已经root了
  • 模拟的是:Android 4.4.2

夜神模拟器

关于夜神的更多解释详见:

好用的安卓模拟器:夜神Nox

安装XPosed框架

在已root的安卓中,安卓XPosed框架。

根据XPosed官网解释,XPosed的版本和安卓版本需要对应,否则无法正常安装和使用:

  • Android 4.0.3 ~ Android 4.4
    • v2.7, v2.6.1XPosed installer
      • 支持:此处基于Android 4.4.2的夜神安卓模拟器
  • Android 5以上
    • 3.x版本的XPosed installer

下面介绍在夜神模拟器中安装XPosed的详细步骤:

下载v2.7的xposed installer的de.robv.android.xposed.installer_v33_36570c.apk

然后拖动到夜神模拟器中,即可自动安装,安装完毕后,可以在桌面上看到:

接着点击进入XPosed Installer,再去安装XPosed框架到安卓系统中:

点击 安装/更新,在弹框中对于 超级用户请求,设置永久记住选择

然后会去安装到系统中,再点击确定去重启:

重启后,看到XPosed框架中显示:

app_process 激活 58 程序自带 58
XposedBridge.jar  激活 54 程序自带 54

表示XPosed框架已激活,可以继续使用了。

XPosed框架

关于XPosed框架的更多解释详见:

强大的安卓破解辅助工具:XPosed框架

安装JustTrustMe

再去下载和安装JustTrustMe:

JustTrustMe的GitHub的release下载JustTrustMe.apk

像安装普通安卓apk一样,拖动进去,即可把JustTrustMe.apk安装到夜神模拟器中。

注意:此JustTrustMe没有app界面,所以安卓后,也没有打开之类的操作。而只能是,去XPosed中才能看到和激活此应用。

然后去XPosed中找到并勾选以激活JustTrustMe

然后记得重启XPosed:

Charles抓包可以看到https明文

然后再去用Charles抓包:

对于之前没有启动https的,抓包https看到的都是unknown的请求和数据是加密的乱码:

现在,即可绕开app的https的证书校验,从而可以看到明文数据了:

results matching ""

    No results matching ""