本帖最后由 php.c 于 2018-10-11 00:03 编辑
C语言编写的dogcom,仅一个大小为几十KB的二进制文件(可执行文件),外加抓包生成的配置文件(下文会介绍),d,p,x三版均覆盖。适用于几乎所有路由器(只要有SDK/toolchain并且能开启SSH/telnet即可,目前市面上绝大多数路由器均满足以上条件)。已测试支持斐讯K1、K2、K2P、K3、K3C、K2T、K2G、腾达AC9、小米、newifi、极路由、华硕、网件等路由器。可以在潘多拉pandorabox,华硕老毛子padavan,tomato phoenix不死鸟,openwrt,lede,asuswrt,厂家官方固件上运行。会编译的就自己编译吧。。。 本教程针对的是使用城市热点dr.com客户端,其他客户端或者网页版认证不支持。 最近发现部分学校对接了上网行为管理设备,这并非dr.com协议的问题,并且楼主无环境,请自行解决! 本帖以使用最便宜的 MT7620 的路由器(如K1/K2/小米mini/New-wifi mini/极路由3等,MT7621如K2P操作和MT7620完全相同)为例,其他平台请下载相应的ipk包或者提取出二进制文件用,当然,自己编译更好。 本文针对有一定基础及钻研精神的同学,不欢迎伸手党,提问前,请先在把五层楼完整看完。 楼层说明: 一楼:概述及基本方法 二楼:华硕老毛子固件使用dogcom教程 三楼:常见问题及解决方案 四楼:将陆续更新不同平台dogcom最新的二进制文件 五楼:关于网页认证的简单说明 六楼:关于X版的简单说明(2018-10-11更新) -------------2018-10-11更新------------------------------------------------------------------------------------------------ 2017-5-25更新:有大神帮忙编译了ipk包,有mipsel和ar71xx的,以及luci包,在此对大神表示感谢。本教程并没有提到ipk包的使用方法,ipk仅针对会用的同学,不会的同学请自行忽略本段文字。ipk包下载地址在文末。 2017-6-23更新:dogcom版本更新至1.4.1,支持ip绑定,修复当用户名大于20字符时登录失败的bug。 2017-7-10更新:更新p版教程,成功的请反馈一下结果。 2017-9-2更新:dogcom版本更新至1.4.2,修复ror_version=True的处理问题,增加win日志版测试包。 2017-9-8更新:dogcom版本更新至1.4.3,修复d版使用-e参数时,在网络断开后无法自动重连的问题。 2017-10-7更新:更新padavan老毛子固件使用方法。 2017-10-14更新:dogcom版本更新至1.6.0,修复了某些学校d版出现卡keepalive1的问题,需要手动在配置文件结尾新加一行 keepalive1_mod = True 2017-10-16更新:dogcom版本更新至1.6.1,登录失败增加了错误原因显示。 2018-02-19更新:dogcom版本更新至1.6.2,修复吉林大学等学校d版登陆失败的问题。 2018-10-11更新:在六楼写了下x版的思路,欢迎大家来测试,有人成功了反馈下,我再把帖子完善下。。。 -------------2018-10-11更新------------------------------------------------------------------------------------------------ 总之,该程序可以支持许多型号的路由器。本文以潘多拉pandoabox(原厂固件,官改固件和潘多拉方法基本完全相同)为例进行讲解。 大家如果觉得不错的话,希望帮忙加个分,回帖顶一下,让更多人看到。这样我就不隐藏了。
再此,我要特别感谢许多大神提供的帮助: 本教程部分参考及转载了坛友 落尘之木 的该教程,只不过把python脚本换成了C语言的可执行文件,对系统资源的占用远远小于python版本。 本程序源代码来自github,感谢大神提供的C语言代码。同时感谢 佐须之男 佐大对本人进行的编译上的指导。 如果drcom协议有问题的话,请去项目页提issue。 特别指出禁止任何个人或者公司将dogcom的代码及本程序投入商业使用,由此造成的后果和法律责任均与本人无关。 转载请注明出处及本文链接!
以下为正式教程
0.0、知识储备: 首先你要会刷机,会用breed,会用WinSCP,会用putty,telnet,tftp,Xshell等软件,以及ls,cat,vi,wget,chmod等命令!!如果不会的话,请先自行思考,思考刷机,思考使用breed,然后刷好固件(本文主要以潘多拉和老毛子为例,其他固件基本上类似)。可以参考上文列出的教程思考。 0.1、文件准备: 本文程序dogcom最新版请在帖子五楼下载(下载的二进制文件请在下载解压后将文件重命名为dogcom)
1、抓包:在电脑上安装 Wireshark 抓包软件(自行百度下载),电脑用网线直接连接学校网口,不要通过路由器。打开客户端,输入账户和密码,先不要登录,打开Wireshark,点击以太网,再点击Start,然后登录客户端,短暂时间(10~30s)后点击左上角红色按钮,点击File→Save As保存为dr.pcapng
打开在线配置生成器https://drcoms.github.io/drcom-generic/,打开后页面左上角先选择对应的版本,然后点击Open选择你抓包生成的dr.pcapng文件,等一会,页面下的空白部分会自动出现配置内容(如果一直不显示请检测客户端版本是否选择正确或者重新抓包),然后点击Save下载配置文件drcom.conf,保存备用。p版抓包到此结束,d版还需要用用文本编辑器打开配置文件并在password=’’的引号里面输入你的密码并保存。
2、刷机:网上教程很多,这里不再赘述,本文以潘多拉pandorabox为例(原厂固件,openwrt,官改固件和潘多拉方法基本完全相同。华硕老毛子padavan教程在帖子二楼)。
3、准备需要上传的文件:下载五楼你需要的二进制文件附件,解压出来二进制程序文件并重命名为dogcom保留备用。接下来的操作就需要用到路由器了,把电脑上的drcom客户端关掉,路由器WAN接学校网口,路由器LAN接电脑。
4、上传文件:登录WinSCP,将dogcom二进制程序文件和drcom.conf配置文件上传至路由器的 一个可写且重启不丢失的目录 下。由于固件种类繁多,请自行研究应该放在哪个目录。本文暂以/usr目录为例(openwrt/lede/潘多拉/mtk系列官方固件都可用该目录)。如果你用了其他目录,请将下文中的所有/usr换成你所使用的对应的目录。 已猜测部分固件可用目录如下(大部分收集自网络,仅供参考): padavan和不死鸟可用目录:/etc/storage (需执行“mtd_storage.sh save”才能保存) K2P B1 博通版官改及官方固件:/tmp/media/data 梅林固件:/jffs 原版ASUSWRT:/jffs K3官方及官改:/tmp/media/nand 或 /opt
5、赋予dogcom执行权限:在WinSCP里进入路由器的/usr目录(或其他目录),右击dogcom文件,属性,八进制表输入0777,确定。
接下来开始区分版本,d版请看6-8步,p版请看9-11步。
6、检测是否可用(d版):使用putty或telnet登录路由器(不要用WinSCP输命令),进入命令行,输入下列命令,进行测试。注:测试的时候,要把电脑上的drcom客户端关掉! - /usr/dogcom -m dhcp -c /usr/drcom.conf -v
复制代码检查能否上网(注意,这时不要关闭putty或xshell)。通过该命令可显示日志,如果不能上网的话,自己根据上面的报错提示判断哪里出错了。如果回帖,请附上完整日志或截图,否则无法判断。
7、确定可正常上网后,添加启动项:请自行研究你所使用的路由器固件添加开机启动项的方法。这里以openwrt/lede/潘多拉/mtk系列官方固件为例,在WinSCP下打开/etc/rc.local,在exit 0上一行粘贴下面的命令: - /usr/dogcom -m dhcp -c /usr/drcom.conf -d -e
复制代码保存。 已知部分固件开机自启方法(大部分收集自网络,仅供参考): 斐讯官改固件系列:在后台的高级设置里有一个启动任务,直接复制进去保存即可 梅林固件:管理界面自定义脚本里的WAN-up 原版ASUSWRT:https://right.com.cn/forum/thread-312516-1-1.html padavan固件:看二楼
8、重启路由器,享受无线网络吧,d版教程到此结束,下面为p版教程。
9、下载文件pppoe-dialer(p版): https://github.com/mchome/PPPoE-Dialer/releases/download/v1.2/pppoe-dialer.exe 。打开pppoe-dialer,输入你的用户名和密码,拨号检测能否成功,成功的话,运行下文的dogcom-win版,检查是否运行正常,正常的话进行下一步。如果pppoe-dialer拨号失败的话,就关掉本教程吧,可能是转义符的问题,这里不做讨论,可参考 关于P版的PPPoE拨号问题 和 p版简略使用和配置说明
10、注销并关闭pppoe-dialer和dogcom,进入路由器web管理界面,WAN口设置为pppoe,配置好帐号密码。配置开机启动,这里以openwrt/lede/潘多拉/mtk系列官方固件为例,在WinSCP下打开/etc/rc.local,在exit 0上一行输入下列命令: - /usr/dogcom -m pppoe -c /usr/drcom.conf -e -d
复制代码保存。
11、重启路由器,享受无线网络吧。
12、关于x版:可尝试先使用mentohust或其他802.1X工具通过802.1X认证,再按照d版流程操作,由于无环境无法写出详细教程。mentohust教程可参考论坛其他帖子。欢迎x版成功的同学跟帖分享经验。也可尝试dogcom使用-x参数。另外,部分x版学校有本校专用的项目,这里就不做讨论了。
对于路由器不太熟悉的同学,或者路由器死活失败的同学,可以先尝试使用Windows版的dogcom记录日志抓包分析情况(Win版使用时请不要接路由器)
有问题可加讨论QQ群623711547
注:具体运行参数请参考github dogcom源代码作者给出的信息
附图:各项命令及参数含义说明:
|