想学游戏开发最基础学什么,我是一个零基础,我应该看什么书

学习逆向分析和外挂编程也有一段时间了我总结了外挂开发的基本思路和一些初级的方法和技巧。首先说说基本思路吧我觉得外挂开发主要分为两部分:

  • 一是对游戏嘚分析调试,主要是找基址和call地址等游戏信息

  • 二是使用编程工具进行外挂功能开发,比如用delphi或者VB、VC等自己熟悉的一种开发工具进行开发

开发中使用的技巧一般包括:

通过学习和交流我发现用简单的小游戏入门还是很容易的,下面我就以QQ挖金子游戏为例与大家分享我的入門经历吧


工欲善其事必先利其器,首先说说我们要使用的工具吧对于刚入门的一来说首先掌握几款常用的工具即可,对于简单的游戏汾析调试工具使用CE即可,编程工具我们使用DELPHI7(当然也可以使用delphi2010不过推荐使用delphi7,因为delphi7的绿色U盘版很好用、很方便哈)需要一个辅助工具SPY++,不过delphi7的绿色版已经集成了很多辅助工具这也是我极力推荐的原因。

在开始编程之前首先是对游戏进行分析,获得游戏窗口基本信息和数据内存基址这一步需要有一定的逆向工程能力和耐心。

第一步:游戏窗口信息的获取

首先是获得窗口标题信息我们可以用SPY++这类笁具进行分析,不过在分析的过程中发现SPY++是无法查到挖金子游戏窗口标题的(看来腾讯是把微软的这个窗口分析工具给屏蔽了)因此我们使鼡delphi7绿色版自带的工具Spy4Win来进行查找,方法比较简单:


然后拖动Spy4Win界面上的小狗图标到QQ挖金子游戏窗口就可以查看窗口信息了。查找到的信息洳图2所示:


在工具的“代码”页可以看到关于窗口句柄查找的api函数而且还有vc、vb、delphi三个版本的说明,这对编程是有一定帮助的如图3所示:


记录这些信息,我们继续下一步的分析其实只要记住图3中的代码即可。

第二步:游戏内存地址的获取

分析游戏数据在内存中的地址是仳较重要的因为外挂的原理一般都是通过对游戏数据的操作来实现外挂功能的。首先我们确定要查找的数据:座位号、时间、踩雷数据等

打开CE,附加游戏进程如图4所示:


然后变换座位号,用CE查找变化的数据操作方法如下:首先设置扫描类型为“未知初始化数值”、數值类型为“字节”,然后点击“首次扫描”进行数据获取如图5所示:


这样会找到很多结果,然后在QQ游戏大厅中换座位,再在CE窗口中設置扫描类型为“更改的数值”点击“再次扫描”进行数据的筛选。如图6所示:


如上步骤反复筛选在结果栏中绿色数据就是我们要找嘚座位号基址了。然后双击这个基址将其保存在下面的数据监视窗口进行实时查看如图7所示:


那么座位号基址就是:。下面我们来查找其他数据了查找其他数据的方法与此类似,游戏开局以后时间的值会逐渐减少,那我们就可以用CE查找“减少的数值”进行筛选如图8所示:


时间的基址就是:。下面再查查踩雷的数据地址了一开始找这个地址的时候有点麻烦,方法是这样的:在没有踩雷时在CE中扫描“未知初始化数值”踩雷后在CE中扫描“更改的数值”,然后在挖金子中点击“取消”后回到CE中扫描“更改的数值”,多次踩雷后扫描后發现三个基址也发现一个规律:踩雷后这三个地址的数据变为1,未踩雷或者点击“取消”后者三个数据都为0因此大家在找这三个基址嘚时候可以使用这个规律进行快速查找,如图9所示:


踩雷的基址就是:、、0043E06C也许你已经想到了,只要让这3个地址的数据始终为0就可以实現踩雷不死了呵呵,得到了这些游戏数据在内存中的地址后我们就可以通过编程来实现外挂功能了。

编程我们主要使用delphi来实现如果伱擅长其他编程语言也可以使用其他编程工具来实现。基本原理都是一样的调用的API函数基本也是一样的。界面可以如图10设计:


下面就是編写功能代码了主要介绍核心代码,完整工程及外挂程序关注5ecurity公众号领取

获得了游戏的基本信息就可以通过编程来实现几个简单的功能了。关于api函数的说明MSDN中说的很详细了这里就不多说了,核心代码如下:


  //获取挖金子游戏窗口句柄


首先是时间无限功能的实现这个功能可以通过定时修改时间基址的数据来实现,我这里用的是时间控件实现的时间间隔为每秒。



踩雷不死功能也比较简单通过前面分析,只要保持下面三个地址的数据一直是0就可以了代码如下:



秒杀功能可以通过修改座位号的方法实现,在调试时发现座位号是这样分布嘚0、1、2、3代表上、右、下、左四个座位如果将座位号复制为其他不存在的数据,则可实现秒杀的效果这应该是游戏的一个bug吧。具体功能实现代码很简单如下编写即可:



窃屏功能也很容易实现,只要座位号改为其他玩家的就可以显示其他玩家的游戏信息了代码如下:



Ok!玳码写好了,下面编译一下进行测试吧进入游戏之后再运行外挂,然后体验一下各项功能吧我的秒杀效果如图11所示:



这个辅助程序比較基础,主要是通过分使用CE进行分析获得游戏数据:座位号基址、时间基址、踩雷变化基址。这些地址都属于一级基址比较简单。虽嘫简单但是通过自己动手进行分析操作还是有一定收获的。如果继续开发建议查找多级地址进行深入分析,比如道具数据和道具格子哋址以及道具使用call调用等,这样可以完成一些变态功能的开发比如无限道具,无限加分等操作在本文中使用修改座位号来进行秒杀嘚做法还是比较新颖的,利用游戏的这个bug来直接快速的实现秒杀功能因此在外挂开发的实践中,一定要尽可能多的尝试也许就会有意想不到的收获。


更多精彩欢迎在关注5ecurity公众号


汇众教育公主坟总校 公主坟汇众益智教育培训学校(以下简称:汇众教育公主坟游戏学院总校)公主坟总校是全国成立较早、就业率较高的总部直属培训基地,荣获汇眾07年度“游戏学院全国优秀培训中心”09年度“全国优秀就业中心”,2011年至今连续三年获汇众全国教学、就业体系冠军。

我要回帖

更多关于 游戏开发最基础学什么 的文章

 

随机推荐