V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
wuyuanyi135
V2EX  ›  全球工单系统

微信最新版本 6.5.16 后台偷跑流量&抓包分析;请鹅企有关部门解释一下原因

  •  
  •   wuyuanyi135 · 2017-11-08 10:15:27 +08:00 · 15539 次点击
    这是一个创建于 2576 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今年 9 月我换了加拿大 Fido 合约的 Galaxy S8,发现微信的流量一直不正确: 后台流量非常高,并且和微信自己记录下来的流量完全不吻合




    平均每一天微信在后台流量会跑 60-100M。多次反馈无果后只好关闭了微信的后台数据访问。于是乎,流量不跑了,消息也收不到了。可悲的企鹅没有用 GCM。

    前两天坐巴士的时候没有 WIFI,于是用 Google Play 上的 Packet Capture 抓下了所有包,不一会就看到了一个微信的 18MB 的后台包。


    包的 pcap 已经导出,我最近有空会去分析微信下载那么大东西的企图。由于可能涉及个人信息 pcap 包就不分享了。如果微信开发有需要请联系我。
    ==========================下面是简要的请求信息===========================
    POST 203.205.150.89/downloadstorage
    body 含有字段:weixinnum; seq; clientversion; clientostype(操作系统); authkey; nettype; acceptdupack; safeproto; filetype; fileid; lastip; lastretcode; ipseq; wxmsgflag; wxautostart; rangestart; rangeend
    猜测: 该操作向服务器请求下载一些 bulk 文件 比如版本更新 图片库等。客户端通过改变 fileid,range 向服务器分片请求了这些内容。每个包请求 64K 的数据。 请求返回的内容是加密或二进制包我暂时没有仔细解析以了解它的意图。


    可悲的是,暂时我也没有什么能做的。我的手机没有 root,没法改 hosts 之类的把跑流量的请求给 ban 掉。不知道装低版本微信会不会有用。
    希望有类似经历的人来分享一下解决方案或者请企鹅官方重视一下这个问题,我相信你们应该不是在 DDOS 自己。
    第 1 条附言  ·  2017-11-09 10:09:05 +08:00
    微信开发们已经联系上我了。他们表示已经修复问题并且今天会推新版本。谢谢来讨论的大家和高效的开发人员们!
    第 2 条附言  ·  2017-11-13 02:48:57 +08:00
    安装最新 beta 19 版本后 bug 已经修复
    77 条回复    2017-11-09 09:20:58 +08:00
    jyf
        1
    jyf  
       2017-11-08 10:22:55 +08:00
    18m 的是什么? 小程序插件?
    liuzuo
        2
    liuzuo  
       2017-11-08 10:24:13 +08:00
    最大的可能是热更新吧
    BOGU
        3
    BOGU  
       2017-11-08 10:26:05 +08:00
    应该是一些热更新
    boyxupers
        4
    boyxupers  
       2017-11-08 10:28:09 +08:00 via iPhone
    没有 wifi 的情况下 18M 热更新?
    wuyuanyi135
        5
    wuyuanyi135  
    OP
       2017-11-08 10:28:45 +08:00
    感谢楼上们的回复:
    请问热更新是什么? 一般这种更新类的不是应该默认只在 WIFI 下开启吗。我翻遍了微信找不到任何相关的开关。
    alex321
        6
    alex321  
       2017-11-08 10:29:15 +08:00   ❤️ 1
    热更新了小程序?
    wuyuanyi135
        7
    wuyuanyi135  
    OP
       2017-11-08 10:29:53 +08:00
    @boyxupers 恩,而且非常频繁,平均每天能出现一次。热更新难道不由系统代理提示 APK 更新吗?我没有 root 我想微信没有这样的权限
    est
        8
    est  
       2017-11-08 10:29:57 +08:00
    微信的流量统计就是摆设 +1

    话说大家推荐一款 android 防火墙吧。
    JAVAER
        9
    JAVAER  
       2017-11-08 10:31:14 +08:00 via Android
    你好,楼主,像你这种加密的,一般怎么解析
    wuyuanyi135
        10
    wuyuanyi135  
    OP
       2017-11-08 10:31:21 +08:00
    @alex321 请问什么是小程序?我微信从没用过那些功能
    dong3580
        11
    dong3580  
       2017-11-08 10:32:56 +08:00   ❤️ 2
    @est
    NetGuard , XPrivacy 作者开发的,
    wuyuanyi135
        12
    wuyuanyi135  
    OP
       2017-11-08 10:33:15 +08:00
    @JAVAER 挺难,我会试图改变一下请求中的明文字段看看发回来的内容有没有改变。我之前也试过 apktool 逆向微信去查找一下类似的字符串但是无果。如果这个事情需要进展我可能会试图追踪一下,不过感觉太瞎折腾了。
    est
        13
    est  
       2017-11-08 10:33:49 +08:00
    @dong3580 已安装。
    artandlol
        14
    artandlol  
       2017-11-08 10:34:58 +08:00 via iPhone
    请准备好一个亿
    wuyuanyi135
        15
    wuyuanyi135  
    OP
       2017-11-08 10:35:04 +08:00
    原来在 发现 - 小程序 里。。我有两个东西 一个微信投票,一个什么心理测试估计是上次点朋友圈的时候加的。已经删除这两个看看会不会有所改善。但是我估计不会是这个问题:
    1. 无 Wifi 的话怎么不判断停止更新
    2. 小程序居然每天都会更新吗
    wuyuanyi135
        16
    wuyuanyi135  
    OP
       2017-11-08 10:38:27 +08:00
    谢谢大家的回复、我发现 V2EX 也有人反馈过类似的问题
    https://www.v2ex.com/t/255209
    https://www.v2ex.com/t/403723
    等等

    希望企鹅解决一下这种问题。微信现在更新送 bug 的行为越来越频繁了。
    wuyuanyi135
        17
    wuyuanyi135  
    OP
       2017-11-08 10:39:18 +08:00
    @dong3580 多谢,这种 non-root 的防火墙是不是一般都依赖 VPN 工作的。我有好多 app 开启本地 VPN 后就无法工作。。挺蛋疼的
    learnshare
        18
    learnshare  
       2017-11-08 10:39:48 +08:00
    之前某个版本的一加天气公开版,会频繁地下载 6.x MB 左右的数据包,导致手机严重发热掉电,还花了几十块流量费。
    后来官方也没有什么答复,看数据大小可能是在下载更新,然而是不断重复下载
    wuyuanyi135
        19
    wuyuanyi135  
    OP
       2017-11-08 10:41:30 +08:00
    @learnshare 能反馈给 google play 之类的来督促他们改正或者处罚吗。 (然而估计并不吃这一套,更何况还是 q 外的谷歌 play )
    alex321
        20
    alex321  
       2017-11-08 10:42:20 +08:00
    @wuyuanyi135 如 #15,可以看这里: http://www.ifanr.com/773209。
    现在小程序已经开放内嵌页面了,赶脚已经变成了所谓的应用号,和服务号关系越来越扯不清,除了入口。
    wuyuanyi135
        21
    wuyuanyi135  
    OP
       2017-11-08 10:44:15 +08:00
    @alex321 多谢解答。这种小程序是依托本地运行而不是一个常规的 web app ?在不访问的情况下也有必要更新吗?
    alex321
        22
    alex321  
       2017-11-08 10:51:52 +08:00   ❤️ 1
    @wuyuanyi135 按照张小龙的说法是用完即走,按说更新推送是小程序打开操作时进行更新。实际按照我这边看到的小程序能力和发布的几个版本的情况来看,以及微信公众号菜单功能推送机制,这个应该也可能是存在后台更新的。其实除了小程序之外,内置的钱包功能中的第三方服务也属于同样性质。

    热更新问题同样还体现在之前微众银行的那个迷之数据包。
    wuyuanyi135
        23
    wuyuanyi135  
    OP
       2017-11-08 10:54:14 +08:00
    @alex321 多谢解答!
    icedx
        24
    icedx  
       2017-11-08 11:03:07 +08:00
    反复热更新吧...
    装个 Xposed 可以解决
    (只是装个 Xposed 不用什么插件 微信探测到 Xposed 后会关闭热更新
    wuyuanyi135
        25
    wuyuanyi135  
    OP
       2017-11-08 11:05:28 +08:00
    @icedx 哈哈做贼心虚。可惜我还不想 root :( 而且 Android 7 应该还没有 Exposed Framework 吧?
    linxy
        26
    linxy  
       2017-11-08 11:11:29 +08:00
    @wuyuanyi135 有了 比较完美的能跑了
    binjoo
        27
    binjoo  
       2017-11-08 11:17:46 +08:00
    LZ,paly 里的也不是走的 GCM 吗?
    icedx
        28
    icedx  
       2017-11-08 11:21:49 +08:00   ❤️ 1
    @wuyuanyi135 #25
    有的有的
    不是做贼心虚
    是 Tinker 不兼容 Xposed
    wuyuanyi135
        29
    wuyuanyi135  
    OP
       2017-11-08 11:24:37 +08:00
    @binjoo 啊不好意思我不清楚,但是它明显比其他 GCM 的应用慢得多,而且经常在后台呆久了就显示无法连接服务器,切回来收到一大堆的消息。 在抓包来看,它也频繁发送心跳(猜测),所以我不确定它是否用了 GCM。
    wuyuanyi135
        30
    wuyuanyi135  
    OP
       2017-11-08 11:24:53 +08:00
    @icedx 我去了解一下,谢谢!
    wuyuanyi135
        31
    wuyuanyi135  
    OP
       2017-11-08 11:25:11 +08:00
    @linxy 好我去找找看,非常感谢~
    ty89
        32
    ty89  
       2017-11-08 11:38:46 +08:00
    应该是热更新吧,现在手机屏幕越来越大,对应的图片资源也越来越大
    wuyuanyi135
        33
    wuyuanyi135  
    OP
       2017-11-08 11:39:59 +08:00
    @ty89 好多人都说到热更新,这个在数据网络下进行时预期之中的吗
    limard
        34
    limard  
       2017-11-08 11:50:03 +08:00
    同版本,p 下的,暂时没发现这个问题
    wuyuanyi135
        35
    wuyuanyi135  
    OP
       2017-11-08 11:54:07 +08:00
    @limard 我重装试试
    ltux
        36
    ltux  
       2017-11-08 12:03:16 +08:00 via Android
    你都说是后台了,还叫“偷”跑,这让人很为难啊!

    楼上一堆瞎猜的,瞎猜有什么用呦。楼主只说自己抓了个包,又不给我们包内容,那就请你自己分析好了再来扯。远程凭空 debug 是不可能完成的任务。
    est
        37
    est  
       2017-11-08 12:11:23 +08:00
    @dong3580 想按照 ip 进行屏蔽。发现还得付费。。蛋痛哟。。
    php01
        38
    php01  
       2017-11-08 12:18:38 +08:00
    用 telegram 吧,都干这行的,你还能信啥
    wuyuanyi135
        39
    wuyuanyi135  
    OP
       2017-11-08 12:40:09 +08:00
    @ltux 你好,不提供包是因为里面有 authkey 之类的个人信息,我不确定这些信息泄露会不会对我有影响,如果你有兴趣我可以分享给你抓到的包。
    wuyuanyi135
        40
    wuyuanyi135  
    OP
       2017-11-08 12:40:53 +08:00
    @php01 能用的替代软件很多。但是用什么软件更多的其实取决于别人。。
    RagnarokStack
        41
    RagnarokStack  
       2017-11-08 12:46:04 +08:00
    Hi,我是微信这边的 android 开发,楼主可以方便私信发下微信号给我吗,我们一起来看下是什么问题
    dong3580
        42
    dong3580  
       2017-11-08 13:29:53 +08:00
    @est
    看日志也得付费,郁闷,
    xia0pia0
        43
    xia0pia0  
       2017-11-08 13:44:17 +08:00
    腾讯有个开源项目 tinker,热更新,就是比较 Hack 的方式,不需要重新安装应用就能更新,可以绕过应用市场,有利也有弊吧。
    HarrisonZ
        44
    HarrisonZ  
       2017-11-08 13:53:26 +08:00
    这是腾讯用来做网络测试,众测,用来监控腾讯自己服务的健康情况的
    peng1994
        45
    peng1994  
       2017-11-08 13:58:25 +08:00 via Android
    @RagnarokStack 我是韩版 note8,微信语音调成仅听筒之后声音特别大,而且不能用音量键调节,目前有解决办法吗?
    opengps
        46
    opengps  
       2017-11-08 14:00:18 +08:00
    微信自动下载图片占用不少流量
    morethansean
        47
    morethansean  
       2017-11-08 14:01:32 +08:00
    @binjoo #27
    你可以理解为微信不走 GCM,只是一个摆设。
    7654
        48
    7654  
       2017-11-08 14:03:09 +08:00
    @peng1994 #45
    @RagnarokStack #41 原来我一直以为只有 flyme 才有这个问题,听筒声音超大,并且不能调整
    还有插入耳机,语音视频聊天声音也会从扬声器出来
    iVeego
        49
    iVeego  
       2017-11-08 14:22:34 +08:00
    @dong3580 #11 感谢推荐。我这里说下,这个 APP 会在本地建立一个 VPN 服务,和影梭冲突。如果有 24h 翻墙需求的人,这个 APP 不适用。
    honeycomb
        50
    honeycomb  
       2017-11-08 14:23:55 +08:00 via Android
    有一个简单的办法,通过 appops 把微信的 run_in_background 设置为 ignore 即可
    jy02201949
        51
    jy02201949  
       2017-11-08 14:30:31 +08:00
    google play 下的也没有 GCM ?我记得是有的啊
    honeycomb
        52
    honeycomb  
       2017-11-08 14:30:44 +08:00   ❤️ 1
    @liuzuo
    @BOGU
    @alex321

    @wuyuanyi135
    “热更新难道不由系统代理提示 APK 更新吗?我没有 root 我想微信没有这样的权限”
    热更新是一个通过 Android 本身的 DexClassLoader 之类的洞,Google 似乎不打算在代码上修补它,仅是在 play store 的开发者协议规定了不允许热更新。

    有一种说法认为 Google Play 自己就有热更新的部分,如 SafetyNet Attestation 组件

    “这种 non-root 的防火墙是不是一般都依赖 VPN 工作的”
    是的

    微信在有些情况下会通过 GCM 拉起

    @RagnarokStack
    所以微信在 play 渠道的版本是停用了热更新,但保留 tinker 框架的代码?
    baoanlol
        53
    baoanlol  
       2017-11-08 14:35:11 +08:00
    @jy02201949

    微信现在有 GCM,但是只是个摆设,不是标准的。微信的操作方式很无耻,是通过 GCM 尝试去拉起自己的 app,然后通过自己的 app 去拉取信息。。。

    在安卓的生态下,又不得不用微信,只能常驻后台。。。谁让微信流氓,mipush,华为 push,魅族 push 全部都不支持
    jy02201949
        54
    jy02201949  
       2017-11-08 14:38:09 +08:00
    @baoanlol #53 玩的溜,国家不是说要统一消息推送的渠道吗,要是强制的话马老板家的东西也不得不加入其中吧
    mikefy
        55
    mikefy  
       2017-11-08 14:39:59 +08:00
    我这边也提示,微信自己显示的就几兆,系统的流量统计里面显示的是 17M.....可能微信统计的只有聊天的流量,不包括朋友圈之类,估计连聊天图片都不计算在内
    baoanlol
        56
    baoanlol  
       2017-11-08 14:52:27 +08:00
    @jy02201949 感觉这个要搞出来有点久远。。(手动笑哭
    houskii
        57
    houskii  
       2017-11-08 15:50:10 +08:00
    这种 hotfix 相关的,直接扔给 play 商店让他下架啊 /斜眼笑
    pq
        58
    pq  
       2017-11-08 16:02:43 +08:00
    我以前也是这么爱较真,后来我发现,与其与国产流氓们这么费心折腾,还不如弄个完全不放敏感资料的旧手机来玩,它爱咋流氓就咋流氓,反正不装手机卡,只用 wifi,通讯录也是空或都乱七八糟的。。。。
    EricCartman
        59
    EricCartman  
       2017-11-08 16:06:28 +08:00
    在海外就避免用微信了 telegram 多好
    JAVAER
        60
    JAVAER  
       2017-11-08 16:26:44 +08:00 via Android
    @wuyuanyi135 我目前只想到,逆向,然后找到微信里面专门解析的代码,这个应该可以吧?
    twocity
        61
    twocity  
       2017-11-08 16:33:04 +08:00
    微信热更新 Tinker 打出来的更新包是很小的,18M 的话应该不是
    hantsy
        62
    hantsy  
       2017-11-08 16:36:09 +08:00
    @pq 这个正解。。。对付这些流氓已经没办法了。Google Play 大法在中国不能用。
    599316527
        63
    599316527  
       2017-11-08 17:38:54 +08:00
    Google Play 上的版本有 gcm
    honeycomb
        64
    honeycomb  
       2017-11-08 17:48:23 +08:00 via Android
    @hantsy Google play 可以使用的
    boyxupers
        65
    boyxupers  
       2017-11-08 18:42:56 +08:00 via iPhone
    @alex321 请问哪里能看到内嵌网页?
    seasstyle
        66
    seasstyle  
       2017-11-08 19:08:27 +08:00
    你的通讯录通话记录照片截屏 已经上传到和谐服务器进行机器分析计算,计算你是不是个不爱国人士
    laoyuan
        67
    laoyuan  
       2017-11-08 19:36:48 +08:00
    刚刚怼完联通客服,微信上周末跑了 900M 流量 300 块钱,欠费停机才拉倒。最后联通补了 220 的话费
    xiaonengshou
        68
    xiaonengshou  
       2017-11-08 20:25:29 +08:00
    无所谓吧。反正现在在大陆流量全部不限制了。。。。。
    alex321
        69
    alex321  
       2017-11-08 20:30:24 +08:00
    @boyxupers v2 已经有大佬发过帖子了: https://www.v2ex.com/t/403214
    shanliang
        70
    shanliang  
       2017-11-08 21:32:34 +08:00
    越来越流氓了
    guonning
        71
    guonning  
       2017-11-08 22:54:56 +08:00 via Android
    @pq 这个好方法,学习了
    ctsed
        72
    ctsed  
       2017-11-08 23:42:02 +08:00
    "轻芒通知清理"也是,好像是豌豆荚出的那个
    手机流量,上传了 102MB;
    wifi,上传了 137MB
    下载有 30MB 吧,不知道上传了什么。
    watzds
        73
    watzds  
       2017-11-09 01:55:10 +08:00 via Android
    之前我的安卓手机,用垃圾清理,把微信的一些东西清理掉了,然后微信会下载回来,就很耗流量
    Antidictator
        74
    Antidictator  
       2017-11-09 02:52:51 +08:00 via Android
    @icedx 并没有。。。
    wuyuanyi135
        75
    wuyuanyi135  
    OP
       2017-11-09 08:03:41 +08:00
    @houskii 有点意气用事了,其实并不能解决问题。。
    wuyuanyi135
        76
    wuyuanyi135  
    OP
       2017-11-09 08:05:29 +08:00
    @EricCartman 但是有一些人用微信的话我也只能用微信联系他们。 总不能改变其他人的习惯吧?
    lalala121
        77
    lalala121  
       2017-11-09 09:20:58 +08:00
    安卓?正常!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.