[as3]Flash自动进入方便面三国游戏
作者:弃天笑 日期:2008-11-12
之前有一段时间在玩webgame,本来打算看能不能看发出简单的外挂,让自己玩游戏玩得更简单些,可惜没时间,最终只是用flash开发了一个账号登陆器,就是预先存多个账号,然后选择对应的账号,就会登陆到游戏里面,绕过每次输入帐户密码的过程。
下面发送的是根据账号自动登陆的flash,把生成出来的gameurl复制到浏览器上,就可以马上进去游戏了
演示flash:

接下是简单的原理说明:其实就是利用Flash去请求网页,然后解析网页返回的数据,提取出自己所需要的数据,然后再进一步请求页面,如此反复而已:

再接下来就是代码的简单说明了
这是初始函数
程序代码
/**
* 程序入口
* @author 弃天笑
* @date 2008.06.10
*/
private function init():void
{
System.useCodePage = true;
//获取登陆首页数据
loader = new URLLoader();
request = new URLRequest();
requestEsate = "fmbMain";
request.url = "http://baidu.51wan.com/login_51wan.php?game=fbmsg";
request.method = URLRequestMethod.POST;
loader.addEventListener(Event.COMPLETE,onLoader);
loader.load(request);
serverList.dataProvider = boxData;
loginBtn.enabled = false;
copyBtn.enabled = false;
nameText.text = "sujun.org";
passText.text = "123456";
}
程序代码
//进行登陆请求,分析出必须的参数
var idNameFind:String = "test.setAttribute('name','";
var idName:String = getStringValue(contents,idNameFind,"')");
var timestampValue:String = getStringValue(contents,"'timestamp').value='","';");
var signValue:String = getStringValue(contents,"('sign').value='","';");
//加入参数,分析页面代码
var variables:URLVariables = new URLVariables();
variables[idName] = idName;
variables["timestamp"] = timestampValue;
variables["sign"] = signValue;
variables["dontupdateagain"] = "dont";
variables["gamename"] = "fbmsg";
variables["username"] = nameText.text;
variables["password"] = passText.text;
//进行登陆连接
requestEsate = "login"
request.url = LOGIN_URL;
request.data = variables;
loader.load(request);
这一段是解析登陆页面的一些数据,例如解析出页面包含的验证码什么的
程序代码
//根据从字符串中取出所需的数据
private function getStringValue(contents:String,findStr:String,endSign:String):String
{
var idNameFind:String = findStr;
var idNameStart:int = contents.indexOf(idNameFind);
var idNameEnd:int = contents.indexOf(endSign,idNameStart);
var idName:String = contents.substring(idNameStart + idNameFind.length,idNameEnd);
return idName;
}
全部代码就不贴出来了,大家可以把代码下载下去,用flex编译一下就可以运行看到效果了
代码下载:
点击下载此代码
下面发送的是根据账号自动登陆的flash,把生成出来的gameurl复制到浏览器上,就可以马上进去游戏了
演示flash:

接下是简单的原理说明:其实就是利用Flash去请求网页,然后解析网页返回的数据,提取出自己所需要的数据,然后再进一步请求页面,如此反复而已:

再接下来就是代码的简单说明了
这是初始函数
程序代码/**
* 程序入口
* @author 弃天笑
* @date 2008.06.10
*/
private function init():void
{
System.useCodePage = true;
//获取登陆首页数据
loader = new URLLoader();
request = new URLRequest();
requestEsate = "fmbMain";
request.url = "http://baidu.51wan.com/login_51wan.php?game=fbmsg";
request.method = URLRequestMethod.POST;
loader.addEventListener(Event.COMPLETE,onLoader);
loader.load(request);
serverList.dataProvider = boxData;
loginBtn.enabled = false;
copyBtn.enabled = false;
nameText.text = "sujun.org";
passText.text = "123456";
}
程序代码//进行登陆请求,分析出必须的参数
var idNameFind:String = "test.setAttribute('name','";
var idName:String = getStringValue(contents,idNameFind,"')");
var timestampValue:String = getStringValue(contents,"'timestamp').value='","';");
var signValue:String = getStringValue(contents,"('sign').value='","';");
//加入参数,分析页面代码
var variables:URLVariables = new URLVariables();
variables[idName] = idName;
variables["timestamp"] = timestampValue;
variables["sign"] = signValue;
variables["dontupdateagain"] = "dont";
variables["gamename"] = "fbmsg";
variables["username"] = nameText.text;
variables["password"] = passText.text;
//进行登陆连接
requestEsate = "login"
request.url = LOGIN_URL;
request.data = variables;
loader.load(request);
这一段是解析登陆页面的一些数据,例如解析出页面包含的验证码什么的
程序代码//根据从字符串中取出所需的数据
private function getStringValue(contents:String,findStr:String,endSign:String):String
{
var idNameFind:String = findStr;
var idNameStart:int = contents.indexOf(idNameFind);
var idNameEnd:int = contents.indexOf(endSign,idNameStart);
var idName:String = contents.substring(idNameStart + idNameFind.length,idNameEnd);
return idName;
}
全部代码就不贴出来了,大家可以把代码下载下去,用flex编译一下就可以运行看到效果了
代码下载:
点击下载此代码
[本日志由 弃天笑 于 2008-11-13 02:45 PM 编辑]
文章来自: 本站原创
引用通告地址: http://www.sujun.org/trackback.asp?tbID=39
Tags:
文章来自: 本站原创
Tags: 评论: 4 | 引用: 0 | 查看次数: 2861
- 1
解析他的html代码,把所有需要提交的内容都用程序过去,包括html里面隐含的提交数据,例如那个验证码等等
问题是他post一大堆变量过去,都不知道哪个对哪个呢:)
解析他的HTML代码就可以了呀
你怎么分析到这个webgame登陆时,post过去的用户名的变量和密码的变量呢。
- 1
发表评论
订阅
上一篇
下一篇





