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

掌上英雄联盟这样的 APP 为什么不能使用 Fidder 或者 Charles 这样的工具抓包呢?

  •  
  •   aaaa9966 · 14 天前 · 1343 次点击

    最近想研究一下掌盟 LOL 玩家战绩查询的接口,发现 Fidder 或者 Charles 都抓不到包,是为什么呢? 难道说因为协议的问题吗,难道掌盟数据查询用的是 TCP 协议? 求做过类似的大佬帮忙指点一下~

    12 回复  |  直到 2018-07-09 17:41:41 +08:00
        1
    crab   14 天前
    APP 要是提示网络连接失败或者等其他 有可能是 SSL Pinning。
        2
    aaaa9966   14 天前
    @crab 没有提示网络连接失败,应该是走的内部协议?
        3
    daigouspy   14 天前 via Android
    直接在网线上接一个信号分析仪
        4
    RockOrRoll   14 天前 via iPhone
    换个低版本安卓看看
        5
    KomeijiSatori   13 天前
    走的 https 吧
        6
    ChangQin   13 天前   ♥ 1
    可以抓的,首先你先看看是不是装证书才能看。装了之后不能的话就有可能是 ssl,用 xposed hook ssl 的方法就能绕过去了。再有就是有的走的不是 Http,你下载一个代理机器人就能玩了 http://apps.game.qq.com/daoju/go/zmgoods/list?cat=16&page=1&plat=android&version=9811
        7
    victor97   13 天前 via Android
    Android 7.0 开始装了证书也不能抓包了
        8
    iluhcm   13 天前 via Android
    没试过,但是我猜测楼主说的抓不到包应该是请求都没有经过 Charles,这可能是因为在代码中设置了不经过代理直接请求。
        9
    yezhiye   13 天前 via Android
    xposed + JustTrustMe +安装证书。这样才能抓 https 的包。
        10
    FanWall   13 天前 via Android
    说说猜测,因为我也没有去实际反编译。
    假设是 http 协议,那么楼主已经说了抓包没有出现连接错误,所以基本可以排除 SSL Pinning。那么最常见的就如同 @iluhcm #8 的观点,设置了不走代理,想个办法让它走代理就行了。
    然后就是非 http 协议的情况,可能性更大,因为腾讯系的 app 一直有比较通用的基于 TCP 的通信协议,例如可以反编译看下有没有类似 com.qq.taf.jce 的 package。
        11
    jpmorn   13 天前
    app ssl 加密 bypass 一般来说,我们抓 https 包使用 fiddler 或 charles,然后手机安装证书就可以抓包了,但是有时候我们抓某些 app 时候,一连上代理,却提示不能上网,明明可以上网,为啥 app 提示无网络,原因可能就是开启了 https 双向认证,客户端一般使用 SSL Pinning 防止中间人拦截攻击。我们可以使用 ssl-kill-switch2 绕过客户端的证书校验,就又可以愉快的抓包了。

    ssl-kill-switch2 最新版本是 v0.11 ,支持 ios10

    方法论:

    Did you go through these procedures to get JustTrustMe to bypass the cert pinning -- http://www.welivesecurity.com/2016/09/08/avoid-certificate-pinning-latest-versions-android/ -- ?
    If you are just looking to intercept WebViews, then the Frida extension, appmon (which allows for API interception), using these techniques will work well --
    If you do end up having to rewrite some code, try to keep it really simple. I found this technique which doesn't mess with the existing cert-pinning code and instead just adds the HTTP traffic to the logging system -- https://blog.securityevaluators.com/how-to-view-tls-traffic-in-androids-logs-6a42ca7a6e55
    For a series on repackaging Android apps, be sure to check out:
    *
    https://pen-testing.sans.org/blog/pen-testing/2015/06/30/modifying-android-apps-a-sec575-hands-on-exercise-part-1
    *
    https://pen-testing.sans.org/blog/pen-testing/2015/07/07/modifying-android-apps-a-sec575-hands-on-exercise-part-2
        12
    aaaa9966   11 天前
    最新结果:LZ 试了一下,用 rvictl+wireshark 抓包,抓到的结果:



    结论:掌盟 LOL 战绩查询的数据通信应该是用的的 SSL 加密的 SOCKET,所以是 TCP 协议,抓包抓到了的数据全是 SSL 加密的数据,所以想获取这个接口的数据应该难度是很大的,不知道我说的对不对?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   1799 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 18ms · UTC 08:06 · PVG 16:06 · LAX 01:06 · JFK 04:06
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1