`
写这篇帖子主要目的是交流一下使用DR.COM登陆器进行路由/代理/共享相关的一些东西,尝试了几种比较可行的解决方法,仅供参考,由于没有使用路由器(原因后文有提),所以感兴趣的同学可以在下列解决方法里加入路由器再试一下。
DR.COM(城市热点)这东西在全国高校大范围应用,用于互联网的终端接入,很难想象就这么几百KB大的玩意竟然能穿过三层交换网络绑定客户机的MAC、IP....通过强制接管本机的TCP/IP协议来达到防代理、防路由等功能,从根本上说,这玩意就是个流氓软件。
前几天突然心血来潮,忽然开始跟学校提供的DR.COM上网登陆器较劲,目的是弄掉上网登陆器DR.COM内置的防路由防代理功能,将笔记本连接的有线网络通过笔记本上自带的无线网络共享出来。
互联网上找到的方法一一试过,无奈某9学校的DR.COM经过数字化中心特别调整过(某9也在其旗下学生公司兼职),所以找到的方法全部无效,只能根据NAT原理自己摸索。
于是三天前就开始跟这玩意杠上了,由于手头只有一台笔记本,而室友又要用他们的笔记本上网,万般无奈之下只有翘掉几节副课+晚上断电前的一小会儿来做实验:
WIn7+临时无线网络搭建软AP,失败。 Win7+无线承载网络,失败。 Win7+Connectify+ICS,失败。 Win7/XP+OpenDR.COM+CCProxy,失败。 XP+Intel ICS搭建软AP,失败。 XP+HomeShare,失败。 XP+AnyRoute软路由(+intelICS),失败。 XP+netsh routing ip nat(+intelICS),失败。 XP+VPN(+intelICS),失败。 DR.COM3.72+破解drcomdll,code21,被检测到代理。 XP下删掉TcpIpDogL+重置Winsock+重装TCP/IP,code21,被检测到代理。 ……
以上最好的结果就是能ping通外网、能解析域名、能登陆好人和panagion的FTP,但死活打不开网页,登不上QQ。
至于最坏的结果....共享机连网关也ping不到。
那最好的结果,按理说网络已经完全通畅了,但就是不行。阅读DR.COM用户手册后再联系上述尝试过程推测其通过程序启动时加载的的TcpIpDogL.dll线程监控80、8000等常用端口,禁止未认证的电脑通过上述端口访问互联网,至于FTP是使用的TCP 20、21端口,可能不在其监控范围内。
……
于是不得已开始了最为麻烦的反汇编方法。
OD载入DR.COM,通过查询CreateThread发现有10处,F2全部下断点后F9开始调试运行至断点处F7继续步进,找到每个CreateThread,在其下一行添加标示,然后在其上一行使用jmp跳转,越过这一个CreateThread,继续调试。最终在00 41 9A 4F处断点后程序停在帐号验证步骤,OK,jmp掉,保存退出。
运行修改后的DR.COM,登录时会卡在“帐号验证”界面报内存错误(半成品...)DR.COM也自动退出(废话,都崩溃了能不退出么...>_<)。
不过此时不使用登陆器也可上网,并且由于此时本地系统并没有启动作为监视代理用TcpIpDogL.dll的宿主进程DR.COM,所以其禁止路由、代理等的功能也不会生效,变相达到了初衷——破解DR.COM的防路由代理功能。 ------------
不过虽然本地认证越过了,但是……大约3~5分钟后,位于学校中心机房的DR.COM验证服务器将会检测出这个“非法连接”直接断开。
所以...看来最终的方向还是要使用反汇编,但不能使用简单的jmp屏蔽CreateThread,而是要在宿主程序创建该线程时将断点下至分支线程TcpIpDogL.dll的入口,将其终止或暂停。而与此同时DR.COM客户端也能与认证服务器保持数据通信,从而才能达到完美的破解。
遗憾的是,汇编语言并非某9专业所学,OD也不是某9强项,这东西偶尔才用一下,只是拿来手动脱脱壳什么的,目前是没什么精力继续深入下去了(还是先把这学期的期末项目完成再说吧XD...),等有空在慢慢弄。
---------------
P.S:其实还想到了一些方法,但没有尝试,因为咱的路由器没有带到学校来,上述实验仅仅是连接的讯井交换机以寝室为单位分隔的局域网,如果有路由器的话,破解的成功率可能会大一些(每个学校的DR.COM服务器设置都不一样,说不定上述失败的方法里就有能直接实现的也说不定呢^0^)所以感兴趣的同学还可以使用路由器试试上述方法....>_<
P.S再P.S:其实也不是为了能共享上网什么的,就这100KB不到的破网,真要用无线分出去四五个人用,那还不得撞墙啊...0rz
----------