请问各位开发大佬,是怎么实现在安卓 7.0 及以上 https 解密抓包的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2owe
V2EX    Android

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

  •  
  •   2owe 2018-12-25 13:17:59 +08:00 20179 次点击
    这是一个创建于 2559 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    21 条回复    2018-12-27 16:29:11 +08:00
    mouyong
        1
    mouyong  
       2018-12-25 13:19:28 +08:00   1
    whistle
    2owe
        2
    2owe  
    OP
       2018-12-25 13:25:31 +08:00
    @mouyong #1

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

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

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

    在 VirtualApp 里抓不用 root
    yst
        7
    yst  
       2018-12-25 13:59:01 +08:00
    https://github.com/levyitay/AddSecurityExceptionAndroid
    这个脚本可以通过 apktools 修改配置文件然后重新打包
    一年前用 Nexus 6p 的时候用过,现在不知道还有用么 您可以试试
    2owe
        8
    2owe  
    OP
       2018-12-25 14:24:39 +08:00
    @yukiww233 赞啊,VirtualApp 是一个好思路,期待 http 转发能在电脑上看,手机界面太小了。。
    2owe
        9
    2owe  
    OP
       2018-12-25 14:26:30 +08:00
    @lzvezr 用专门的测试机也是个简单易行的好办法
    2owe
        10
    2owe  
    OP
       2018-12-25 14:29:08 +08:00
    @annoy1309
    有非自有 APP 的需求,比如在微信里打开页面,使用微信授权。微信自带的工具一个问题就是,有些请求可能是过快了??请求内容获取不到。
    wjm2038
        11
    wjm2038  
       2018-12-25 14:33:25 +08:00 via Android
    @lzvezr 求问 system 哪个文件夹是证书的
    lzvezr
        12
    lzvezr  
       2018-12-25 16:15:04 +08:00 via Android
    @wjm2038 /system/etc/security
    ghos
        13
    ghos  
       2018-12-25 17:41:22 +08:00
    @yukiww233 好用啊 已买专业版
    momocraft
        14
    momocraft  
       2018-12-25 17:42:51 +08:00
    不验证签名的 app 可以解包-改 manifest-重签名 搞定吗?
    yukiww233
        15
    yukiww233  
       2018-12-25 17:47:57 +08:00
    @ghos #13 gp 余额不够,没买专业版
    baymaxx
        16
    baymaxx  
       2018-12-25 19:42:55 +08:00
    这个问题要看引起的原因,如果仅仅是因为不能信任用户证书引起的,其实只借助 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 就可以抓包了。
    stop9125
        17
    stop9125  
       2018-12-25 19:53:58 +08:00
    模拟器,genymotion
    OrangeM21
        18
    OrangeM21  
       2018-12-26 05:41:25 +08:00 via Android
    上模拟器阿
    OrangeM21
        19
    OrangeM21  
       2018-12-26 05:41:48 +08:00 via Android
    用模拟器配合 wireshark
    jlhde123
        20
    jlhde123  
       2018-12-26 20:16:34 +08:00
    现在有些 app 都会检测是不是虚拟机,是虚拟机直接停止运行
    2owe
        21
    2owe  
    OP
       2018-12-27 16:29:11 +08:00
    @jlhde123 毕竟有些大厂爬虫就是用的这种方式……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2471 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:28 PVG 12:28 LAX 20:28 JFK 23:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86