点击上方蓝字[协议分析与还原]关注我们


 解密uc浏览器的安全代理流量,看看是不是真安全。

作为一个从上古网络时代过来的人,一定对UC浏览器有深刻印象,它的流量透明代理功能,就是现在的云加速功能,使用UC的服务器作为访问各个页面的代理,并且对流量进行压缩,在早期网络环境下,很大程度地解决了广大人民的省流量、上网快的重要需求,和Opera有得一拼。

后来,随着互联网的发展,UC浏览器被收归阿里巴巴旗下,各大小巨头纷纷推出自己的浏览器产品,各家浏览器基本都加入了流量代理功能,虽然4G建设取得了很多成就,网速得到了极大提高,但它们都号称是在进行流量的加速,让你用得更爽,至于流量从它们的服务器过一道到底是为了加速还是减速或者其它的啥,我也不知道啊。

再后来,就有些人走路走歪了,号称流量经过他们的服务器的云加密服务,变得更安全了,在访问一些网页的时候,会有类似“已为您开启云加密服务”的提示,让人心里暖暖的,恨不得立马和它分享我心中的一切,没错,我说的是UC浏览器。不知道这个提示现在还有没有。

我一直不明白,我和相好的网站进行隐秘互动,第三者在中间横插一杠,从它那这走一趟,就会更安全,这是什么道理?

光阴似箭,岁月如梭,不知UC的这个功能还在不在,大概率在,不知道这个提示还在不在,可能不在了,毕竟这个提示一没卖点,二来扰民。

在这里,我们从流量的角度来分析这个UC浏览器的号称安全的流量代理功能的加密情况,看看是否能够解密。不过,这是很早之前分析的,可能已经过期了,大家不妨抓个最新版本的流量来比对下。

当然,这里首先告诉你,这个UC服务器加密的流量是可以解密的,是不安全的,你相好的网站如果么有加密,那么uc服务器代理过后,你仍然是在裸奔,只是多了个第三方——UC的服务器,来欣赏你裸奔的流量了。

01

流量

首先,我们从直观上来看下UC产生的流量,直接过滤HTTP,一眼看去,很多呀,都是和UC的服务器的交互,看样子这个浏览器并不怎么省流量呀,打开一个网页省下的那么一点点流量,都用在浏览器它自己身上了:

不要慌,这些uc相关的流量大部分是加密过的HTTP,虽然都是能解的那种。

不过,今天我们只关心HTTP流量里面经过代理服务器的流量,也就是我们在使用UC浏览器上网时被UC的服务器代理过一道的流量。

代理服务器的流量使用的域名是类似vs12.bjct.u3.ucweb.com的系列,端口为8080:

流量确实加密了吧。

都是乱码诶,看不懂诶,没关系,下面一步步来把它解出来。

至于这个域名是哪里得到的,在启动时相关的流量里,稍微加了点密,很简单,留给大家去分析。

本来准备写下具体的分析过程,但是,我不记得怎么分析的了,反正一般都是调试加hook啦,所以老规矩,直接上分析结果。

02

解密

UC代理流量的加密实现,印象中在libmissile.so这个库中,而不是在libsgmain.so这个库里,大家感兴趣可以去调调。

UC代理流量的加密,核心是一段异或加密,直接IDA反编译拎出来是下面这段:

signed int __fastcall sub_3F214(int a1, int a2, void *a3, signed int *a4)
{int v4; // r6@1signed int *v5; // r8@1void *v6; // r7@1signed int v7; // r2@1int v8; // r9@1signed int v9; // r5@2char v10; // r2@2char v11; // r3@4signed int result; // r0@5int v13; // [sp+4h] [bp-2Ch]@1signed int v14; // [sp+8h] [bp-28h]@1signed int *v15; // [sp+Ch] [bp-24h]@1char v16; // [sp+10h] [bp-20h]@4v13 = a2;v14 = (signed int)a3;v15 = a4;v4 = a2;v5 = a4;v6 = a3;v7 = *a4;v8 = a1;v15 = (signed int *)_stack_chk_guard;if ( a2 + 1 >= v7 ){result = -2;}else{memset(v6, 0, v7);v9 = 0;v13 = -1276528146;v14 = -1483239807;v10 = 0;while ( v9 < v4 ){v11 = *(_BYTE *)(v8 + v9);v10 ^= v11;*((_BYTE *)v6 + v9) = *(&v16 + v9 % 8 - 12) ^ v11;++v9;}result = 0;*((_BYTE *)v6 + v4) = v13 ^ v10;*((_BYTE *)v6 + v4 + 1) = v10 ^ BYTE1(v13);*v5 = v4 + 2;}if ( v15 != (signed int *)_stack_chk_guard )_stack_chk_fail(result);return result;
}

