首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Android

charles 抓其他应用的 https 请求 7.0 以后 有什么好方法吗?

  •  
  •   zzzzzzk · 319 天前 · 2573 次点击
    这是一个创建于 319 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 回复  |  直到 2019-01-21 12:41:36 +08:00
        1
    locoz   319 天前 via Android   ♥ 2
    之前写的,看看能不能帮上你。https://zhuanlan.zhihu.com/p/46433599
        2
    7lsu   319 天前
    是指抓不到吗?安卓 7.0+的话要配置系统证书才行
        3
    letitbesqzr   319 天前   ♥ 4
    我猜楼主是说的如何绕过 android 7.0+ 以后的 SSL Pinning 吧。

    比如微信 7.0 在 android 7.0+以上的版本,就会有 SSL Pinning, 只信任系统内置的证书。
    "客户端在收到服务器的证书后,对该证书进行强校验,验证该证书是不是客户端承认的证书,如果不是,则直接断开连接。"

    可以尝试以下几个方案:

    1. xposed 及其插件 JustTrustMe (可以配合 virtualxposed)
    JustTrustMe 是一个用来禁用、绕过 SSL 证书检查的基于 Xposed 模块。JustTrustMe 是将 APK 中所有用于校验 SSL 证书的 API 都进行了 Hook,从而绕过证书检查。

    2. 将证书安装到系统证书中(需要 root )
    系统证书的目录是:/system/etc/security/cacerts/
    每个证书的命名规则为:<Certificate_Hash>.<Number>
    Certificate_Hash 表示证书文件的 hash 值,Number 是为了防止证书文件的 hash 值一致而增加的后缀;
    证书的 hash 值可以由命令计算出来,在终端输入 openssl x509 -subject_hash_old -in <Certificate_File>,其中 Certificate_File 为证书路径,将证书重命名为 hash.0 放入系统证书目录,之后你就可以正常抓包了。

    3. VirtualApp (最简单的)
    大概的介绍,VirtualApp 是一个开源的 Android App 虚拟化引擎,允许在其中创建虚拟空间,并在这个虚拟空间中运行其他应用。
    我不是很清楚这个东西的原理,看介绍感觉应该是 VirtualApp 代理运行了程序,然而代理程序后并没有带 SSL Pinning 的功能?
    实际测试,VirtualApp 直接把微信 7.0 在里面运行,直接按照以前的方法就可以进行抓包。
        4
    raphael008   318 天前
    建议用备用手机号注册账号去抓,某些 APP 会针对破解 SSL Pinning 封账号的,比如:饿了么🤣
        5
    coolmint   318 天前
    @letitbesqzr 感谢,试试那个 xposed 模块去,方法 2 我之前直接用复制粘贴的形式失败了,但我同事成功了,看来还是我想的太简单了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1536 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 16:59 · PVG 00:59 · LAX 08:59 · JFK 11:59
    ♥ Do have faith in what you're doing.