转载自 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计这个游戏作为练手对象,因为这个游戏的通讯既不太难,也不至于太简单。

网页外挂技术浅谈(入门篇)相关推荐

  1. 浅谈计算机科学与现代教育技术,现代教育技术浅谈论文

    正确.充分地认识现代教育技术在促进教育变革方面的作用和功能,有利于进一步推动教育技术在教学实践中的应用,有利于推进教育教学改革的深入发展.下面是学习啦小编给大家推荐的现代教育技术浅谈论文,希望大家喜欢 ...

  2. 网络游戏外挂制作技术浅谈

    网络游戏外挂制作技术浅谈 2007-01-27 21:05 外挂无非分以下几种(依制作难度): 1.动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标.键盘等,使游戏里的人物进行流动或者攻 ...

  3. 智能车浅谈——硬件篇

    目录 初识小车 硬件系统 1.电源系统 线性电源 开关电源 2.人机交互系统 3.MCU最小系统 4.传感器系统 摄像头 电感 编码器 5.驱动系统 机械结构 17届完赛代码 智能车系列文章汇总 前言 ...

  4. 智能车浅谈——图像篇

    文章目录 前言 认识图像 基本含义 图像类型 数字图像 彩色图像 灰度图像 黑白图像 小结 图像处理 图像压缩 二值化 固定阈值法 大津法 图像降噪(腐蚀) 寻边线 总结 17届完赛代码 17届完赛代 ...

  5. vant-UI组件初使用:浅谈 - 解说篇

    vant-UI(有赞UI)组件使用 "深入浅出".全局组件注册VS局部注册:有何区同? 默认开发者已经能够独立创建和搭建vue-cli项目 以vue默认生成的项目目录和文件为例:( ...

  6. 大数据技术之Canal入门篇

    大数据技术之Canal入门篇 文章目录 大数据技术之Canal入门篇 写在前面 第 1 章 Canal 入门 1.1 什么是 Canal 1.2 MySQL 的Binlog 1.2.1 什么是 Bin ...

  7. Windows ECP技术浅谈

    文章目录 Windows ECP技术浅谈 1. FltAllocateExtraCreateParameterList 2. FsRtlAllocateExtraCreateParameter 3. ...

  8. 直播回顾 | 子芽CCF TF:云原生场景下软件供应链风险治理技术浅谈

    CCF TF(技术前线委员会,Tech Frontier Committee)是中国计算机学会(CCF)为企业界计算机专业人士创建的企业间常态化合作交流平台,创始委员由Intel.LinkedIn.M ...

  9. 移动通信交换技术浅谈

    移动通信交换技术浅谈 近年来移动通信业务需求在国内迅猛上升,推动了移动交换技术的发展,其中,蜂窝式数字移动通信(GSM)在我国许多地方已经联网并可实现漫游通信.移动交换中心(MSC)是移动网路中的核心 ...

  10. 常见网络加速技术浅谈(一)

    TCP/IP协议栈简介 当用户需要向网络发送数据的时候,用户实际上是通过应用程序来完成这项工作.应用程序向一个描述了对端连接的文件描述符(File Description)写数据. 之后位于操作系统内 ...

最新文章

  1. 【数据库优化专题】MySQL视图优化(一)
  2. 死磕Java并发:J.U.C之并发工具类:CountDownLatch
  3. js获取当前页面的参数,带完善~~~
  4. javascript ||用法
  5. 关于Rabbitmq的routingkey的作用
  6. RSA非对称加密算法的安全性何在
  7. dup/dup2函数的用法
  8. eclipse启动报错No java virtual machine was found after seearching the locations:XXXXX
  9. scrum 开发方式学习笔记
  10. linux csi驱动添加,CSI接口Camera驱动学习
  11. Nginx安装及配置文件解释
  12. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
  13. 最强悍的FCKEditor配置和攻略(转载)
  14. FL Studio新手教程:FL Studio五大常用按钮介绍
  15. Nebula Graph - 集群模式部署
  16. 计算机毕业设计ssm高校学报管理系统lt10k系统+程序+源码+lw+远程部署
  17. SSL证书中的128位加密和256位加密有何区别?
  18. Springboot+采用协同过滤算法的家政服务平台的设计与实现 毕业设计-附源码260839
  19. 最新全国高校考研资料分享
  20. android 恢复出厂,安卓(Android)手机恢复出厂设置的方法

热门文章

  1. LearnOpenCV学习——平均脸
  2. gcc编译出错collect2: error: ld returned 1 exit status的解决办法
  3. 服务器显示未识别网络怎么办,未识别网络怎么解决
  4. Maya界面编程入门:在Maya中使用Qt
  5. TidTcpClient总结
  6. 读书记:认知觉醒(三)元认知、自控力
  7. MySql生日闰月处理
  8. 【bzoj4972】小Q的方格纸 前缀和
  9. 【破解】PyCharm2018专业版激活(激活到2100年)
  10. android 定时打开app,如何 定时启动你的Android App