• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      *1植物大戰(zhàn)僵尸游戲輔助原理研究及實現(xiàn)

      2016-06-20 06:16:22李靜雅
      關(guān)鍵詞:基址

      李靜雅,魏 紅

      (1.長治學(xué)院計算機系,山西 長治 046011; 2.太原科技大學(xué),山西 太原 030024)

      ?

      *1植物大戰(zhàn)僵尸游戲輔助原理研究及實現(xiàn)

      李靜雅1,魏紅2

      (1.長治學(xué)院計算機系,山西 長治 046011; 2.太原科技大學(xué),山西 太原 030024)

      〔摘要〕針對“植物大戰(zhàn)僵尸”游戲后面關(guān)卡設(shè)計過于困難,消磨了玩家興趣,受眾人群少的問題,提出基于游戲功能研究該游戲輔助.通過CE和OD分析游戲中陽光值、金幣值、植物冷卻時間等游戲數(shù)據(jù)的存儲基址后,利用C++和win32編程實現(xiàn)游戲輔助.輔助實現(xiàn)后,可以在游戲運行過程中,依據(jù)玩家游戲進度的需要隨時修改游戲中的數(shù)據(jù),攻擊僵尸時僵尸全屏顯示且子彈重疊等功能.游戲輔助增強玩家的攻擊力,降低游戲難度,提高游戲的耐玩度.語音控制輔助的功能,更好地提升了輔助的易用性.

      〔關(guān)鍵詞〕游戲輔助;基址;語音控制;CE

      0引言

      電腦游戲一種新的娛樂方式進入人們生活,成為人們緩解壓力的方式之一.“植物大戰(zhàn)僵尸”是2009年以來最受玩家喜愛的策略類塔防游戲,玩家通過種植多種不同植物,收獲陽光,金幣,向僵尸發(fā)子彈等操作,有效阻擋僵尸的入侵,保衛(wèi)家園.不同的僵尸種類,不同的場景,稀奇的玩法構(gòu)成多種游戲模式,增加游戲的可玩性,但游戲靠后關(guān)卡很難通過,玩家會逐漸失去興趣.本文研究設(shè)計實現(xiàn)本款游戲的輔助,可以在玩家游戲過程中,根據(jù)玩家的需要,適時降低游戲某環(huán)節(jié)的難度,幫助玩家順利通過關(guān)卡,使玩家盡情享受游戲的場景和通關(guān)樂趣,勞累時緩解壓力.更好激發(fā)玩家的興趣.還可以通過游戲輔助的設(shè)計方便快速找出游戲的漏洞,更好地實現(xiàn)游戲的保護.

      1游戲輔助相關(guān)技術(shù)與軟件

      1.1反匯編技術(shù)

      游戲輔助功能的實現(xiàn),是要通過設(shè)計軟件修改游戲軟件中的相關(guān)數(shù)據(jù),算法和代碼進而改變游戲中的數(shù)據(jù)值.由于游戲的源代碼無法得到,因此要對游戲分析和數(shù)據(jù)修改,就需要使用反匯編[1,2].游戲程序一般采用高級語言編寫然后通過相應(yīng)的編譯程序生成可以在計算機上執(zhí)行的機器語言程序.采用反匯編技術(shù)就是將機器語言程序反編譯成匯編語言或該機語言程序[3,4],然后通過CE或者OD工具,分析反匯編出來的匯編語言程序,尋找需要修改的數(shù)據(jù)所在程序中的位置,修改數(shù)據(jù).

      1.2Microsoft Speech SDK

      游戲輔助設(shè)計為了便于輔助功能的使用,可以采用語音控制輔助功能執(zhí)行.用于在Windows平臺上的語音應(yīng)用程序和語音引擎開發(fā)的軟件包可以使用微軟公司的Microsoft Speech SDK[5],該軟件包主要包括兼容32位的語音應(yīng)用程序編程接口(Speech Application Programming Interface, SAPI)、微軟語音合成引擎(TTS)及微軟連續(xù)語音識別引擎(CSR),可以實現(xiàn)語音識別,本文采用SAPI實現(xiàn)語音輔助功能.

      1.3Cheat Engine 內(nèi)存修改軟件

      本文采用Cheat Engine開源的內(nèi)存修改輔助工具,它包括16進制編輯,反匯編程序,內(nèi)存查找工具等功能,可以查找并修改植物大戰(zhàn)僵尸游戲的內(nèi)存數(shù)據(jù),軟件具有強大的反匯編功能.運行軟件后,需打開游戲進程,對需要修改的游戲數(shù)據(jù)值進行搜索,可以得到相應(yīng)內(nèi)存地址,之后回到游戲中,在游戲運行過程中,這個搜索的游戲數(shù)據(jù)會隨游戲的運行改變,改變后,讓CE多次搜索改變中的值,直到鎖定需要修改數(shù)據(jù).

      2游戲輔助的總體設(shè)計

      基于PC端的“植物大戰(zhàn)僵尸”游戲輔助界面應(yīng)該簡單友好,玩家易使用操作,設(shè)計應(yīng)采用與游戲相同,玩家熟知的術(shù)語,采用中文界面,系統(tǒng)可擴充,易維護.

      游戲輔助是玩家在玩“植物大戰(zhàn)僵尸游戲”時隨時幫助玩家增加游戲中的陽光值,金幣值,了解僵尸的數(shù)量和狀態(tài),在僵尸數(shù)量很多時,簡化游戲中種植植物收獲陽光值的時間或增強植物攻擊僵尸的威力等,來不定時降低游戲的難度,幫助玩家連續(xù)通過多級關(guān)卡,使玩家體驗不同模式,不同關(guān)卡游戲的場景,享受通關(guān)帶來了成就感,緩解壓力.因此,游戲輔助需要實時顯示并修改游戲當(dāng)前的陽光值和金幣值;能夠通過輔助取消種植植物的間隔,無間斷種植需要的植物,并可以在一塊土地上重復(fù)種植多個植物;玩家不需要自己收集陽光和金幣,通過輔助可以自動收集;需要實現(xiàn)連續(xù)多顆子彈同時發(fā)射攻擊僵尸,可以讓逐漸出現(xiàn)的僵尸一起出現(xiàn),用戶及時了解本級僵尸的數(shù)量;在全屏游戲時,輔助的功能無法方便使用,需要切換界面來控制輔助軟件,語音控制功能的實現(xiàn)可輕松方便地使用輔助.“植物大戰(zhàn)僵尸”游戲輔助的功能結(jié)構(gòu)如圖1所示.

      圖1 游戲輔助功能圖

      3游戲輔助的實現(xiàn)

      3.1游戲陽光值基址的分析

      游戲輔助是對游戲中的數(shù)據(jù)根據(jù)用戶的需要及時進行修改,在修改數(shù)據(jù)時,不能影響游戲的運行,使游戲轉(zhuǎn)換到更易于玩家的獲勝的狀態(tài)繼續(xù)游戲.輔助的實現(xiàn)是首先要知道可以對游戲中的哪些數(shù)據(jù)進行修改,游戲中數(shù)據(jù)是多少,存儲在內(nèi)存的哪個單元中,單元地址是什么,然后在對該地址下的數(shù)據(jù)進行相應(yīng)的操作.游戲使用的是動態(tài)內(nèi)存,每次運行游戲時,分配給游戲的內(nèi)存地址都不會一樣,因此,需要找出游戲中數(shù)據(jù)的基址,即不改變的游戲數(shù)據(jù)的真實地址,才可以正確地對游戲中的數(shù)據(jù)進行修改.“植物大戰(zhàn)僵尸”游戲中的數(shù)據(jù)主要是有陽光值、金幣值等,本文以陽光值基址的分析為例說明.

      找到游戲中陽光值的內(nèi)存地址,但內(nèi)存地址在每次重新加載游戲時是會改變的,對該地址下的數(shù)據(jù)進行修改,只能滿足當(dāng)次游戲時陽光值修改成功,一旦關(guān)閉游戲重新開始,修改該地址下的陽光值,游戲中的陽光值就不能被修改.因此要找到陽光值的基址,不隨游戲加載改變的存放陽光值的地址,關(guān)鍵是把圖2所示的基址1地址,偏移量1、2找到.

      基址1地址,偏移量1、偏移量2找到后根據(jù)公式可以得到游戲中的陽光值:

      基址2=(基址1)+偏移量 1;

      陽光值的內(nèi)存地址=(基址2)+偏移量2;

      陽光值=(陽光值的內(nèi)存地址)

      圖2 尋找基址圖

      使用工具CheatEngine6.4簡體中文版可以尋找游戲中數(shù)據(jù)的基址.運行CE后將“植物大戰(zhàn)僵尸游戲”進程附加進CE程序,開始尋找需要數(shù)據(jù)(陽光值為例)的基址,掃描是多次反復(fù)的過程,通過不斷修改陽光值,得到當(dāng)前陽光值的地址,尋找是什么改寫這個地址,可得到若干條改寫陽光值數(shù)據(jù)的匯編代碼,根據(jù)代碼找到偏移地址1和2,其中偏移地址的查找如圖3(a)所示,將得到的陽光值基址和偏移地址添加到CE的Add address中,就可以得到陽光值的真正地址,利用程序?qū)@個地址下的數(shù)據(jù)進行修改,就可以隨時改變游戲中的陽光值.本例研究中的陽光值基址為:偏移地址1是:5560H;偏移地址2是:768H;則陽光值的真正地址如圖3(b)所示.

      (a)偏移地址(b)陽光值的地址圖3 游戲中陽光值的真正地址分析

      3.2游戲輔助的實現(xiàn)

      基于PC端的“植物大戰(zhàn)僵尸”游戲輔助采用Win32中定義窗口類并給相應(yīng)的屬性賦值創(chuàng)建了主窗口,如圖4所示.

      圖4 游戲輔助主界面

      主窗口中的控件使用CreateWindow[5.6]的方法創(chuàng)建.采用Windows的消息機制運行,將控件的創(chuàng)建放在消息循環(huán)中的WM_CREATE中,由于游戲中的當(dāng)前陽光值和金幣值需要實時顯示,因此需要給這兩個標(biāo)簽分別設(shè)置定時器.

      輔助實現(xiàn)了窗口界面,獲取游戲運行時的句柄和ID等相關(guān)信息是游戲輔助程序編寫的關(guān)鍵,通過Windows提供的API函數(shù)FindWindow()[5]GetWindowThreadProcessID()[4]等方法來實現(xiàn).在游戲進程時首先需要提升游戲輔助程序的訪問權(quán)限,這樣游戲輔助才可以直接訪問游戲的內(nèi)存空間.

      輔助獲取了游戲的進程信息,獲取游戲中需要修改數(shù)據(jù)的數(shù)值后,再對數(shù)據(jù)進行修改,陽光值,金幣值的修改和顯示是在使用CE工具得到基址后實現(xiàn)的,采用WriteProcessMemory()[5,7]方法寫入游戲中,修改其值.對于免CD功能是將植物種植的時間間隔變?yōu)?,即可以不間斷地種植植物,將影響CD時間狀態(tài)的相關(guān)匯編字節(jié)存儲后,寫入游戲的CD時間基址匯總,實現(xiàn)在陽光值充足的情況下無間隔無限種植植物.輔助還實現(xiàn)了自動收集陽光值金幣值,植物重疊種植,全屏顯示全部僵尸等功能,功能齊全,使用方便.

      輔助可以通過語音來控制實現(xiàn)的功能,玩家可以在全屏模式下玩游戲,需要輔助時,只需要說出輔助的功能,相應(yīng)的功能即可生效.

      4結(jié)論

      本文研究實現(xiàn)“植物大戰(zhàn)僵尸”游戲的輔助,探討游戲輔助實現(xiàn)中游戲數(shù)據(jù)的基址尋找方案,是輔助實現(xiàn)的關(guān)鍵.游戲運行時的句柄和ID信息的獲取是針對性實現(xiàn)各游戲輔助的基礎(chǔ).輔助實現(xiàn)后,功能齊全,使用簡單便捷,降低了游戲通關(guān)難度,使玩家盡享游戲場景樂趣和通關(guān)的滿足.游戲玩家選擇關(guān)卡的功能和輔助界面的美化還需后續(xù)進一步完善.

      參考文獻:

      [1]刑瑞.C++反編譯技術(shù)研究與應(yīng)用[D].南京:南京大學(xué),2012

      [2]高海濤.游戲外掛與反外掛技術(shù)的研究與應(yīng)用[D].內(nèi)蒙古:內(nèi)蒙古大學(xué),2014

      [3]黃文彬.游戲反外掛系統(tǒng)設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院大學(xué),2013

      [4]胡政.C++逆編譯中模板庫函數(shù)識別研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2006

      [5]葛子昂,周靖.Windows核心編程[M].第五版.北京:清華大學(xué)出版社,2008,198-227

      [6]仰燕蘭,金曉雪,葉樺.ASP.NET AJAX框架研究及其在Web開發(fā)中的應(yīng)用[J].計算機應(yīng)用與軟件,2011,28(6):195-198

      [7]王文東,李竹林,尚建人.匯編語言與C語言的混合程序設(shè)計技術(shù)[J].計算機技術(shù)與發(fā)展,2006,16(8):18-20

      "Plants VS Zombies" Auxiliary Principle and its Implementation

      LI Jingya1, WEI Hong2

      ( 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 later 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 data 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 implemented, 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.

      〔Key words〕game auxiliary; base address; speech control;CE

      *收稿日期:2015-12-14

      作者簡介:李靜雅(1982-),女,山西長治人,碩士,長治學(xué)院計算機系講師,主要從事智能信息處理研究.

      〔文章編號〕1672-2027(2016)01-0039-04〔中圖分類號〕TP311

      〔文獻標(biāo)識碼〕A

      猜你喜歡
      基址
      明中都城基址的三次變更
      密度驚人!河南發(fā)現(xiàn)6 000多年前糧倉群
      江蘇發(fā)現(xiàn)一處面積約1475平方米唐代建筑基址
      夏商時期大型院落建筑探討
      西周金文“王在周”所涉及建筑考述——兼說鳳雛三號基址大型石柱為宗廟碑
      東方考古(2020年0期)2020-11-06 05:34:22
      殷墟房基分類研究
      趙邯鄲故城王城遺址二號夯土基址推斷復(fù)原研究
      河南偃師商城囷倉遺址
      大眾考古(2019年12期)2019-06-17 06:40:24
      江蘇盱眙泗州城遺址出土紫砂器
      東南文化(2016年3期)2016-11-16 05:57:48
      考古學(xué)家首次發(fā)掘出西周社祭建筑
      渑池县| 阿拉善左旗| 康马县| 应用必备| 香格里拉县| 定安县| 玛纳斯县| 陕西省| 桐乡市| 绥棱县| 西贡区| 大余县| 剑川县| 大田县| 巴南区| 大兴区| 利津县| 陆川县| 揭西县| 宜阳县| 许昌市| 新昌县| 临沭县| 苏尼特左旗| 福鼎市| 平度市| 汝阳县| 文水县| 泰和县| 平邑县| 诏安县| 宁国市| 洞头县| 南华县| 连南| 同江市| 太原市| 平凉市| 四川省| 河南省| 迭部县|