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

请问各位开发大佬,是怎么实现在安卓 7.0 及以上 https 解密抓包的?

  •  
  •   2owe · 147 天前 · 3287 次点击
    这是一个创建于 147 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:Android 7.0 ( API 24 )及以上,APP 默认不信任用户域的证书。

    参考链接:网络安全性配置,https://developer.android.com/training/articles/security-config

    那么直接信任 Charles 的证书已经不能满足要求了。

    请问各位老司机,需要抓包 https 的请求,有什么最佳实践吗?

    21 回复  |  直到 2018-12-27 16:29:11 +08:00
        1
    mouyong   147 天前   ♥ 1
    whistle
        2
    2owe   147 天前
    @mouyong #1

    https://github.com/avwo/whistle/blob/master/docs/zh/questions.md

    看了一下常见问题,这个应用也是通过信任证书实现的,无法解决上面的问题。
        3
    annoy1309   147 天前
    如果是自有 APP,Google 提供一个 debug 模式发布 app 的印象中,这个模式下,修改 trust-anchors 可以让 app 默认可以信任用户域
        4
    annoy1309   147 天前   ♥ 1
    不是自有的话,xposed 吧。我记得有 JustTrustMe 一个插件
        5
    lzvezr   147 天前 via Android   ♥ 1
    不信任用户证书好办,root 以后把证书丢到 system 里就可以了
    重点是 ssl-pinning,目前除了使用 xposed 以为,没什么好方法,所以 xposed 没有支持到的 9.0 系统无效,楼上提到的插件之前在 8.1 测试无效,不知道更新适配没有

    所以我的解决方法就是使用 6.0 系统,因为 ssl-pinning 涉及到很多证书验证的东西,很少自己实现的,而安卓在 7.0 才提供了原生解决方案,所以用 6.0 抓 HTTPS 轻松很多
        6
    yukiww233   147 天前   ♥ 2
    https://juejin.im/post/5c1e370ae51d45374272696e

    在 VirtualApp 里抓不用 root
        7
    yst   147 天前
    https://github.com/levyitay/AddSecurityExceptionAndroid
    这个脚本可以通过 apktools 修改配置文件然后重新打包
    一年前用 Nexus 6p 的时候用过,现在不知道还有用么 您可以试试
        8
    2owe   147 天前
    @yukiww233 赞啊,VirtualApp 是一个好思路,期待 http 转发——能在电脑上看,手机界面太小了。。
        9
    2owe   147 天前
    @lzvezr 用专门的测试机也是个简单易行的好办法
        10
    2owe   147 天前
    @annoy1309
    有非自有 APP 的需求,比如在微信里打开页面,使用微信授权。微信自带的工具一个问题就是,有些请求可能是过快了??请求内容获取不到。
        11
    wjm2038   147 天前 via Android
    @lzvezr 求问 system 哪个文件夹是证书的
        12
    lzvezr   147 天前 via Android
    @wjm2038 /system/etc/security
        13
    ghos   147 天前
    @yukiww233 好用啊 已买专业版
        14
    momocraft   147 天前
    不验证签名的 app 可以解包-改 manifest-重签名 搞定吗?
        15
    yukiww233   147 天前
    @ghos #13 gp 余额不够,没买专业版
        16
    baymaxx   147 天前
    这个问题要看引起的原因,如果仅仅是因为不能信任用户证书引起的,其实只借助 VirtualApp 和 Charles 就能解决,
    1. 首先正常配置 Charles https 抓包,包括证书安装啥的
    2. 在 VA 里面配置

    <base-config cleartextTrafficPermitted="true">
    <trust-anchors>
    <certificates src="system" />
    <certificates src="user" /> <!--主要这行-->
    </trust-anchors>
    </base-config>

    3. 然后运行 VA,然后把你要抓包的 app 在 va 里面运行,通过 Charles 就可以抓包了。
        17
    stop9125   147 天前
    模拟器,genymotion
        18
    OrangeM21   146 天前 via Android
    上模拟器阿
        19
    OrangeM21   146 天前 via Android
    用模拟器配合 wireshark
        20
    jlhde123   146 天前
    现在有些 app 都会检测是不是虚拟机,是虚拟机直接停止运行
        21
    2owe   145 天前
    @jlhde123 毕竟有些大厂爬虫就是用的这种方式……
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   976 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 18:50 · PVG 02:50 · LAX 11:50 · JFK 14:50
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1