当前位置: 首页 > news >正文

开心网外挂开发手记

做一个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

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


^_^ 这个好做 我给你说下大概

分析网页游戏的实现.
如果是用ajax实现的,那很好,你就把它的html和js分析一下,就用傲游的ViewPage插件,
一般来说用ajax的都用json数据在服务器和客户端进行交互,然后找到某功能对应的js代码,就是ajax.post(url,...
记下这个url
用httpwebrequest登录游戏,然后向上面得到的url post数据就可以了

比较麻烦的一点就是刷新机制,比如有N个功能,对应界面上的M个控件,你可能需要N+个线程进行刷新...这还不算,有很多数据必须满足一定条件才能获得...

总起来说,几个功能比较简单,如果N多功能就比较麻烦了
.net3.5有json序列化和反序列化的功能,很好用,自己再建立一个数据绑定机制和刷新机制 就能工作了
http://www.xdnf.cn/news/853471.html

相关文章:

  • Rockchip | 使用SD卡启动或升级固件到本地存储
  • 世界顶级五大女程序媛,不仅技术强还都是美女
  • Windows的EXE文件(1)
  • 卡巴斯基KAV/KIS 6.0/7.0 永久免费激活方法
  • 怎么做英文外链代发
  • ThinkPad T41/43 -- 安装Windows XP及其驱动程序
  • Visual SourceSafe 6.0 安装配置简要说明(转)
  • 低格格式化过程及与高级格式化的区别
  • Joomla安装图文教程 (送 Joomla 中文语言包)
  • 3.4 DLL注入:全局消息钩子注入
  • CSS3 经典教程系列:CSS3 圆角(border-radius)详解
  • 网卡参数设置建议与各个网卡参数含义详解
  • cortex-a8原理实践及应用
  • 获取IP地址
  • java开源的cms系统jsp cms系统
  • 第四章 数据字典详解
  • Discuz论坛设置论坛版块横排后,如何设置显示版块图标
  • nero刻录错误 序列号问题
  • 如何破解XP开机密码
  • Discuz!6.0 升级至 Discuz!7.2
  • C++在线五子棋对战(网页版)项目:实用工具类模块代码实现
  • 主流WebService框架
  • 2021年月薪多少,才能在北上广深“体面”生活?
  • android视频播放器排行榜,安卓视频播放器哪个好 五款主流视频播放器对比
  • iOS开发 swift 3dTouch实现 附代码
  • 黑马点评项目学习笔记(15w字详解,堪称史上最详细,欢迎收藏)
  • 解决 IE 选项卡重启的问题(此选项卡已经恢复)(ZT)
  • 对日软件外包
  • 谢国忠观点
  • Windows11系统提示找不到d3dx9_26.dll文件如何处理?