怎么用java写一个网页游戏的外挂,比如开心农场 都需要哪些步骤?有没有参考的例子? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [置顶] 开心网外挂开发手记 [ 2008/09/18 00:38 | by turbozv ] 开讲。做一个Web游戏外挂需要的准备知识:1) 需要有耐心2) 熟悉HTML, JavaScript,特别是FORM3) 熟悉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 protected]&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.phpPOST内容: verify=xxx&puid=yyy&_=d) 读取邻居家车库信息URL: /parking/user.phpPOST内容: verify=xxx&puid=yyy&_=e) 停车URL: /parking/park.phpPOST内容: 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 ///////////////////////////////////代码可以去http://kaixin.googlecode.com/svn/trunk/ 下载 用svn代码我看过一点 那个朋友写得还挺好的 分析html页面和js,分析请求和回复,然后模拟浏览器Fidler 或者Firebug 都是不错的注意 俺用loadrunner写了几个脚本,在服务器上一天24小时模拟点击。 俺用loadrunner写了几个脚本,在服务器上一天24小时模拟点击。这个主意不错. 给一份小型项目,前面5位平均100 怎样用移位来解决这个问题? 关于程序导数据优化问题~!请教大侠~ 我跑一个hibernate例子插入.........update都成功可是select总是不行!session.createQuery这样写有问题吗? JComboBox能不能设定其内的一个选项不能被选中? 为何我的class文件在浏览器中加载不进来呢? 求大神解决一个递归笔试题 以下语句为什么不对呢? 各位大虾请帮忙,jb6中怎样得到一个Jpasswordfield的原始值 APPLET中,显示MOUSE坐标(我分不多) Java参数传递问题 初学java,直接懵了。。。。求指导
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 protected]&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
///////////////////////////////////
代码可以去http://kaixin.googlecode.com/svn/trunk/ 下载 用svn
代码我看过一点 那个朋友写得还挺好的