看着很烦,其实就是循环异或,异或的密钥key为8字节数组“0xee,0xb9,0xe9,0xb3,0x81,0x8e,0x97,0xa7”,想动手的朋友可以直接去实现啦,当然,还需要注意,数据体的前6字节是相对固定的数据,跟解密后的数据类型有关,不用拿来异或解密的。

不过,这一步解出来的,有些内容你能看到信息,比如一些规律的HTTP相关的ASCII字符,但这些并不是最终结果,后面的处理还是蛮麻烦的。

异或解密出的结果分成多种情况,包括deflate字典压缩,差分压缩,以及正常数据几个类别,可以根据起始字节的值来区分,当然,你得熟悉相关的编码格式。

例如,deflate压缩的数据格式,有什么明显的标记,这里给大家留个作业,有兴趣的可以去查查啦。

这里的deflate压缩是字典压缩,是有一个字典的,字典有2259字节,贴出来太暴力了,还是有需要的自己去调或者找我要吧。

正常数据和差分压缩数据,在下一节继续。

03

差分

正常数据和差分压缩数据的格式的区别在于异或解密后的起始字节是0xa0还是0xad,例如下面这段解密后数据,就是差分压缩的:

00h: AD 00 18 31 40 34 69 69 75 58 6F 54 36 40 56 6E ; ?.1@4iiuXoT6@Vn
10h: 47 75 7A 73 51 6C 40 31 30 33 30 D6 C3 C4 00 00 ; GuzsQl@1030置?.
20h: 01 88 06 00 3F 88 06 00 2F 07 03 32 30 31 35 2F ; .?.??./..2015/

它是有格式的,毕竟,差分压缩,你得知道每个数据是和谁差分的对不对。这些信息,就在数据格式里写好了,继续用上面的数据来说明,这里面,4iiuXoT6是一段base64,VnGuzsQl是另一段base64,这两个base64是数据id值,同时具备数据校验的作用,其中后面一个是当前数据段的数据id,前面一个是与本数据段关联的差分基础数据段的数据id。而字符串1030是本段的原始数据的长度值,再之后,紧接着的就是差分数据。

原始数据需要用这里的差分数据和关联数据id对应的原始数据进行差分获得,怎么差分?当然是用成熟的差分库实现啦,例如,c里面有xdelta3库,下载下来就可以用了。

前面的数据id,作为对原始数据校验的作用,这里描述一下,大家将就着理解:

对原始数据取MD5值(16字节hex形式),然后取前6字节,再进行base64,则得到这段base64。

例如,文件的MD5是:792A2778BE9640642B113F6D7B27B278

则取hex值 79 2A 27 78 BE 96,base64编码得到 eSoneL6W 即为id。

04

结束

UC代理流量加密的基本的算法,这里介绍完了,够干吧,大家还愣着干嘛,赶紧分享吧,给我点鼓励。

这个UC代理的流量,确实加密了,不过可以解密,大家上不好的网站,还是少用它啦。

别忘点“在看”、“赞”和“分享”

新的规则,及时收推文要先给公号星标

别忘了星标一下,不然就错过了

长按进行关注,时刻进行交流。

