[晴 2008/09/17 08:38 | by turbozv ]
开讲。

做一个Web游戏外挂需要的准备知识:
1) 需要有耐心
2) 熟悉HTML, JavaScript,特别是FORM
3) 熟悉HTTP协议,特别是Cookie, URL的编码方式和POST, GET内容格式
4) 熟悉游戏本身,能抽象出最优的赚钱/升级的数学模型
5) 掌握一门语言,白菜萝卜都可以,我比较喜欢用Python和C#
6) 需要一些抓包的工具,比如Fiddler

好了,来个例子,开心网争车位.

首先,我们看看一个正常用户玩的时候是怎么玩的。
1) 浏览器输入 www.kaixin001.com ,输入用户名,密码,点登陆
2) 登陆后选择左侧的“争车位”,进入到争车位
3) 看看谁在我的车位里,一一贴条
4) 看看自己的车哪些停车时间操作15分钟了,一一找个空的不免费的车位挪过去
5) 登出开心网,关闭浏览器

看看让程序怎么来实现1-6。
1) 登陆开心网
在Fiddler的帮助下,我们知道登陆是把FORM提交到/login/login.php,POST内容是url=%2F&email=xxx@xxx.com&password=xxx
用C#可以方便的完成这个POST操作,然后得到服务器的返回,然后根据返回的内容里找一个关键字就可以判断这次登陆操作是否成功了。(比如我找的就是"<title>我的首页 - 开心网</title>")

2) 登陆争车位
这次是一个GET操作,URL是/app/app.php?aid=1040。
需要说明一下的是,这里没有提供用户名密码,服务器怎么能知道是哪个用户呢?Cookie在这里就发挥了它的作用。
C#里存放Cookie的方法是new 一个CookieContainer,然后所有的HttpWebRequest的CookieContainer都用它。
好了,取得这个页面以后,我们能得到很多信息:(这些信息是JSON格式)
a) 好友列表,每个好友的状态(在线/车位满)
b) 自己的车库信息,停了那些好友的哪些车,分别赚了多少钱
c) 自己的汽车信息,多少辆车,分别停在哪里,赚了多少钱
根据这些信息,我们可以得到一个停放的列表(车位不满的好友列表)

3) 贴条
贴条是一个POST操作,URL是/parking/post.php,内容是verify=xxx&parkid=yyy&p=1&_=
parkid很好理解,车库信息里直接可以取到,那么verify怎么得到的呢?
我当初的第一反应是Cookie数据通过某种运算得到的,不过后来我看了登陆争车位的html后才发现原来这个verify是这样写的:
...
<script language=javascript>
var fs2_pars = "f1";
var g_verify = "383639_1040_383639_1221703779_49963b942199e94b88e405d0f7b1651d";
var g_first = parseInt("0");
var g_touid = parseInt("0");
var g_checkswf = 0;
.....
很好,直接去这个从HTML取得的值就好了。

4) 挪车位
这个操作稍微复杂了一点点,具体的HTTP请求大家可以去分析一下,我分析的结果如下:
a) 是否是免费车位
在JavaScript里有代码:
v_park_free = (v_parkid >> 16) & 0xff;
      if (v_park_free)
      {
        v_mycar += '免费车位';
      }
      else
      {
        v_mycar += '私家车位';
      }
c) 读取邻居家车库信息
URL: /parking/neighbor.php
POST内容: verify=xxx&puid=yyy&_=
d) 读取邻居家车库信息
URL: /parking/user.php
POST内容: verify=xxx&puid=yyy&_=
e) 停车
URL: /parking/park.php
POST内容: verify=xxx&park_uid=xxx&parkid=xxx&carid=xxx&neighbor=xxx&a=1&first_fee_parking=0&_=

5) 登出
GET URL: /login/logout.php

恭喜你,基本的操作你都明白了。

时间晚了,该睡觉了,一些高级主题改天再写~

--------------Google Code 分割线-------------
http://code.google.com/p/kaixin/
---------------------------------------------------

所有代码都上传到了 http://code.google.com/p/kaixin/
大家可以发信给我申请writer权限,或者直接把写好的代码发给我由我来merge。
我的Email: turbozv(at)gmail.com
程序 | 评论(121) | 引用(0) | 阅读(77175)
盘古开天
2008/10/23 18:42
我想得到帮助。请与我联系。谢谢!
turbozv 回复于 2008/10/23 19:48
turbozv _AT_ gmail.com
开心网
2008/10/20 07:09
这个链接可以用:

