srun3000 php客户端(可用在openwrt等路由器上)开源下载

很久前学校开始用srun3000了,那时我用php写了个客户端,放在了一个刷有openwrt的路由器上,于是可以实现校园网共享。

我还写了篇文章解析了srun3000的协议并且给出了php的登录示例,有些网友想要我完整的源码和安装方法指导,但是我一直没有给,一个原因是我的php代码已经给了,也有注释,懂点php的直接可以拿来用,我的自用版本就自己用着了,另外嘛,确实自己太懒,没有给个详细的怎样在路由器上安装的教程。

最近学校又换客户端了,也是srun的,已经分析出协议了,路由器上也可以使用,有时间再写篇文章。既然更新换代了,老的也用不了了,那就把老的拿出来分享吧。

以下是我自用的客户端的简要的安装使用方法(一些自用的特殊功能已经去掉,只包含登录,保持在线和注销功能,通过浏览器访问客户端,可记录用户名密码,界面如下):

srun3000web

安装指南: 继续阅读srun3000 php客户端(可用在openwrt等路由器上)开源下载

srun3000协议简析及php登录示例

一直想让路由器也用上srun3000,但是不知道协议,我们这又关闭了web认证方式。后来google到了一些文章,通过实验,基本可行,现在我来总结、简析一下。

srun3000这个东西有个网页认证方式,就是连上网后,随便打开一个网页,就会自动跳转到一个网页,像cmcc那样。这个网页有可能是个登录界面,那么登录即可。可惜我们这不是的,而是一个信息页面,可以下载客户端。但是如果用手机打开,就会跳转到mobile.html,这个是个登录界面,但是输入正确的用户名密码之后,提示不允许web登录。

web登录是向认证服务器post一段数据,后来抓包发现,客户端也是post这段数据,只不过有些值不同,密码也经过了处理:

username=%s&password=%s&drop=%d&type=2&n=%d&mac=%s

数据中username是用户名,password是密码,drop是是否只访问免费资源(1是,0否),type代表认证方式(1为web,2为客户端),n代表客户端版本(我这是8),mac当然是mac地址了

web方式password是明文,而客户端方式是加密了的。加密方法是这样:

有两个字符串,一个password,一个key,设password 为 12345678,key为 20678439。

逆序循环取key的字符,也就是 9,3,4,8,7,6,0,2,9,3,…
分别与password 的 [0], [1], [2] … 直到password结束 进行异或运算
对于结果,一个字符

[0],[2],….[2n]的字符,译码之后:(低4位 加上 0x36 )连上 (高4位 加上 0x63)
[1],[3],….[2n+1]的字符,译码之后:(高4位 加上 0x63)连上 (低4位 加上 0x36 )

然后连接之后的结果就是提交的密码的密文

提交的时候,用 urlencode或类似的函数处理这段数据。其中key与服务器时间戳有关系,详情可参考此处

搞定密码加密了,就可以实现登录了。向认证服务器的3333端口post上述数据即可,服务器会返回数据。php代码如下: 继续阅读srun3000协议简析及php登录示例

博客已经修复

昨天发现博客出现了各种诡异的问题。

先是我直接登录后台,提示我要升级数据库,点击升级,结果出现各种错误信息,很明显的一条是options这个表crash了,看来是上次宕机引起的,习以为常了,修复一下就没事了,于是去数据库里把这个表修复了。接着继续登录,但提示我的密码错误,难道保存密码的表也崩溃了?但是没有啊!好吧,重置密码,登录后台。后来我把上次做的cnbeta评论查看器修复了,去编辑原来的文章,发现这个文章的图片没显示,没在意,以为网络问题。结果回到前台,发现所有的文章图片都不显示了,变成了\\。

经过查看源代码,发现文章里所有的引号前面都多了个反斜杠,所以图片和链接都不工作了,是什么原因呢?看到\”可以想到这个是个转义引号的,但是为什么直接显示到文章了?难道wordpress程序出问题了?前两天升级过,但是google一番没有发现有人报告类似问题。难道是数据库的问题?于是登录mysql,发现posts表里确实都多出了反斜杠,但是其他表没问题。php为了防止sql注入,会在插入数据前自动加反斜杠的。可是插入之后因为转义了,是没有反斜杠的,除非是“\\””才会变成“\””。我以前备份过数据,发现以前的没有出现反斜杠,看来是数据库出问题了。于是我把posts数据表导出,直接用记事本查找替换,再导入,解决了。检查了所有文章,发现多了些奇怪的文章,是一些我设置的分类等,还有页面也变成文章了,很是奇怪。经过对比新老数据库,发现这些文章的type属性都变成了post,而以前是menu和page等,好吧,继续改回去,一切都恢复正常了。

总之是数据库出问题的,但是原因是什么呢?不像是宕机引起的数据被破坏,因为没有报告表posts崩溃,而且变化的数据都很规律,而且也是有选择性的,比如type属性全变post了,而其他又没变化。难道是被黑了?某人侵入的我的服务器,把我的博客密码改了,然后改一下数据库?如果是这样,那这黑客也太无聊了。

换服务器了

貌似又有一个与木有上博客了。前两天空间到期了,于是把东西都转到新的服务器上了。

这是一个不错的vps,windows系统,自定义功能很强。把原来老网站都搬过来了,原来的主机是linux的,一些静态转发、cron等在windows里没有。静态转发通过isapi伪静态软件实现了,虽然不是完全兼容linux的,不过效果也不错。cronjob通过windows的计划任务实现了,还算完美,于是我的qq机器人又工作了。

搞web开发其实挺有意思,配置server也很好玩,在服务器上搭建了ssh,vpn自己用,很不错^_^ 以后我也分享一些web开发的经验。

刚才把wordpress也转过来了,但是出现了一些问题,登录时显示Warning: Cannot modify header information – headers already sent by (output started at wp-config.php:1),查了下找到了方法,原来是windows的记事本惹得祸,转移网站的时候改了下数据库设置,以前也出现过类似的奇怪现象,所以编辑php不要嫌麻烦而用记事本,还是用专业点的软件。