Freedom Netkeeper宽带拨号工具

       写这个宽带拨号工具的原因是我电脑上的E信每次启动都太慢了,并且有时候拨号成功后需要等一会才能上网,要知道我可是用的SSD,E信应该不会启动得很慢。于是开始着手写一个程序替代E信,其实去年就有这个想法了,当时在想如何去获取E信的用户名加密算法。你可能会问为什么我会知道E信是用户名加密而不是密码加密,其实是因为在2年前我就曾经想过用路由器拨E信,也找到过类似的帖子(帖子传送门:http://tieba.baidu.com/p/3302629288#,武汉的一个学计算机的大神写的),但是那个大神用的OD去动态调试的E信客户端,然后获取加密后的用户名,再放到路由器上拨号,但是我用的win8,一来win8不兼容OD,二来也不会用OD动态调试;于是当时就放弃用路由器拨E信了,但是知道了E信是用的动态用户名加密。

       到后来学了C#编程语言,写过windows phone客户端,也顺带学了点winform。想着现在应该能写个E信替代程序了,但是以前的研究只发现了E信使用的动态用户名加密,并不知道加密算法,但是巧就巧在去年学嵌入式的时候接触了一点OpenWRT,在与OpenWRT有点关系的一个论坛里发现了一篇用OpenWRT上的应用程序拨E信的帖子(传送门:http://www.right.com.cn/forum/thread-141979-1-1.html),当时是想去刷个OpenWRT了然后用路由器拨号,但是仔细研究了下那个大神写的.so库并不能用于我的路由器上,因为CPU不同,需要获得源码后重新编译,虽说有源码,但是要在Linux下编译,我当时也没怎么学过Linux,再者那时候E信客户端的启动还算快,也没有出现连接后不能上网的情况,于是当时只把大神的源码给下载了下来,没有怎么去看。

       直到后来有一个学弟找我问E信的问题,说想用路由器拨号试试,问我有没有E信的加密算法,于是我就把大神的源码给了他,后来他用MFC写了个控制台成功在windows下拨通E信,他也试了下路由器,好像是在5秒内把账号填上去才能用路由器拨号,当时就找他要了那个控制台程序的源码,想以后试试自己用C#实现。那段时间在搞嵌入式实时操作系统移植,搞完后就开始写C#的控制台程序了,敲了一晚上的代码之后用C#写的控制台程序成功拨号,于是立马把E信客户端卸了,用上自己写的程序。

       用了几天之后就想只自己用好像不太好,毕竟我也是在看了别人的源码之后写出来的,于是就想让湖北的学生都用下把,但是只有一个拨号功能好像太简陋了,加点功能吧,那就实现路由器拨号功能。于是再次把那个贴吧的帖子翻了出来,参考他的思路去接入路由器并设置路由器拨号,当然这个过程中少不了抓取和路由器通信的网络封包,后来在TP-LINK WR740N上成功拨号,但是当时发现成功拨号一次后系统日志里面报了两个异常,并且不能再设置路由器拨号了,只有重启后才能再次拨号。

       于是换一个路由器TP-LINK WR842N,直接用以前的程序发现无法接入路由器,后来抓包发现需要设置一个Referer头才能接入路由器,更改程序后成功拨号,断开后也能再拨,但是WR740N就不能,后来发现是WR740N的固件内部有BUG,升级固件后就好了。后来又找来一个TP-LINK WR703N,升级最新固件后测试程序是否能正常工作,但是发现程序又出错了,后来抓包发现这个固件使用了cookie验证用户身份,于是我又重写了HTTP请求,然后程序就能在WR703N的最新固件上运行了,后来就是开始设计UI,做测试,测试基本没有什么BUG了就在贴吧里面放出下载链接。然后还去注册了个GitHub账号,准备开放这个工具的源代码,因为这个程序挺小的,1000行代码就差不多搞定了,也没有什么不能让人看的,不过除了客户端加密用户名和密码的源码没有公开,其余都已上传GitHub。链接地址:https://github.com/dev-here/Freedom-Netkeeper

       END

你可能感兴趣的:(Netkeeper)