网页外挂技术浅谈(入门篇)
转载自 http://gamebot.uueasy.com/read-htm-tid-215-page-1.html
其实网页外挂所用的技术很简单,只不过这是一个技术上的禁区,极少有书籍和资料介绍而已。
在继续往下看之前,你至少需要了解:
1.http协议的基本含义
2.socket通信基础
3.一门常规开发语言及软件开发基础
4.动态网页技术基础
网页游戏采用的通讯协议多种多样,常见的有:
1.纯http。如:商业大亨、36计、天问等。
2.AMF协议。AMF协议是一种扩展的http协议,采用该协议的页游一定是flash的,如:热血三国、绝地战争等。
3.socket协议。此类页游更接近传统的客户端网游,采用加密的数据包进行通讯,制作外挂难度远远超过上述2种。
4.其他。
协议分析
想要制作一个页游的外挂,我们首先要知道它是采用什么协议进行通讯的,我们需要用网络监听软件进行协议分析。
推荐:
1.HTTPAnalyzerFullV5。强大的http通讯监听软件,可以分析纯http和AMF通讯。
各大下载站点均有下载,能下载到注册机。
2.科来网络分析系统 2010 技术交流版。目前最好用的全方面网络分析软件,用于分析socket通信最方便。
这是国产品牌,可到官方网站下载,然后用email申请一个免费序列号即可。
作为初学者,我们从纯http的页游入手。
运行HTTPAnalyzerFullV5,然后打开网页,进入游戏。点击HTTPAnalyzerFullV5上的"start"开始监听,然后在游戏中随便进行点操作,这个时候HTTPAnalyzerFullV5中应该会有数据展现了。在数据表格的Type一栏,我们可以看到数据的类型。
如果每进行一个游戏操作,HTTPAnalyzerFullV5中都增加一条Type为text/html的通讯记录,那么无疑这个页游是采用纯http协议的。
如果每进行一个游戏操作,HTTPAnalyzerFullV5中都增加一条Type为application/x-amf的通讯记录,那么这个页游一定是采用AMF协议的。
下课了,实践一下协议分析吧。
继续...如果我们发现手上的这款游戏是纯http协议的游戏,比如36计、天策、天问之类的,该如何入手呢。
先看下HTTPAnalyzerFullV5抓到的数据吧。
从HTTPAnalyzerFullV5的界面可以看到,HTTPAnalyzerFullV5分为上下两栏,上面是数据列表,下面是选中的一条通讯的具体数据。
在下面一栏中,我们主要关心的是3项数据:
1.Header。这是http通讯的包头,从这儿我们可以看到host、cookies、referer之类的数据。
2.Response Content。这是服务器方的响应数据,也就是这次通讯从服务器端得到的内容,是游戏里面的相关数据。格式可能五花八门,但一般说来是可以理解的字符串。比如:"{兵种:步兵;数量10000;速度:5}"或者"{恭喜你,升级成功。}"之类的数据,当然一般说来是英文表达的,你必须得读懂它。
3.Post Data。这是客户端的发送数据,也就是指你在游戏中进行了什么操作。对于纯http协议的页游来说,这一项经常为空,因为每条游戏指令的参数可能是直接写在url中。
以36计为例,我们进入游戏,打开监听,点一下英雄府升级,此时HTTPAnalyzerFullV5中获得一条新的通讯数据。如果我们能用软件模拟这次通讯,那么就相当于在软件中进行英雄府升级了。
对于纯http通讯的模拟,我推荐使用XMLHTTPRequest方法。
XMLHTTPRequest是存在于msxml2.dll中的一个函数,msxml2.dll在任何一台windows中都有。而且这是一个AxtiveX的DLL,能被任何开发语言调用,甚至是被网页调用。
XMLHTTPRequest的作用是:对指定的服务器发起一个http请求,并获取返回的数据。
XMLHTTPRequest在各种语言下都能找到大量的例程,只需要上网搜索一下即可。
下面,了解一下XMLHTTPRequest并写个简单的程序来获取baidu首页的内容吧,这是网页外挂最基础也是最核心的技术。
XMLHTTPRequest的VB简单示例:
set xhttp = createObject("msxml2.XMLHTTP")
xhttp.open "POST", "http://www.baidu.com", False ‘False表示不采用异步方式
xhttp.send
ret = xhttp.responseText 'ret即返回内容,此处为百度首页的内容
这是使用XMLHTTPRequest同步调用方法,缺点是当内容没有返回时,软件会一直处于等待状态,不能干其他任何事,所以我们一般采用异步方式调用。
异步方式与此大同小异,上网搜索一下吧。
在36计中,假如升级英雄府的referer是"http://36ji.com/updatehouse.php?houseid=1",那么我们在软件中用XMLHTTPRequest模拟一次这个url的请求,就会在返回内容中看到诸如"{英雄府已经成功升级}"之类的文本。同时你会发现,游戏中的英雄府真的升级了!
当然在这之前,还有个很重要的工作就是登录。
要实现在客户端登录有2种方案:
1.在客户端嵌入IE组件,用户在IE组件中打开游戏网页登录,那么这个IE组件就获得了登录凭证,这个凭证在动态网页技术中通称:Session。
2.分析登录过程,自己用代码实现登录过程,然后保存登录凭证Session备用。
考虑到网页游戏一般都由多个运营商联运,所以如果自己写脱机的登录比较麻烦,要针对每个不同的运营商的登录接口写登录过程,所以一般推荐用嵌入IE登录。
嵌入IE登录很简单,在你的程序中放入一个IE组件,用户在这个IE组件中打开游戏网页,完成登录。
这里要提到XMLHTTPRequest的一个重要特性。
XMLHTTPRequest本身是不能为其设置Session的(深入了解动态网页技术的朋友可能了解,设置Session其实就是设置Cookies,虽然二者并不一样。)。但是XMLHTTPRequest会自动获得应用程序本身获得的Session,也就是说,在你自己的程序中嵌入了IE,如果用户在这个IE中完成了登录,那么这个程序中的XMLHTTPRequest将自动获得IE中的所有Session。
这个特性是把双刃剑,一方面,它给开发带来了便利,我们不再需要对XMLHTTPRequest设置登录凭证;另一方面,这意味着我们的程序运行一次只能开一个账号,不能实现子窗体多开的效果。如果要实现子窗体多开的效果,我们则需要使用其他更为灵活的http访问组件。
作为初学者,还是推荐使用XMLHTTPRequest,毕竟简单易用。
如果你完全理解了上述内容,那么你就应该有个大概的流程模型。
1。监听游戏过程,获取http请求细节。
2。在程序中嵌入IE,通过IE登录获取登录凭证。
3。使用XMLHTTPRequest模拟http请求。
入门篇介绍到这儿,接下来我们将进行初级实战篇。我们以36计这个游戏作为练手对象,因为这个游戏的通讯既不太难,也不至于太简单。
网页外挂技术浅谈(入门篇)相关推荐
- 浅谈计算机科学与现代教育技术,现代教育技术浅谈论文
正确.充分地认识现代教育技术在促进教育变革方面的作用和功能,有利于进一步推动教育技术在教学实践中的应用,有利于推进教育教学改革的深入发展.下面是学习啦小编给大家推荐的现代教育技术浅谈论文,希望大家喜欢 ...
- 网络游戏外挂制作技术浅谈
网络游戏外挂制作技术浅谈 2007-01-27 21:05 外挂无非分以下几种(依制作难度): 1.动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标.键盘等,使游戏里的人物进行流动或者攻 ...
- 智能车浅谈——硬件篇
目录 初识小车 硬件系统 1.电源系统 线性电源 开关电源 2.人机交互系统 3.MCU最小系统 4.传感器系统 摄像头 电感 编码器 5.驱动系统 机械结构 17届完赛代码 智能车系列文章汇总 前言 ...
- 智能车浅谈——图像篇
文章目录 前言 认识图像 基本含义 图像类型 数字图像 彩色图像 灰度图像 黑白图像 小结 图像处理 图像压缩 二值化 固定阈值法 大津法 图像降噪(腐蚀) 寻边线 总结 17届完赛代码 17届完赛代 ...
- vant-UI组件初使用:浅谈 - 解说篇
vant-UI(有赞UI)组件使用 "深入浅出".全局组件注册VS局部注册:有何区同? 默认开发者已经能够独立创建和搭建vue-cli项目 以vue默认生成的项目目录和文件为例:( ...
- 大数据技术之Canal入门篇
大数据技术之Canal入门篇 文章目录 大数据技术之Canal入门篇 写在前面 第 1 章 Canal 入门 1.1 什么是 Canal 1.2 MySQL 的Binlog 1.2.1 什么是 Bin ...
- Windows ECP技术浅谈
文章目录 Windows ECP技术浅谈 1. FltAllocateExtraCreateParameterList 2. FsRtlAllocateExtraCreateParameter 3. ...
- 直播回顾 | 子芽CCF TF:云原生场景下软件供应链风险治理技术浅谈
CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel.LinkedIn.M ...
- 移动通信交换技术浅谈
移动通信交换技术浅谈 近年来移动通信业务需求在国内迅猛上升,推动了移动交换技术的发展,其中,蜂窝式数字移动通信(GSM)在我国许多地方已经联网并可实现漫游通信.移动交换中心(MSC)是移动网路中的核心 ...
- 常见网络加速技术浅谈(一)
TCP/IP协议栈简介 当用户需要向网络发送数据的时候,用户实际上是通过应用程序来完成这项工作.应用程序向一个描述了对端连接的文件描述符(File Description)写数据. 之后位于操作系统内 ...
最新文章
- 【数据库优化专题】MySQL视图优化(一)
- 死磕Java并发:J.U.C之并发工具类:CountDownLatch
- js获取当前页面的参数,带完善~~~
- javascript ||用法
- 关于Rabbitmq的routingkey的作用
- RSA非对称加密算法的安全性何在
- dup/dup2函数的用法
- eclipse启动报错No java virtual machine was found after seearching the locations:XXXXX
- scrum 开发方式学习笔记
- linux csi驱动添加,CSI接口Camera驱动学习
- Nginx安装及配置文件解释
- Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
- 最强悍的FCKEditor配置和攻略(转载)
- FL Studio新手教程:FL Studio五大常用按钮介绍
- Nebula Graph - 集群模式部署
- 计算机毕业设计ssm高校学报管理系统lt10k系统+程序+源码+lw+远程部署
- SSL证书中的128位加密和256位加密有何区别?
- Springboot+采用协同过滤算法的家政服务平台的设计与实现 毕业设计-附源码260839
- 最新全国高校考研资料分享
- android 恢复出厂,安卓(Android)手机恢复出厂设置的方法