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

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

  •  
  •   zzzzzzk · 2019-01-20 18:12:08 +08:00 · 7098 次点击
    这是一个创建于 1893 天前的主题,其中的信息可能已经有所发展或是发生改变。
    8 条回复    2022-11-27 15:59:08 +08:00
    locoz
        1
    locoz  
       2019-01-20 20:29:56 +08:00 via Android   ❤️ 2
    之前写的,看看能不能帮上你。https://zhuanlan.zhihu.com/p/46433599
    7lsu
        2
    7lsu  
       2019-01-20 20:51:45 +08:00
    是指抓不到吗?安卓 7.0+的话要配置系统证书才行
    letitbesqzr
        3
    letitbesqzr  
       2019-01-20 22:23:27 +08:00   ❤️ 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 在里面运行,直接按照以前的方法就可以进行抓包。
    raphael008
        4
    raphael008  
       2019-01-21 12:38:23 +08:00
    建议用备用手机号注册账号去抓,某些 APP 会针对破解 SSL Pinning 封账号的,比如:饿了么🤣
    coolmint
        5
    coolmint  
       2019-01-21 12:41:36 +08:00
    @letitbesqzr 感谢,试试那个 xposed 模块去,方法 2 我之前直接用复制粘贴的形式失败了,但我同事成功了,看来还是我想的太简单了
    iPhone11
        6
    iPhone11  
       2022-11-26 18:23:27 +08:00
    @locoz 大佬在知乎看到你回答抓包相关问题有说到 "知道原理之后其实解决办法也很容易就能想到,就是你可以直接拆包找到客户端证书然后给代理服务器用上,这样你这边发出去的包自然就会是符合要求的了",请问这个"客户端证书然后给代理服务器用上"这个怎么操作呢,我 Fiddler 和 charles 都反复查看 ssl 证书相关都是默认生成的,无法自定义或导入拆包找到客户端的证书

    我已经通过 Xposed 模块。JustTrustMe 能抓到大部分数据但是登录会不成功,已成功提取 app 的证书 就是不知道如何在抓包软件中使用
    locoz
        7
    locoz  
       2022-11-27 15:56:04 +08:00
    @iPhone11 #6 现在有更底层更方便的方法了,可以搜索“eCapture”了解一下。
    locoz
        8
    locoz  
       2022-11-27 15:59:08 +08:00
    @iPhone11 #6 老方法的话,具体要看抓包软件怎么设置,Fiddler 和 Charles 都是可以的,具体可以搜索工具名+“更改证书”或者“导入证书”之类的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4981 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:47 · PVG 17:47 · LAX 02:47 · JFK 05:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.