偶爾逛逛本吧發(fā)現(xiàn)都是在求各種游戲修改方法的。。漫山遍野的小白。。。于是我就奮起講一點游戲修改的理論吧。[哈哈] 大觸可指出錯誤,手機碼字,就不上圖了。
話說在前面:本帖方法多用于單機游戲,網(wǎng)游限制太多,本帖不做介紹
首先,我們要修改一個游戲要知道什么叫修改游戲,大家關注本吧就應該知道,我們修改的是游戲數(shù)據(jù)。
那么我們所要修改的這個游戲數(shù)據(jù)是什么樣的呢?要怎么怎么找到它。
游戲數(shù)據(jù)跟游戲類型有關,像角色扮演啊模擬經(jīng)營這類的游戲數(shù)據(jù)量大一些,可攻入的數(shù)據(jù)就會多一些,而一些什么動作,競技類的我們不難想到數(shù)據(jù)就會不多。
數(shù)據(jù)保存在游戲內(nèi)存中,分動態(tài)內(nèi)存和靜態(tài)內(nèi)存,動態(tài)內(nèi)存是隨游戲進行而時刻變化并隨游戲結束而停止的數(shù)據(jù),靜態(tài)內(nèi)存就是游戲存檔之類的文件數(shù)據(jù)了。
動態(tài)修改
目前用的多的就是動態(tài)修改了,把修改器后臺運行然后運行游戲進行搜索,對此,再搜索,再對此,確定后修改或鎖定,比如游戲金錢,資源,體力,道具數(shù)量,這是種精確搜索,不多介紹
動態(tài)修改還有聯(lián)合搜索,這個很好用,比如你看到商店有a,b,c三種商品,分別價格為100,200,300那么你就用修改器聯(lián)合搜索100,200,300中間用逗號隔開,或者100,200,300:256后面的“:256”是間隔,間隔范圍在8到4096
搜索出來后再搜索一遍剛才所搜索過的3個價格中的其中一個,目的是縮小范圍
當你確定數(shù)據(jù)后就可以修改的,一般修改為-9999999 什么的,然后購買你的錢就增加了,注意有的時候修改成負數(shù)過大會錯誤,或者無效,所以再試下改成-1還有改成0和1
動態(tài)修改介紹下個人認為最好用的功能:模糊搜索
這種方法十分強大,可以在我們不知道數(shù)據(jù)的情況下對數(shù)據(jù)進行查找,比如游戲時間,血條,技能持續(xù)時間,道具剩余時間,等等會發(fā)生變化的數(shù)據(jù),
例如:當你釋放一個效果為角色攻擊速度增加的技能,這個技能會持續(xù)一段時間,你在技能效果施加成功的一剎那就暫停游戲(修改器也自帶暫停功能,需手動開啟)然后模糊搜索,不確定類型的情況下選擇自動匹配,等待搜索結束點擊繼續(xù)搜索最小化然后繼續(xù)游戲再暫停打開修改器搜索選擇變小了,以此類推,在技能失效前確定地址
解釋一下原理,你的這個技能是一個有時間限制的技能,當你釋放技能以后游戲內(nèi)部增加一個時間軸,開始了倒計時,比如是10秒,10秒后這個技能就會失效,于是我們第一步先模糊搜索一下,后面游戲時間倒計時的原因,這個時間軸縮短了,所以后面就是選擇變小了,或者可以在暫停游戲頁面不繼續(xù)游戲而再搜索一次無變化,因為我們沒有繼續(xù)游戲,所以時間軸沒有發(fā)生變化。
這是一個不斷隨時間變化而變化的例子,我們也可以修改類似血條的數(shù)據(jù),血條我們是看不見的,但是可以通過受到攻擊掉血或者吃藥補血,可以想象到,攻擊掉血,血量下降,吃藥補血,血量增加,所以前者數(shù)據(jù)變化為變小了,后者為變大了
靜態(tài)修改講到這,順帶提一下,有些游戲數(shù)據(jù)的地址是會和實際數(shù)據(jù)不同的,比如1526的游戲幣實際數(shù)據(jù)為1525,所以,搜索不到可以用模糊搜索解決這一問題
還有,如果游戲有關卡倒計時什么的,在游戲上方或者下方有個倒計時,這是個浮點數(shù)據(jù),我們精確搜索時不需要搜索小數(shù)點后面的數(shù)字,比如52.48我們搜索52就行了
后面我再講內(nèi)存修改,先講靜態(tài)修改,因為內(nèi)存修改需要了解16進制
靜態(tài)修改
首先必須要簡單了解下什么是十六進制,話說現(xiàn)在初中都開始學十六進制了,應該不難理解,游戲中我們看到的數(shù)據(jù)都是十進制,但是打開存檔或者內(nèi)存時可以發(fā)現(xiàn),這里會出現(xiàn)英文字母,十進制是0,1,2,3,4,5,6,7,8,9十個數(shù)字,9再往大是0,但是前一位加一,這個大家都知道,十六進制其實一樣,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六個,后面的A,B,C,D,E,F分別對應10,11,12,13,14,15十六進制的F往大也是0,然后前一位加一
十六進制數(shù)據(jù)是2個字符為一個字節(jié),每兩個字符都是靠在一起形成字節(jié)的,一個字節(jié)是0到255,2個字節(jié)就是0到65535,發(fā)現(xiàn)沒,用修改器搜索數(shù)據(jù)時讓我們選范圍就是這個數(shù)字,[噴] 那就說明一個數(shù)值的類型受他的最大值影響,比如等級,等級一般以100級為滿級,那么他只需要一個字節(jié)的位置就能表示,所以數(shù)據(jù)就是BYTE類型,范圍再0~255(就是2個F),如果是是在0~65535的數(shù)據(jù)(4個F),類型就是WORD,還有一個最大的,用的最多,就是DWORD類型,范圍是0~4294967295(6個F)這些出現(xiàn)在修改器中的數(shù)據(jù)就是受16進制的限制而出現(xiàn)的還有些常用的要多記,比如十六進制63是十進制99,這些都可以用十六進制計算器來算,但是用腦子記一些對你在一大堆內(nèi)存數(shù)據(jù)中尋找有用數(shù)據(jù)有很大作用[笑眼]
十六進制還存在一種儲存方式,高低位轉(zhuǎn)化,這是游戲廠商為了防止數(shù)據(jù)溢出的方式,同時也給修改者一個檻,簡單講一下,比如一個16進制數(shù)是1D5, 高低位換算后是D501, 因為前面說過16進制每兩個字符組成一個字節(jié),所以要再1前面添一個0補齊,就是01D5,高低位換算就是把數(shù)據(jù)從高到低重新反過來排列,剛才這個是WORD類型數(shù)據(jù),如果是DWORD類型,就要再添2個0,高低為換算就是5D0100,這個在32位游戲中廣泛應用
簡單了解下16進制和范圍,然后開始靜態(tài)修改吧[太開心]
靜態(tài)修改前面說過了,修改游戲存檔,首先要找到游戲存檔文件所在,
一般都在data/data/里面游戲?qū)奈募䦅A。也有在android/data/里面
文件夾文件那么多,哪個是存檔呢,這個很簡單,運行游戲,用文件管理看文件時間就行了
用修改器打開或者16進制編輯器打開,打開后迎面而來的就是一大波16進制數(shù)據(jù)了,在這里,你也可以搜索數(shù)值,編輯修改數(shù)值,有人說了,那樓主這和動態(tài)修改沒的比吧,既麻煩又不實用
接下來講一下靜態(tài)修改絕對做不到的一個修改。
在動態(tài)修改中我們可以通過模糊搜索對一個空背包的第一個位置不斷變化道具再搜索來尋找道具代碼(有變化無變化或者變大變小尋找),最后比如我們發(fā)現(xiàn)紅瓶對應代碼為4287,那就讓我們買上幾個,比如一個背包只帶了5個紅瓶,把4287轉(zhuǎn)化為16進制是10BF,我們打開靜態(tài)內(nèi)存,然后搜索10BF或者10BF05,或者10BF0005因為不知道數(shù)據(jù)間有沒有間隔,所以多變化搜索一下 (高低位換算也要試) ,最后找到這個紅瓶的位置,接下來我們就可以修改這個05來修改紅瓶數(shù)量。但是我們通過觀察可以發(fā)現(xiàn)在這個這組數(shù)據(jù)后面有大量的00,聰明的你可能就發(fā)現(xiàn)了,這就是背包后面其他位置道具地址,通過添加代碼和數(shù)量達到憑空修改道具的目的![真棒]
通常很多數(shù)據(jù)相差不會太遠,血量地址旁邊經(jīng)常出現(xiàn)魔法值地址
結合動態(tài)的模糊搜索然后用內(nèi)存修改可以達到很多目的,比如修改人物性別,變化寵物,改變裝備附魔等等難以預計的變化