DrCom协议

Dr.com是城市热点公司开发的宽带计费系统,在全国高校,企业,zhengfu机关广泛使用,不知道害了国内多少人,好好的上网不能一拖多!
sourceforge上有一个DrCom项目,以GPL协议发布,它包括window平台下的版本drcom-client-win32和Linux下的版本drcomsuite,它的主页地址是:
http://sourceforge.net/projects/drcom-client,下载后看了一下,实际上协议破解了大部分,还有部分协议细节没有破解出来,我本地抓包来对比代码分析了一下,协议破解有少量错误(至少与我使用的DrCom接入不符)。

这里我结合这个项目的代码以及以前我的一些分析,大概介绍一下DrCom的原理
1. 协议基于UDP
2. 客户端协议流程:login、logout、change-password,login后有keepalive
3. 协议核心:通过与服务器交互,获取一个16字节的隧道识别码
UDP:客户端发送的每个UDP报文,在UDP头与UDP载荷之间都插入这个隧道识别码
TCP:正常的TCP三路握手后,TCP状态机处于连接建立状态时,客户端发送的每个TCP报文,在TCP头与TCP载荷之间都插入这个隧道识别码。每次登陆后,识别码不变。通过这个识别码,如果通过NAT一拖多上网,未安装DrCom客户端的PC发送的报文是不携带这个识别码的,运营商的接入网关就会丢弃这些报文,从而实现限制一拖多!

那如何不需要破解协议并且可以绕过它呢?如下图所示
服务器PC上使用NAT(比如sygate),使用原版DrCom客户端(黑色字体标识)
客户机PC上使用自制的DrCom客户端(红色字体标识),不需要破解协议,只需要给UDP/TCP头后面加识别码即可,这样客户机的报文就携带了识别码,经过服务器PC上NAT转换就可以上网了,运营商也发现不了:)那如何得到识别码呢?呵呵,用正版DrCom客户端登陆后,抓报文,随便访问一个网页,TCP头后面16个字节就是识别码。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值