Bacysoft.cn

标题: 网游辅助(外挂)程序开发教程及实例分析01 - 概述 [打印本页]

作者: bacy001    时间: 2014-9-3 20:43
标题: 网游辅助(外挂)程序开发教程及实例分析01 - 概述
关键字:网游辅助 网游外挂 VS2010 MFC WinPcap 多线程 封包获取 封包分析 游戏控制

网络游戏有很多种,对应的辅助(外挂)程序也有很多种。网络游戏与辅助(外挂)程序的关系可以说是如影随形,如果一款网络游戏如果没有与之对应的辅助(外挂)程序,那它一定不是什么好游戏。当然如果辅助(外挂)程序强大到足以影响游戏中的平衡,那么这款游戏也就离坟墓不远了!

辅助(外挂)程序产生的诸多原因中有一种是因为游戏中的设定不够合理,比如很多重复性操作,采集材料,打怪升级,来回跑路等等,费时费力,不够人性化,这时候就如果有一个不知疲倦的机器人程序(辅助或外挂)来帮助玩家完成这些枯燥的工作,该是一件多么惬意的事情! 而这也是本教程和实例所针对的情况。至于那些利用游戏漏洞刷钱刷装备,隐身,透视等破坏游戏平衡性的辅助(外挂)程序不在本文所讨论的范围内,想了解这方面内容的朋友请绕道了!

好了,下面言归正传。笔者所玩的一款 MMORPG 游戏中各种装备合成都需要消耗大量材料,而材料的采集是一件非常无聊的事情,免费的材料挖一会就没了,于是一般都会花钱(真钱哦)买门票去无限资源的采集场挖材料。无限采集场的材料虽然无限,但是游戏人物的采集工具(锄头、斧子等等)有耐久度,而且人物背包有负重限制,于是在无人看管的情况下,时间一长就会出现工具损坏或者背包装满而无法继续采集,而无限资源采集区的门票都是按时间算的,这可是我用真金白银换来的啊,花了钱还不让我爽一下,这破游戏的设定太不人性了!

如何解决这个问题呢!?答案当然是开发一款辅助(外挂)程序!这款辅助(外挂)程序需要实现以下功能:
1、能够检测人物手中工具的耐久度;
2、能够检测人物背包的负重情况;
3、能够模拟玩家的鼠标与键盘操作,用于实现工具替换,以及材料清理等工作。

要实现对游戏数据的检测,有两种方法。一种是扫描客户端进程,找到存储该数据的地址,然后监控该地址中数据变化的情况。但是现在网游客户端相对来说都很复杂,很多在单机版游戏上有效的方法在网游面前统统无效。当然高手还是有办法找到这些数据在内存中的位置,或者说客户端隐藏这些数据的方法。本文介绍相对简单的第二种方法,那就是通过获取并分析封包数据,以获得游戏运行状态中的各种数据。当然有些变态的游戏连封包也加密了,那就要么先去潜心研究几年加密解密技术,要么赶快换游戏,哈哈!

WinPcap 与 Wireshark
在 Windows 平台下有一款专业的封包处理软件 WinPcap,大名鼎鼎的 Wireshark(Ethereal)就是基于 WinPcap 开发。简单说 WinPcap 提供了一组获取网络封包的编程接口,而 Wireshark 则提供了强大的封包数据分析能力。要想通过封包数据提供的信息开发辅助(外挂)程序,WinPcap 和 Wireshark 都是必装软件。同时 WinPcap 和 Wireshark 均是开源软件,有能力的同学可以好好研究下:)

本文介绍的辅助(外挂)程序中捕获封包的功能就是基于 WinPcap 提供的编程接口实现,辅助(外挂)程序要正常运行则必须安装 WinPcap。而 Wireshark 主要用来分析游戏封包,以确定那种类型的数据是我们需要处理的(不太可能处理所有游戏数据,除非你想做一个跟游戏客户端功能一样的东东出来)。

本站提供了一份在线 《WinPcap 中文技术手册》 虽然叫中文技术手册,但是仍有部分内容没有完成翻译,WinPcap 官网提供了在线英文手册

本教程中提供的代码适用于 VS2010,同时还需要 WinPcap 库的支持,这就需要下载 WinPcap 开发包,包含了相关的头文件和对应的库。通常这些文件都包含在 WinPcap 的源码 中。

完成以上准备工作后,可以先自行尝试编译 WinPcap 源码包中的实例。如果能够成功编译并运行,则说明你的系统已经做好了开发辅助(外挂)程序的准备工作了!通常来说 VS2010 只要设置好了相关目录、预处理器以及库文件,应该不会遇到什么其他问题。如果是使用 VC6,则还需要下载安装针对 VC6 的最新版 SDK 开发包,此开发包在微软网站已经找不到了,要的同学抓紧了!

介于辅助(外挂)程序在软件行业中的特殊地位以及实例中所涉及的网络游戏仍在运营,本教程在代码和配图中均去除了相关 IP 以及可能与游戏开发商或者运营商产生联系的其他信息。

好,一切就绪,Let's Go!







欢迎光临 Bacysoft.cn (http://bacysoft.cn/) Powered by Discuz! X3.3