reg.kaixin.com/inviteregist.do?i=700034104&appId=35&code=NkVLmMtZeV&from=&inviteType=2&buddygroup=&ss=80100&logid=260402

复制代码粘贴就到浏览器就ok了
小胖
2008/10/14 06:16
acc code是什么意思叫,有什么用
加油
2008/10/07 20:52
LZ辛苦了,加油shy
icesealiang
2008/10/06 23:20
如果加了验证码会导致大量用户流失。鉴定完毕。

拜托不要老提验证码好不好,生怕别人不知道啊。
严正
2008/10/06 22:55
如果登陆加了验证码,外挂还有用吗???thankwsx@gmail.com 谢谢回邮件
wah
2008/10/04 08:45
开心网争车位现在改的每个月一个号只能接收一次送车了。没法刷车了。
凤凰
2008/09/30 17:29
你好,我今天装了一下外挂争车位1.0,但装好后,等我开心网首页一切都很正常,只是在进入争车位首页后,我就看不倒自己包括朋友们车库的图片,其他都能看到,能帮帮我吗
求助
2008/09/24 06:01
fear   大侠们 快 更新吧
三个软件整合
2008/09/23 23:03
希望能够把奴隶 咬人 停车 整合在一起,一次登陆顺序完成这三样,这样就不用开三个窗口了
似是故人来
2008/09/22 07:24
汗,这个东东只要有sniffer就可以了,还居然有人要求开源?晕厥~~~~~~~模仿建立链接获取cookie然后是Get Post不就可以了么,懒人真多
00
2008/09/21 05:28
楼主,期待新的停车外挂啊,不然没法玩下去了
jklhlk
2008/09/21 02:40
开始能用来的!现在不行了,楼主加油!!!!
like
2008/09/21 00:49
是啊!楼主以前做得不错!再接再厉!
haha
2008/09/21 00:48
开始能用来的!现在不行了,楼主加油!!!!
avatasia
2008/09/21 00:25
现在停邻居家这个可能修正了,如果有好友的话,再停在邻居家就会失败.
2008/09/20 23:39
早就想说了。 “烂”
1111
2008/09/20 23:37
sbbad
外挂
2008/09/20 23:36
你的外挂做的真不杂地。害的我的每个小号都车都‘成功’停在同一个小号同一个车位上。 终极bug,我决定放弃你的。 我后面用happy_v1.2了。比你的好用多了。最起码每次停车都能成功。
   你的外挂不要按照你自己玩开心网的使用习惯来开发。多考虑下别人的感受。
  ”你完全不管别人受不受的了,还在哪里欧哦欧哦!”
  --------我不是做广告的。我就是玩开心网的。
燒餅
2008/09/20 19:43
争车位不能用拉,老大们救命啊~~~~~~~~~
knigh
2008/09/20 08:20
V1.0的就是提示停车成功,但都是停在同一人的同一位置上,其实车子根本没动过,这样的事已经连续有三四天了.
jameshook
2008/09/20 05:57
开心太无脑了……加个a=1这种弱智参数难道就能挡住了?
Arcer
2008/09/20 03:25
老大看一下争车位外挂,已经设置了主人ID,停在主人的车前几次不移动,但是好像停车到一定时间后,还是会自动移走……不知道是什么原因。感谢你的作品,辛苦辛苦~~
jackxu2001
2008/09/19 19:30
登陆帐户的时候总是显示:failed!请教解决方法,谢谢!
turbozv 回复于 2008/09/20 02:47
账号密码错误?
小浪
2008/09/19 11:48
老大们,什么时候能出好用的外挂啊。。。现在外挂说是说移动了车位,但是上去看,车还是在原地不动的!
turbozv 回复于 2008/09/20 02:47
V0.9b
iCaca
2008/09/19 07:10
谢谢老大, 我也在google code上做开源项目
turbozv 回复于 2008/09/19 07:26
一起来做吧,我把几个外挂的代码都放上去了
适用者
2008/09/19 05:52
现在0.9版本还是无法试用
0.9a也不行
可以显示停车信息,但是无法移动啊.求助!
turbozv 回复于 2008/09/19 07:26
V0.9a可以的
开心不开心
2008/09/18 23:57
grin 开心网 又出现500http错误了  他们又想做什么 晚上回家看看 能不能上去  再试试new 0.9 哈哈
崇拜者
2008/09/18 22:45
v0.9地址在第三页阿
崇拜者
2008/09/18 22:45
分页: 2/5 第一页 上页 1 2 3 4 5 下页 最后页