UC浏览器代理流量解密相关推荐

  1. sqlmap md5怎么解密_UC浏览器代理流量解密

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 解密uc浏览器的安全代理流量,看看是不是真安全." 作为一个从上古网络时代过来的人,一定对UC浏览器有深刻印象,它的流量透明代理功 ...

  2. 计算机uc,解密UC浏览器计算机版本的新功能

    解密UC浏览器红色杏子工具 计算机版本的UC浏览器随附一个相对易于使用的工具-Hongxing XX,它可以帮助您突破某些人为限制的网络环境(例如防火墙阻止企业中的网站). 此工具用于阻止用户网络环境 ...

  3. 360搜索、UC浏览器等被3·15点名应用已下架;马斯克宣布通过NFT卖歌;美团App再发力社交,内测 “群聊”功能 |极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  4. 360搜索、UC浏览器等被3·15点名应用已下架;马斯克宣布通过NFT卖歌;美团App再发力社交,内测 “群聊”功能...

    凌云时刻 一分钟速览新闻点! 猎聘.前程无忧为大量简历流向黑市而致歉 医疗广告竞价排名,360 搜索.UC 纷纷上榜 315 晚会 315 晚会曝光人脸识别乱象:海量人脸信息已被搜集 安兔兔曝光 re ...

  5. UC浏览器视频播放缓存以及视频下载分析

    PC时代,浏览器几乎是上网的唯一入口,那时候,得浏览器得天下,大家都想守住这个流量入口,为自家的服务导流.移动互联网时代,繁多的App分割了浏览器的流量,浏览器失去了平台流量的入口地位,沦为一个普通的 ...

  6. UC浏览器QQ浏览器欧朋浏览器使用体会

    这几日折腾一新买的android机器,当然了属于很流行的低端机器了(中兴的U880,有没有雷到你).自己用的是神州行的卡,搞了个数据套餐,每月30M. 想想这30M怎么用呢?QQ基本上班用,晚上很少用 ...

  7. UC浏览器的抓包分析

    我用手机打开新浪新闻,用wireshark抓包发现并没有到sina网站的流量.我们都知道,互联网访问肯定是必须有网络数据包的.那么新浪网的数据从哪里走了呢?经过仔细分析,发现了如下的数据包: 访问网站 ...

  8. java 7 发布,【UC浏览器】Java平台7.0正式版发布啦

    [UC浏览器]Java平台7.0正式版发布啦 UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB.WAP页面浏览,速度快而稳定,页面排版美观:具有网站导航.搜索.下载.个人数据管理等功能,您能 ...

  9. UC浏览器电脑版怎么开启免费WiFi

    UC浏览器现在自带了WiFi功能,你可以在这里快速开启免费WiFi,那么你知道怎么开启吗?下面小编就为你带来免费WiFi打开教程. UC浏览器电脑版怎么开启免费WiFi: 首先在电脑上打开UC浏览器; ...

最新文章

  1. 用 CentOS 做一个 BGP 路由器
  2. Hello,Akka
  3. “假一赔十”的4k 120Hz电视能买吗?研究完我服了,水是真的深
  4. (39.3) Spring Boot Shiro权限管理【从零开始学Spring Boot】
  5. PCL点云库法向量显示,vtk错误“no override found for vtkActor”
  6. 使用EL表达式接收url的传值
  7. 每天一道LeetCode-----计算n的阶乘末尾有多少个0
  8. JAVA中的适配器应用_Java适配器模式应用之电源适配器功能详解
  9. 【转载】Ubuntu环境下配置Android Studio
  10. 原生html冻结表头,CSS如何实现表头冻结效果
  11. Spark History Server配置及其启动
  12. python3安装教程linux_python 在linux系统的安装教程
  13. oracle raw如何生成,如何使用raw device构建Oracle数据库
  14. [c++]在C++中定义常量的两种方法的比较
  15. mysql 要完 知乎_必知必会 MySQL笔记(未完)
  16. C51单片机程序环境搭建及第一个程序运行
  17. 几张图,简单弄懂pcb生产工艺流程!
  18. matlab 周期性边界,PID控制器阶跃响应的分析(基于MATLAB仿真的实验):
  19. 张朝阳也看蜗居,这段采访很有趣
  20. 数据可视化软件finebi实现对濒危物种基础数据分析

热门文章

  1. etw系统provider事件较多_【Flutter 实战】文件系统目录
  2. Android--SQLite(一)
  3. memcached部署
  4. (五)Docker镜像和容器
  5. 合并区间(LintCode)
  6. hibernate相关收集
  7. 调侃 -- 刚入职时的单纯
  8. sdut AOE网上的关键路径(spfa+前向星)
  9. Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
  10. poj(2325)线段树