电信阿里鱼卡 UC 免流原理

date
slug
china-telecom-ali-free-flow
status
Published
tags
Android
summary
上个月和电信客服扯皮两周多终于把手机套餐改成了阿里鱼卡套餐。 从 59RMB (500MB+100分钟通话) 的高端套餐改成了 19RMB(1GB+100分钟+日租+阿里文娱应用免流) 低端套餐。 实在要吐槽一下电信改套餐的规定。改套餐明明一个电话或者App戳戳就能搞定事情,偏偏让你回归属地营业厅跑一趟。虽然最后手持身份证拍照异地受理了但体验实在是不好。 鱼卡UC浏览器免流大体实现是这样的
type
Post
上个月和电信客服扯皮两周多终于把手机套餐改成了阿里鱼卡套餐。
从 59RMB (500MB+100分钟通话) 的高端套餐改成了 19RMB(1GB+100分钟+日租+阿里文娱应用免流) 低端套餐。
实在要吐槽一下电信改套餐的规定。改套餐明明一个电话或者App戳戳就能搞定事情,偏偏让你回归属地营业厅跑一趟。虽然最后手持身份证拍照异地受理了但体验实在是不好。
鱼卡UC浏览器免流大体实现是这样的

抓包

Wireshark抓包
notion image
注意这段 Proxy-Authorization: 1|15120022766*******|com.ucweb.iphone.lowversion|ca5fe4b11712e10ba745c2817*******
关于 Proxy-Authorization 见 https://developer.mozilla.org
即UC浏览器的请求都经过代理服务器。
对比几次请求可以发现 1|UID|UA|Key 这几段猜测规律
  • 1 不变
  • UID 标示用户ID
  • UA 浏览器UA
  • Key 由网站Host计算,应该是md5

反编译

反编译 Android 客户端,基本验证各字段的意义
UC浏览器拼接Proxy-Authorization
notion image
而 bcX 和 bcW 的获取过程断点获得调用栈如下
notion image
在浏览器激活免流的时候会获取相关字段(不清楚是否会定时更新)
请求 https://freeflow.uc.cn/freeflow/generatePhoneToken 获取一段密文,解密之后解析赋值给 bcX bcW
当开始网络请求时由对应 UID|Key|Host 计算 md5
获取Host
notion image
计算MD5
notion image
拼接Proxy-Authorization
notion image
密文解密之后的结构体
notion image
上面需要的 UID UA KEY Server Port都在里面

结论?

SSL Pinning 还是必须的。

© likaci 2013 - 2024