联通校园宽带简介
  通常情况下在学校联通营业厅即可办理,带宽不同价格不同(30/40/50元分别对应2/4/10M带宽,很多学校已经免费提速5倍,即相同的价格可以享受10/20/50M带宽。)办理时会给你开户,并告知使用方法(有的学校会有人来安装,有的学校是直接把网线插入宿舍网口就可以了),无线的话,需要自行购买无线路由器。
客户端
  开户时联通会给一个账号密码,上网必须使用联通提供的客户端,手机想上网也得用客户端,且一个账号最多只能登录一台电脑和一部手机。客户端会检测电脑是否共享上网,检测到共享的话会强制断网。联通这么做是为了杜绝宽带共享使用,至于原因大家都懂。
解除限制
  有人尝试直接使用系统自带的PPPoE拨号却提示691,很明显,联通对账号密码进行了加密,给的账号密码还要经过特殊的算法加密以后才能使用。联通客户端会把用户输入的账号密码,通过他的算法加密后的再传送到联通,从而拨号成功。因此,如果我们想直接使用系统自带的PPPoE拨号,就必须知道真实的账号密码,3.3版本的客户端使用的是静态加密,即账号后+@wo201,密码前+\001(\001指的是ASCII编码为1的字符,代号为SOH,不可显示),联通肯定是发现了静态密码的弊端,所以在2017年暑假期间,对客户端进行了升级,升级后的版本是3.7,更换了新的加密方式,所以只能重新分析客户端。直接使用Fiddler2和Whireshark进行抓包(其他抓包工具亦可),发现客户端每次拨号前都会发出一个Get请求,得到一个json格式的数据,请求地址是http://114.247.41.50:9343/aaa/get/pin?user=账号,得到的内容中大致两个内容:msg应该是请求状态,成功显示ok(没遇到失败的情况,所以不知道失败的代码是啥);pin是一个随机数(每次请求都不相同,间隔时间在10秒以内可能相同)。同时发现Whireshark抓到一个PPPoE数据包。红色位置是账号,涂掉了~

Peer-ID就是PPPoE拨号的账号了,和3.3版本的一样,账号后+@wo201

Password自然就是PPPoE拨号的密码了,前边一串内容和之前Fiddler2发出Get请求后得到的pin是一致的,所以可以发现密码的算法换成了动态密码,即pin值+密码(好像也不能算是加密……)

知道了加密方式就可以自己用系统自带的PPPoE进行拨号了,由于pin值最多10秒就会发生变化,变化后密码自然就不对了,所以要拼手速,更稳妥的办法就是写一个软件,代替联通客户端发送Get请求,解析json,得到pin,然后创建PPPoE连接进行拨号,本人的编程能力实在是菜(什么JAVA、C++完全不会)……只会用易语言,附上易语言写的关键部分代码,只能靠自己转换为其他语言了。

  我没有直接给出成品,一方面是易语言写的程序报毒很普遍,为了避免不必要的误会,所以没有直接给出编译好的程序。另一方面我觉得授人以鱼不如授人以渔,所以介绍了下分析的过程和方法,毕竟毕业以后就没有这种环境进行测试了。一旦联通再次更改加密方式,又会失效。

转载于:https://www.cnblogs.com/hanyuhang/p/7719067.html

北京联通201校园宽带详解与解除限制方法(最新3.7客户端)相关推荐

  1. 北京联通201校园宽带详解与解除限制方法

    校园网计费策略的修改,导致网费剧增,流量大户纷纷办理联通宽带.奈何联通搞了一些猫腻,想让用户不能使用路由器,不过经分析就很容易破解掉,而且禁止路由器理论上本来就是不可能的. 本人并没有使用联通宽带,只 ...

  2. 北京联通100M光纤宽带需邀请函 实际速率12MB/S - OFweek光通讯网

    北京联通100M光纤宽带需邀请函 实际速率12MB/S - OFweek光通讯网 [新提醒]随身wifi无法使用FAQ(不断更新中~~~~~~) - 使用问题 - 360官方论坛 undefined ...

  3. indesign图片规定在左下角_详解InDesign基本使用方法

    详解InDesign基本使用方法 为了使朋友们尽快掌握InDesign的使用方法,下面,我们通过一个例子来说明它的操作过程.做之前,先要说两句.乍一接触Indesign,许多朋友会觉得很不熟悉,很不适 ...

  4. python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...

    前言: 今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家! Python获取电脑截图有多种方式,具体如下 ...

  5. 处理对象(toString()方法详解和==与equals方法的区别)

    处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...

  6. python导入模块介绍_详解Python模块导入方法

    python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...

  7. ubuntu 文件权限命令详解使用格式和方法

    为什么80%的码农都做不了架构师?>>>    在 Ubuntu Linux 中用源码文件安装软件时经常都会用到chmod命令来更改文件的权限使其在安装时有执行的权限.由于 Ubun ...

  8. 5 获取窗口位置_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)

    前言: 今天为大家带来的内容是详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)本文具有不错的参考意义,希望能够帮助到大家! Python获取电脑截图有多种方式,具体如下 ...

  9. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!

    详解linux杀死进程方法:kill.pkill.killall之间的区别及用法! kill 命令 killall 命令 pkill 命令 kill.pkill.killall之间的区别 kill 命 ...

最新文章

  1. [转载]对 Linux 新手非常有用的20个命令
  2. 实现数据库的增删改查
  3. 支付宝php 验签 解密,支付宝敏感信息解密 - osc_fcq4wwqo的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
  5. MVC.Net: jqueryval错误
  6. ibatis Dynamic总结(ibatis使用安全的拼接语句,动态查询)
  7. (40)System Verilog随机函数$random示例
  8. 【Docker】 Docker pull的时候指定仓库
  9. 6splus计算机按键应用,苹果6s plus快捷键功能介绍
  10. RK3399Pro Android Rock-X 人工智能开发系列(2)
  11. 5.修改本地库/远程仓库的地址
  12. python摄像头跟随人脸_Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
  13. Linux下安装gcc和g++
  14. python中的start_python中startx有什么用
  15. AcWing:Dijkstra
  16. sun公司:太阳的升起与衰落
  17. 模型的预训练/迁移学习
  18. 内存模块与计算机兼容,cpu和内存条不兼容怎么办cpu和内存条不兼容的解决方法...
  19. vue 组件 Vue.component 用法
  20. python相机实现拍照、录像、图片处理、转卡通图等功能

热门文章

  1. 沟渠指什么_什么是生态拦截沟渠?作用是什么?
  2. 在移动硬盘/固态/U盘上安装ubuntu 实现 ubuntu to go
  3. [活动召集]福建PHP社区聚会
  4. linux主机又又中木马了
  5. 虫师selenium3+python自动化测试电子版_Selenium3 Java自动化测试实战 第三版.pdf
  6. 同济大学高等数学上册第四章不定积分以及每日一题
  7. MIR-Flickr25K数据集预处理
  8. Extra中出现的Using index condition到底什么意思?
  9. 【cpg控制】Hopf振荡器的一种python实现
  10. 2020_8_29 闲谈——应用统计学专业学习规划及指南