admin 管理员组文章数量: 887021
2024年2月28日发(作者:用route命令添加默认路由)
第15卷第1期 太原师范学院学报(自然科学版) JOURNAL OF TAIYUAN NORMAL UNIVERSITY(Natural Science Edition) Vo1.15 No.1 Mar.2016 2016年3月 植物大战僵尸游戏辅助原理研究及实现 李静雅 ,魏红 (1.长治学院计算机系,山西长治046011;2.太原科技大学,山西太原030024) [摘要] 针对“植物大战僵尸”游戏后面关卡设计过于困难,消磨了玩家兴趣,受众人群少的问 题,提出基于游戏功能研究该游戏辅助.通过CE和oD分析游戏中阳光值、金币值、植物冷却时间 等游戏数据的存储基址后,利用C++和win32编程实现游戏辅助.辅助实现后,可以在游戏运行 过程中,依据玩家游戏进度的需要随时修改游戏中的数据,攻击僵尸时僵尸全屏显示且子弹重叠等 功能.游戏辅助增强玩家的攻击力,降低游戏难度,提高游戏的耐玩度.语音控制辅助的功能,更好 地提升了辅助的易用性. (关键词] 游戏辅助;基址;语音控制;CE (文章编号] 1672-2027(2016)01-0039—04 [中图分类号] TP3l1 [文献标识码] A 0 引言 电脑游戏一种新的娱乐方式进入人们生活,成为人们缓解压力的方式之一.“植物大战僵尸”是2009年 以来最受玩家喜爱的策略类塔防游戏,玩家通过种植多种不同植物,收获阳光,金币,向僵尸发子弹等操作, 有效阻挡僵尸的入侵,保卫家园.不同的僵尸种类,不同的场景,稀奇的玩法构成多种游戏模式,增加游戏的 可玩性,但游戏靠后关卡很难通过,玩家会逐渐失去兴趣.本文研究设计实现本款游戏的辅助,可以在玩家游 戏过程中,根据玩家的需要,适时降低游戏某环节的难度,帮助玩家顺利通过关卡,使玩家尽情享受游戏的场 景和通关乐趣,劳累时缓解压力.更好激发玩家的兴趣.还可以通过游戏辅助的设计方便快速找出游戏的漏 洞,更好地实现游戏的保护. 1游戏辅助相关技术与软件 1.1反汇编技术 游戏辅助功能的实现,是要通过设计软件修改游戏软件中的相关数据,算法和代码进而改变游戏中的数 据值.由于游戏的源代码无法得到,因此要对游戏分析和数据修改,就需要使用反汇编_1 ].游戏程序一般采 用高级语言编写然后通过相应的编译程序生成可以在计算机上执行的机器语言程序.采用反汇编技术就是 将机器语言程序反编译成汇编语言或该机语言程序[3“],然后通过CE或者OD工具,分析反汇编出来的汇 编语言程序,寻找需要修改的数据所在程序中的位置,修改数据. 1.2 Microsoft Speech SDK 游戏辅助设计为了便于辅助功能的使用,可以采用语音控制辅助功能执行.用于在Windows平台上的 语音应用程序和语音引擎开发的软件包可以使用微软公司的Microsoft Speech SDK[5],该软件包主要包括 兼容32位的语音应用程序编程接口(Speech Application Programming Interface,SAPI)、微软语音合成引 擎(TTS)及微软连续语音识别引擎(CSR),可以实现语音识别,本文采用SAPI实现语音辅助功能. 1.3 Cheat Engine内存修改软件 本文采用Cheat Engine开源的内存修改辅助工具,它包括16进制编辑,反汇编程序,内存查找工具等 功能,可以查找并修改植物大战僵尸游戏的内存数据,软件具有强大的反汇编功能.运行软件后,需打开游戏 收稿日期:2015—12-14 作者简介:李静雅(1982一),女,山西长治人,硕士,长治学院计算机系讲师,主要从事智能信息处理研究
40 太原师范学院学报(自然科学版) 第15卷 进程,对需要修改的游戏数据值进行搜索,可以得到相应内存地址,之后回到游戏中,在游戏运行过程中,这 个搜索的游戏数据会随游戏的运行改变,改变后,让CE多次搜索改变中的值,直到锁定需要修改数据. 2游戏辅助的总体设计 基于PC端的“植物大战僵尸”游戏辅助界面应该简单友好,玩家易使用操作,设计应采用与游戏相同, 玩家熟知的术语,采用中文界面,系统可扩充,易维护. 游戏辅助是玩家在玩“植物大战僵尸游戏”时随时帮助玩家增加游戏中的阳光值,金币值,了解僵尸的数 量和状态,在僵尸数量很多时,简化游戏中种植植物收获阳光值的时间或增强植物攻击僵尸的威力等,来不 定时降低游戏的难度,帮助玩家连续通过多级关卡,使玩家体验不同模式,不同关卡游戏的场景,享受通关带 来了成就感,缓解压力.因此,游戏辅助需要实时显示并修改游戏当前的阳光值和金币值;能够通过辅助取消 种植植物的间隔,无间断种植需要的植物,并可以在一块土地上重复种植多个植物;玩家不需要自己收集阳 光和金币,通过辅助可以自动收集;需要实现连续多颗子弹同时发射攻击僵尸,可以让逐渐出现的僵尸一起 出现,用户及时了解本级僵尸的数量;在全屏游戏时,辅助的功能无法方便使用,需要切换界面来控制辅助软 件,语音控制功能的实现可轻松方便地使用辅助.“植物大战僵尸”游戏辅助的功能结构如图1所示. “植物大战僵尸”游戏辅助功能 显 刀 显 刁 当 当 修 改 当 修 改 当 月U 显 刁 前 阳 前 金 币 前 阳 当 前 阳 光 值 值 光 值 阳 光 值 光 值 曩董l l蓁l 《囊{i喜 日 语 控 制 图1游戏辅助功能图 3游戏辅助的实现 3.1游戏阳光值基址的分析 游戏辅助是对游戏中的数据根据用户的需要及时进行修改,在修改数据时,不能影响游戏的运行,使游 戏转换到更易于玩家的获胜的状态继续游戏.辅助的实现是首先要知道可以对游戏中的哪些数据进行修改, 游戏中数据是多少,存储在内存的哪个单元中,单元地址是什么,然后在对该地址下的数据进行相应的操作. 游戏使用的是动态内存,每次运行游戏时,分配给游戏的内存地址都不会一样,因此,需要找出游戏中数据的 基址,即不改变的游戏数据的真实地址,才可以正确地对游戏中的数据进行修改.“植物大战僵尸”游戏中的 数据主要是有阳光值、金币值等,本文以阳光值基址的分析为例说明. 找到游戏中阳光值的内存地址,但内存地址在每次重新加载游戏时是会改变的,对该地址下的数据进行 修改,只能满足当次游戏时阳光值修改成功,一旦关闭游戏重新开始,修改该地址下的阳光值,游戏中的阳光 值就不能被修改.因此要找到阳光值的基址,不随游戏加载改变的存放阳光值的地址,关键是把图2所示的 基址1地址,偏移量1、2找到. 基址1地址,偏移量1、偏移量2找到后根据公式可以得到游戏中的阳光值: 基址2一(基址1)+偏移量1; 阳光值的内存地址一(基址2)+偏移量2; 阳光值一(阳光值的内存地址) 使用工具CheatEngine6.4简体中文版可以寻找游戏中数据的基址.运行CE后将“植物大战僵尸游戏”
42 太原师范学院学报(自然科学版) 第15卷 主窗口中的控件使用CreateWindowE 63的方法创建. 采用Windows的消息机制运行,将控件的创建放 在消息循环中的WM—CREATE中,由于游戏中的当前阳 光值和金币值需要实时显示,因此需要给这两个标 签分别设置定时器. 辅助实现了窗口界面,获取游戏运行时的句柄和ID等相关信息是游戏辅助程序编写的关键,通过Win— dows提供的API函数FindWindow()[5]GetWindowThreadProeessID()l_4 等方法来实现.在游戏进程时首 先需要提升游戏辅助程序的访问权限,这样游戏辅助才可以直接访问游戏的内存空间. 辅助获取了游戏的进程信息,获取游戏中需要修改数据的数值后,再对数据进行修改,阳光值,金币值的 修改和显示是在使用CE工具得到基址后实现的,采用WriteProcessMemory()_5 方法写入游戏中,修改其 值.对于免CD功能是将植物种植的时间间隔变为0,即可以不间断地种植植物,将影响CD时间状态的相关 汇编字节存储后,写入游戏的CD时间基址汇总,实现在阳光值充足的情况下无间隔无限种植植物.辅助还 实现了自动收集阳光值金币值,植物重叠种植,全屏显示全部僵尸等功能,功能齐全,使用方便. 辅助可以通过语音来控制实现的功能,玩家可以在全屏模式下玩游戏,需要辅助时,只需要说出辅助的 功能,相应的功能即可生效. 4 结论 本文研究实现“植物大战僵尸”游戏的辅助,探讨游戏辅助实现中游戏数据的基址寻找方案,是辅助实现 的关键.游戏运行时的句柄和ID信息的获取是针对性实现各游戏辅助的基础.辅助实现后,功能齐全,使用 简单便捷,降低了游戏通关难度,使玩家尽享游戏场景乐趣和通关的满足.游戏玩家选择关卡的功能和辅助 界面的美化还需后续进一步完善. 参考文献: [1]刑瑞.c++反编译技术研究与应用[D2.南京:南京大学,2012 E2]高海涛.游戏外挂与反外挂技术的研究与应用[D].内蒙古:内蒙古大学,2014 1-33 黄文彬.游戏反外挂系统设计与实现ED].北京:中国科学院大学,2013 [4]胡政.c++逆编译中模板库函数识别研究[D].合肥:中国科学技术大学,2006 靖.Windows核心编程[M].第五版.北京:清华大学出版社,2008,198—227 [5]葛子昂,周E6]仰燕兰,金晓雪,叶桦.ASP.NETMAX框架研究及其在Web开发中的应用[J].计算机应用与软件,20l1,28(6):195—198 [7]王文东,李竹林,尚建人.汇编语言与C语言的混合程序设计技术口].计算机技术与发展,2006,16(8):18—20 ”Plants VS Zombies”Auxiliary Principle and its Implementation LI Jingya .WEI Hong。 (1.Computer Department,Changzhi University,Changzhi 046011; 2.Taiyuan University of Science&Technology.Taiyuan 030024.China) [Abstract] For the problems of plants VS zombies games which were too difficult in Iater levels to spend a lot of interest in players and reduced the amount of players,an assistance based on the game function was studied.Through CE and OD to analyze game store address of game da~ ta including the value of sunlight,gold value,plant cooling time and SO on,the C++and win32 programming language were used to implement the auxiliary function.When the program imple~ mented,some function could be achieved.Such as players could modify game data at any time on the basis of their need in the game process,zombies full—screen displayed and bullets overlapped when zombies were under attack.The assistance enhanced the players’attack power,reduced the difficulty of the game and improved the pleasure of game.Especially using the auxiliary function of voice control in the game,the usability of assistance had been greatly improved. EKey words] game auxiliary;base address;speech contro1;CE
版权声明:本文标题:植物大战僵尸游戏辅助原理研究及实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709133972h538622.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论