文章标签 ‘开心网’
老婆出去玩了,我一个人在家里没事干,花了一天用Ruby写了一个开心网的Shell。目前支持“争车位”的功能。
看到好多朋友都在开心网上做了前世的测试。有的前世是孤儿,有的是盗墓的,有的是道士。。。好奇,也想测一下。结果却发现,它不知道我的前世是什么。。。
我认识的很多人都是开心网的用户。而这些人中,又几乎所有的人都在玩“争车位”的组建游戏。我也玩了一下,一开始觉得挺能满足人的虚荣心的,毕竟可以通过鼠标就可以买到自己梦想的车了。但是不到一星期,我就有了写一个程序,自动去玩的冲动。 最开始写了一个简单的贴条程序,也就是根据一些策略,给自己车位上的车贴条。(这就是为什么有的人会发现我早上6点多给他们的车贴条的原因,显然我是不可能6点钟起床的)后来,老婆说有一个人老贴他的条,想小小的报复他一下。我就又写了一个小程序,定期的据报那个人的车(如果在自己的车位上就直接贴条了)。这个程序没有怎么使用,老婆就说已经和平解决矛盾了。 共享一下我对于“争车位”游戏的技术分析: 首先,因为开心网登录没有使用capcha,就是经常看到的验证码机制,所以给写程序登录开心网亮了绿灯。 第二,这个游戏的算法简直太简单了,因该不能称为游戏吧,因为它的交互性很少,都是一个人自己玩(这个与从Facebook上抄袭过来的朋友买卖是鲜明的对比)。更像是一个初学级别的算法题。 第三,这个游戏前台即使使用的是Flash也没有对HTTP请求的内容进行加密。这样我就可以轻易的截取这个游戏发送的所有HTTP请求进行分析了。发现,制造类似的请求非常之简单。 介绍四个“争车位”游戏的内部机制: 在“争车位”游戏的首页,源代码中找到var v_userdata=这一行JavaScript,后面就是一个JSON格式的数据信息,包含了自己车位的信息。(比如,车位上停了什么车,谁的车,挣了多少钱,车位的ID,等等,另外还有自己车的信息)找到var g_verify=这一行,后面就是一个verify string,只要有了这个字符串,开心网就会认为对面是一个用户。 /parking/post.php是贴条的网址。只要把自己的某个车位ID以及那个验证字符串和一个置为空的下划线变量POST到这个网址。这个车位上的车就会被贴条。(当然必须是你自己的车位) /parking/usercar.php是获得好友的“争车位”数据的的网址。只要把好友的用户ID(是一串数字,并不是用户名,在任何开心网的URL里面看到uid=xxxxxxx,这个就是用户ID了)以及验证信息作为参数GET这个网址,就会得到这个好友的车位信息和所有的汽车的信息。包括,几辆车,停在哪里,等等。这个没有好友限制,任何人的信息都可以得到。(只要你能知道对方的用户ID) /parking/call.php是举报的网址。只要把指定的车位ID以及验证信息POST给这个网址,就把该车位上的车举报了。这个是有好友限制的,也就是必须是好友才能举报。 只要搞定了这4条,写程序去“争车位”就应该没有什么问题了。 最后附上一个简单的贴条程序:(用Ruby写的) http://www.zhangdi.name/UserFiles/File/kx_parking.rb








