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

2018-07-07 12:54:16 +08:00
 aaaa9966

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

4335 次点击
所在节点    问与答
12 条回复
crab
2018-07-07 13:01:41 +08:00
APP 要是提示网络连接失败或者等其他 有可能是 SSL Pinning。
aaaa9966
2018-07-07 13:16:22 +08:00
@crab 没有提示网络连接失败,应该是走的内部协议?
daigouspy
2018-07-07 13:18:42 +08:00
直接在网线上接一个信号分析仪
RockOrRoll
2018-07-07 15:37:03 +08:00
换个低版本安卓看看
KomeijiSatori
2018-07-07 16:28:00 +08:00
走的 https 吧
ChangQin
2018-07-07 16:28:43 +08:00
可以抓的,首先你先看看是不是装证书才能看。装了之后不能的话就有可能是 ssl,用 xposed hook ssl 的方法就能绕过去了。再有就是有的走的不是 Http,你下载一个代理机器人就能玩了 http://apps.game.qq.com/daoju/go/zmgoods/list?cat=16&page=1&plat=android&version=9811
victor97
2018-07-07 19:29:53 +08:00
Android 7.0 开始装了证书也不能抓包了
iluhcm
2018-07-07 19:39:49 +08:00
没试过,但是我猜测楼主说的抓不到包应该是请求都没有经过 Charles,这可能是因为在代码中设置了不经过代理直接请求。
yezhiye
2018-07-07 20:19:30 +08:00
xposed + JustTrustMe +安装证书。这样才能抓 https 的包。
FanWall
2018-07-07 20:37:57 +08:00
说说猜测,因为我也没有去实际反编译。
假设是 http 协议,那么楼主已经说了抓包没有出现连接错误,所以基本可以排除 SSL Pinning。那么最常见的就如同 @iluhcm #8 的观点,设置了不走代理,想个办法让它走代理就行了。
然后就是非 http 协议的情况,可能性更大,因为腾讯系的 app 一直有比较通用的基于 TCP 的通信协议,例如可以反编译看下有没有类似 com.qq.taf.jce 的 package。
jpmorn
2018-07-07 20:40:10 +08:00
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 -- <amp-youtube data-videoid="QjLRaIB-97E" layout="responsive" width="480" height="270"></amp-youtube>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
aaaa9966
2018-07-09 17:41:41 +08:00
最新结果:LZ 试了一下,用 rvictl+wireshark 抓包,抓到的结果:



结论:掌盟 LOL 战绩查询的数据通信应该是用的的 SSL 加密的 SOCKET,所以是 TCP 协议,抓包抓到了的数据全是 SSL 加密的数据,所以想获取这个接口的数据应该难度是很大的,不知道我说的对不对?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/468853

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX