ps3用ccapi實(shí)現(xiàn)cu金手指代碼教程
時(shí)間:2014-12-10 09:55:44 來源:多玩 作者:cmos電路 熱度: 1291 次
已經(jīng)破解過的主機(jī)PS3對于玩破解游戲的各位而言,需要使用金手指的玩家們會有很多,而很多玩家為了可以自己制定自己需要的功能便學(xué)著自己修改,而最近比較流行的ccapi金手指軟件便受到了大家的關(guān)注,以下教大家如何用ccapi實(shí)現(xiàn)cu金手指代碼。
已經(jīng)破解過的主機(jī)PS3對于玩破解游戲的各位而言,需要使用金手指的玩家們會有很多,而很多玩家為了可以自己制定自己需要的功能便學(xué)著自己修改,而最近比較流行的ccapi金手指軟件便受到了大家的關(guān)注,以下教大家如何用ccapi實(shí)現(xiàn)cu金手指代碼。
Control Console API(CCAPI)是最近比較流行的金手指軟件,最新2.6版本支持cfw4.65和混合系統(tǒng),不過這個版本的pc端軟件,目前還只有其自帶的客戶端,沒內(nèi)存查看器,不好用。所以,現(xiàn)在還是推薦用2.0的mod版本,支持cfw4.46-4.65(混合系統(tǒng)需要切換為一般系統(tǒng)或者把COBRA關(guān)掉),pc端軟件可用CCCheat 1.01或者CCAPI Debugger 2.2。
CCCheat1.01可以保存代碼方便一點(diǎn),CCAPI Debugger 2.2調(diào)試的時(shí)候比較好用。本文在下面的舉例說明中,將采用CCCheat 1.01作為pc端軟件。
常用軟件說明:
CCAPI_v2.00_MOD_446-465:PS3端程序,CCAPI_2.0_MOD版本,支持cfw4.46-4.65(混合系統(tǒng)需要切換為一般系統(tǒng)或者把COBRA關(guān)掉)
CCCheat 1.01:PC端程序,支持CCAPI 2.0和2.5版本
CCAPI Debugger 2.2漢化版:PC端程序,支持CCAPI 2.0版本
cu2.3格式金手指代碼庫: 金手指代碼庫,包含了904個游戲的金手指(按照ps3游戲id來計(jì)算),20140619版本,除了新出的游戲,這個代碼庫應(yīng)該是很全了。
先簡單說一下CCAPI的使用流程:
PS3已經(jīng)設(shè)置好IP,并通過路由器在局域網(wǎng)跟電腦pc相連。
1. 復(fù)制安裝pkg程序CCAPI_v2.00_MOD_446-465.pkg文件到u盤,插到ps3上,進(jìn)入install package files,安裝。
2.運(yùn)行剛安裝的CCAPI程序,確定,確定,等待PS3重啟。PS3重啟之后,過10秒左右,右上角會顯示CCAPI已運(yùn)行標(biāo)識,此后ps3每次啟動都會自動加載CCAPI(若要卸載CCAPI,重新運(yùn)行下CCAPI程序即可)。
3.用MM或IRIS MANAGER等加載游戲,并運(yùn)行游戲,在游戲中暫停。
4.在PC端運(yùn)行CCCheat 1.01或者CCAPI Debugger 2.2,輸入PS3的IP地址,點(diǎn)擊connect,進(jìn)行操作修改等等。
5.返回ps3,繼續(xù)游戲。
目前論壇里對CCAPI軟件的使用上,基本都是搜索具體數(shù)值,或者通過別人發(fā)布的靜態(tài)地址數(shù)據(jù)來修改游戲,這樣實(shí)現(xiàn)的金手指功能很少。其實(shí),目前論壇里發(fā)布的靜態(tài)地址金手指代碼,大部分都可以用來修改eboot,這樣更方便,起碼你不用打開pc。
作為一個內(nèi)存修改器,CCAPI的優(yōu)勢就在于可以實(shí)時(shí)讀取內(nèi)存,進(jìn)行即時(shí)修改,完全可以用來修改動態(tài)地址數(shù)據(jù),實(shí)現(xiàn)更多的金手指功能。
現(xiàn)在的問題是,如何找到動態(tài)地址的規(guī)律?如果只用pc端軟件CCCheat或者CCAPI Debugger的搜索功能,那么想找到一個不知道具體數(shù)值的動態(tài)地址,無異于大海撈針,就算偶爾找到了,換個場景,動態(tài)地址就變了,又要重新找,很可能搜索時(shí)間遠(yuǎn)比玩游戲的時(shí)間長,費(fèi)時(shí)費(fèi)力,很不劃算。
這種情況下,就需要用到以前整理過的金手指代碼了,從cfw3.55過來的玩家,應(yīng)該都知道cu2.3金手指(可惜它不支持cfw4.xx),它的金手指代碼里就有很多動態(tài)代碼,借助已有的cu金手指代碼,我們可以快速的定位動態(tài)地址,省去了搜索的時(shí)間,提高了效率。以前,我們只能使用一小部分的cu金手指代碼,現(xiàn)在,利用CCAPI,所有的cu金手指代碼都可以實(shí)現(xiàn)了。
對于一行cu金手指代碼,其一般可分成3部分,每8個數(shù)字為一部分:控制代碼 地址 數(shù)值。其中,地址和數(shù)值都是十六進(jìn)制的。
下面,本文將通過對cu控制代碼的解析,來說明如何用CCAPI實(shí)現(xiàn)cu金手指代碼。
注:各種控制代碼的名稱,都是本人自己定義命名的,有可能不太切合,還望見諒。
控制代碼01:直寫碼
CU控制代碼00002000開頭的,就是直寫碼。其代碼格式如下:
00002000 ssssssss aaaaaaaa
ssssssss是地址,aaaaaaaa是數(shù)值,地址和數(shù)值都是十六進(jìn)制的。
直寫碼的功能,就是把數(shù)值aaaaaaaa寫入地址ssssssss中,數(shù)值類型由要寫入的數(shù)值大小來決定。例如:
Gold9999999
00002000 00F6D460 0098967F
其中,00F6D460是地址,0098967F是要寫入的數(shù)值,這就算一組數(shù)據(jù)。
用CCAPI修改,只要pc端軟件添加一個code,數(shù)值類型由要寫入的數(shù)值大小來決定,軟件選項(xiàng)有1字節(jié)、2字節(jié)、4字節(jié)和浮點(diǎn)數(shù),當(dāng)前例子中,數(shù)值98967F是3個字節(jié),所以選擇type數(shù)值類型4字節(jié),輸入地址address和對應(yīng)的數(shù)值value就可以了。
代碼里數(shù)值是十六進(jìn)制的,而CCCheat 1.01軟件需要輸入十進(jìn)制的數(shù)值,所以,輸入前請先轉(zhuǎn)換進(jìn)制??梢杂糜?jì)算器(windows附件里自帶的)轉(zhuǎn)換進(jìn)制。
或者,在CCCheat 1.01界面查找部分的Value框中,輸入數(shù)值,勾選Hex前面的勾選框,就可以進(jìn)行十進(jìn)制和十六進(jìn)制之間的互相轉(zhuǎn)換。
只有直寫碼的金手指代碼,是靜態(tài)地址金手指代碼,可以選擇save codes保存,以備下次再用。
不過CCCheat 1.01不會保存數(shù)值value,而其他選項(xiàng)都會保存,所以下一次使用load codes載入后,還需要重新填入一次數(shù)值??梢栽诿枋雒鹍escription中填入需要輸入的數(shù)值,下一次載入后,照著description輸入數(shù)值就可以了,省著再去查看代碼轉(zhuǎn)換數(shù)值了。
另外,CCCheat 1.01軟件還有個問題,輸入地址和數(shù)值時(shí),需要手動輸入;或者復(fù)制粘貼后刪掉最后一個數(shù)字,再手動輸入剛刪掉的數(shù)字。
有時(shí)候代碼不止一組數(shù)據(jù),例如:
MaxMoney on Buy
00002000 0076526C 3D207FFF
00002000 00765270 91230564
這時(shí)就需要為每一組的數(shù)據(jù)都添加一個code,上例中就添加兩個code,數(shù)值類型4字節(jié),分別輸入對應(yīng)的地址和數(shù)值。
只有直寫碼的金手指代碼,大部分都可以用來修改eboot(其他控制代碼的,都不能用來修改eboot),需要地址-10000(十六進(jìn)制)。還有一小部分的直寫碼金手指,其地址-10000后仍然超出了eboot的地址范圍,這些就不能用于修改eboot,只能用CCAPI來改。
注意:一個地址存儲一個字節(jié),十六進(jìn)制數(shù)值,F(xiàn)F一個字節(jié),F(xiàn)FFF兩個字節(jié),F(xiàn)FFFFFFF四個字節(jié)。數(shù)值類型一定要選對,沒選對就會出錯。例如:
假設(shè)所有地址初始數(shù)值都是00,要在地址10存儲2字節(jié)數(shù)值A(chǔ)13F,地址欄填寫10,選擇數(shù)值類型2字節(jié),數(shù)值欄填寫A13F,存儲完畢后,地址10存儲了字節(jié)A1,地址11存儲了字節(jié)3F。
如果選錯,數(shù)值類型選了4字節(jié),那么存儲完畢后,地址10字節(jié)00,地址11字節(jié)00,地址12字節(jié)A1,地址13字節(jié)3F,數(shù)值輸入錯誤了。
如果選錯,數(shù)值類型選了1字節(jié),那么存儲完畢后,地址10字節(jié)3F,其他地址字節(jié)沒變,數(shù)值的高位字節(jié)A1就被軟件自動舍棄,數(shù)值輸入錯誤了。
控制代碼02:鎖定賦值碼
CU控制代碼00001000開頭的,或者是控制代碼00000000開頭的,就是鎖定賦值碼。其代碼格式如下:
00001000 ssssssss aaaaaaaa
或者
00000000 ssssssss aaaaaaaa
ssssssss是地址,aaaaaaaa是數(shù)值,地址和數(shù)值都是十六進(jìn)制的。
鎖定賦值碼的功能,就是把數(shù)值aaaaaaaa寫入地址ssssssss中,并鎖定數(shù)值,數(shù)值類型由要寫入的數(shù)值大小來決定。例如:
InfiniteHealth (Veronica)
00001000 00BDEA9E 000000C8
就是把1字節(jié)數(shù)值C8(十進(jìn)制是200),寫入地址BDEA9E,并鎖定。例子這個代碼在游戲里的實(shí)際作用,就是鎖定血條。
要用CCAPI實(shí)現(xiàn)這個金手指代碼,只需要添加一個code,輸入地址和對應(yīng)的數(shù)值,并勾選上frozen鎖定框。
3 小時(shí)前 上傳
下載附件(8.47 KB)
鎖定賦值碼,還有些是控制代碼00000000開頭的,例如:
Unit1
00000000 1A34F8B2 0000001E
00000000 1A34F8B3 00000009
同上面一樣,只要為每一組的數(shù)據(jù)都添加一個code,分別輸入對應(yīng)的地址和數(shù)值,選好對應(yīng)的數(shù)值類型,再勾選上frozen鎖定框就可以了。
只有鎖定賦值碼的金手指代碼,也是靜態(tài)地址金手指代碼,可以選擇save codes保存,以備下次再用。
控制代碼03:加法壓縮碼
CU控制代碼00004200開頭的(或者控制代碼00004100和00004000開頭的)一行代碼,加上00004nnn開頭的一行代碼,兩行代碼一起構(gòu)成了一個加法壓縮碼。其代碼格式如下:
00004200 ssssssss aaaaaaaa
00004nnn xxxxxxxx yyyyyyyy
或者
00004100 ssssssss aaaaaaaa
00004nnn xxxxxxxx yyyyyyyy
或者
00004000 ssssssss aaaaaaaa
00004nnn xxxxxxxx yyyyyyyy
其中,ssssssss是起始地址,aaaaaaaa是起始數(shù)值,nnn是未壓縮代碼行數(shù),xxxxxxxx是地址間距,yyyyyyyy是數(shù)值間距,都是十六進(jìn)制的。
加法壓縮碼的功能,就是將多行直寫碼,壓縮成兩行,未壓縮的地址和對應(yīng)數(shù)值可表示如下:
ssssssss :aaaaaaaa
ssssssss+xxxxxxxx :aaaaaaaa+yyyyyyyy
......
ssssssss+(nnn -1)xxxxxxxx :aaaaaaaa+(nnn -1)yyyyyyyy
總共nnn組數(shù)據(jù)(地址:數(shù)值),數(shù)值類型由要寫入的數(shù)值大小來決定。
在cu代碼里,數(shù)值間距yyyyyyyy基本上都是0,還沒見過是其他數(shù)值的代碼。另外,再強(qiáng)調(diào)下,金手指代碼里nnn等數(shù)據(jù)都是十六進(jìn)制的,若nnn為010,則共有16組未壓縮數(shù)據(jù),而非10組數(shù)據(jù)。
下面舉個例子:
QuickFinish Quest
00004200 3345B8CF 000000FF
00004007 0000004C 00000000
起始地址3345B8CF,起始數(shù)值FF(十進(jìn)制為255)是1個字節(jié)(數(shù)值類型選擇1字節(jié)),未壓縮代碼行數(shù)為7行,地址間距4C,數(shù)值間距為0。所以,未壓縮的地址和對應(yīng)數(shù)值可表示如下:
3345B8CF :FF
3345B91B :FF
3345B967 :FF
3345B9B3 :FF
3345B9FF :FF
3345BA4B :FF
3345BA97 :FF
共7組數(shù)據(jù),要用CCAPI實(shí)現(xiàn)這個金手指代碼,就需要為每一組的數(shù)據(jù)都添加一個code,分別輸入對應(yīng)的地址和數(shù)值就可以了。
加法壓縮碼,還有些是控制代碼00004100和00004000開頭的,區(qū)別就在于00004200開頭的只寫入一次,而00004100和00004000開頭的保持鎖定。例如:
MaxStats Aoto
00004100 015E5C82 0000FFFF
00004004 00000004 00000000
起始地址15E5C82,起始數(shù)值FFFF(十進(jìn)制為65535)是2個字節(jié)(數(shù)值類型選擇2字節(jié)),未壓縮代碼行數(shù)為4行,地址間距4,數(shù)值間距為0。
和上面一樣,算出未壓縮的地址,用CCAPI為每一組的數(shù)據(jù)添加一個code,分別輸入對應(yīng)的地址和數(shù)值,并保持鎖定就可以了。
有時(shí)候一個金手指代碼里不止一個加法壓縮碼,例如:
AllCharacters HP 999/999
00004000 012D366C 000003E7
00004007 0000018C 00000000
00004000 012D3678 000003E7
00004007 0000018C 00000000
00004000 012D3694 000003E7
00004007 0000018C 00000000
有3個加法壓縮碼,每一個有7組未壓縮數(shù)據(jù),總共21組數(shù)據(jù),CCAPI要實(shí)現(xiàn)這個金手指代碼,就需要把這些數(shù)據(jù)全部輸入。以前cfw3.55能用cu2.3的時(shí)候,這個步驟是軟件自動計(jì)算輸入的,現(xiàn)在就只能自己手動輸入了,略顯麻煩。不過加法壓縮碼一般是用在物品裝備或者解鎖人物之類的代碼上,基本上只需要輸入一次,還算可以接受吧。上面這個例子的數(shù)據(jù)稍微有點(diǎn)多,這里就不列舉具體數(shù)值了。
另外,只有加法壓縮碼的金手指代碼,也是靜態(tài)地址金手指代碼,可以選擇save codes保存,以備下次再用。
控制代碼04:指針尋址碼
CU控制代碼00003000開頭的,就是指針尋址碼。其代碼格式如下:
00003000 ssssssss yyyyyyyy
其中,ssssssss是指針地址,yyyyyyyy是數(shù)值間距,指針尋址碼數(shù)值類型都是4字節(jié)。
指針地址ssssssss儲存的數(shù)值+數(shù)值間距yyyyyyyy=動態(tài)地址數(shù)值。
指針尋址碼的功能,就是計(jì)算出動態(tài)地址數(shù)值,將此動態(tài)地址數(shù)值作為下一行代碼的地址。
指針地址ssssssss儲存的數(shù)值(數(shù)值類型是4字節(jié)),是ps3游戲程序自行生成的,而且不固定,一般讀檔后就變,有些動畫和轉(zhuǎn)換場景之后,也會改變。
指針尋址碼一般和一個直寫碼或者鎖定賦值碼構(gòu)成一組數(shù)據(jù)。例如:
(WitchPower) 9999999
00003000 0115AD94 00000048
00002000 00000000 0098967F
指針尋址碼來確定地址,初始指針地址0115AD94所儲存的數(shù)值(數(shù)值類型為4字節(jié))+數(shù)值間距00000048=地址數(shù)值。
直寫碼寫入數(shù)值,00000000表示上一行代碼計(jì)算得出的地址數(shù)值作為此行代碼的實(shí)際地址,0098967F是需要修改的數(shù)值,要填入實(shí)際地址中。
用CCAPI來實(shí)現(xiàn)代碼,首先需要查看初始指針地址0115AD94所儲存的數(shù)值(數(shù)值類型為4字節(jié))。直接添加new code(此code可保留,用于實(shí)時(shí)查看地址變動),地址欄輸入這個地址0115AD94,數(shù)值類型選4字節(jié),顯示出來儲存的數(shù)值目前為361353232。
361353232轉(zhuǎn)換成十六進(jìn)制,數(shù)值為1589D010,這樣地址數(shù)值=1589D010+00000048=1589D058。
添加金手指new code,剛算出來的地址數(shù)值1589D058作為實(shí)際地址,輸入修改數(shù)值0098967F(CCCheat 1.01填入的是十進(jìn)制9999999),98967F是3個字節(jié),所以數(shù)值類型選4字節(jié),這時(shí)金手指就起作用了。
有時(shí)候指針尋址碼不止一行,這就包含了多重指針。例如:
PlayerMP Maximum 1000
00003000 01B4EF9C 00000008
00003000 00000000 00000020
00002000 00000000 000003E8
第一行指針尋址碼,假設(shè)初始指針地址01B4EF9C所儲存的數(shù)值為a(轉(zhuǎn)換為十六進(jìn)制,數(shù)值類型為4字節(jié)),則a+00000008=地址數(shù)值b。
第二行指針尋址碼,地址00000000表示上一行代碼計(jì)算得出的地址數(shù)值b作為此行代碼的指針地址,地址b所儲存的數(shù)值為c(轉(zhuǎn)換為十六進(jìn)制,數(shù)值類型為4字節(jié)),則c+00000020=地址數(shù)值d。
第三行直寫碼,00000000表示上一行代碼計(jì)算得出的地址數(shù)值d作為此行代碼的實(shí)際地址,000003E8(十進(jìn)制為1000)是需要修改的數(shù)值,要填入實(shí)際地址d中,這里3E8是1.5個字節(jié),所以數(shù)值類型選擇2個字節(jié)。
更多行的指針尋址碼以此類推。
包含指針尋址碼的金手指代碼,都是動態(tài)地址金手指代碼,因?yàn)閷?shí)際地址是變化的,具體應(yīng)用的時(shí)候,還是需要查看金手指代碼來計(jì)算動態(tài)地址,所以沒必要用軟件保存codes,最多保存下初始指針地址,用于實(shí)時(shí)查看下地址變動。
控制代碼05:鍵位條件碼
CU控制代碼0000Cnnn開頭的,就是鍵位條件碼。其代碼格式如下:
0000Cnnn 00000000 aaaaaaaa
其中,nnn是鍵位條件碼控制的代碼行數(shù),00000000是當(dāng)前手柄鍵位數(shù)值,aaaaaaaa是條件數(shù)值。
鍵位條件碼的功能,就是只有當(dāng)滿足給定的條件“當(dāng)前手柄鍵位數(shù)值等于條件數(shù)值aaaaaaaa”時(shí)(手柄按下對應(yīng)按鍵后),那么執(zhí)行一次鍵位條件碼下面的nnn行代碼。例如:
Grenade999 (Press Select)
0000C001 00000000 00010000
00002000 1090EDE8 000007FF
條件數(shù)值00010000對應(yīng)手柄按鍵Select,就是當(dāng)按下Select鍵時(shí),CU金手指程序執(zhí)行一次鍵位條件碼下面的1行代碼,例子的金手指代碼效果就是直寫碼賦值,只是多了一行鍵位條件碼控制。
鍵位條件碼對我們來說沒什么用,用CCAPI來實(shí)現(xiàn)的,就在需要修改的時(shí)候,忽略這一行的鍵位條件碼,直接實(shí)現(xiàn)后面代碼的效果。
控制代碼06:數(shù)值復(fù)制碼
CU控制代碼00005000開頭的(或者控制代碼00005100開頭的)一行代碼,加上00005000開頭的一行代碼,兩行代碼一起構(gòu)成了一個數(shù)值復(fù)制碼。其代碼格式如下:
00005000 rrrrrrrr wwwwwwww對應(yīng)數(shù)值類型4字節(jié)
00005000 00000001 00000000
或者
00005100 rrrrrrrr wwwwwwww對應(yīng)數(shù)值類型2字節(jié)
00005000 00000001 00000000
其中,rrrrrrrr是讀取地址,wwwwwwww是寫入地址,第二行00000001表示讀取數(shù)值,00000000表示寫入數(shù)值。
數(shù)值復(fù)制碼的功能就是把讀取地址rrrrrrrr儲存的數(shù)值復(fù)制到寫入地址wwwwwwww中。
00005100和00005000的區(qū)別就在于數(shù)值類型不同,00005000開頭的代碼復(fù)制4字節(jié)數(shù)值,00005100開頭的代碼復(fù)制2字節(jié)數(shù)值。例如:
NinjaMagic Max
0000C002 00000000 00000030
00005000 0171F630 0171F634
00005000 00000001 00000000
第一行是鍵位條件碼,忽略。第二行和第三行就是數(shù)值復(fù)制碼,00005000對應(yīng)數(shù)值類型4字節(jié),其作用就是把讀取地址0171F630儲存的4字節(jié)數(shù)值復(fù)制到寫入地址0171F634中。
用CCAPI來實(shí)現(xiàn),先添加一個code,地址填0171F630,數(shù)值類型選4 bytes,可以看見其儲存的數(shù)值為十進(jìn)制數(shù)1128792064;再添加一個code,地址填0171F634,數(shù)值類型選4 bytes,復(fù)制讀取地址0171F630儲存的數(shù)值1128792064,填入value中,這樣,金手指就生效了。
再看一個例子:
HPMax
00005100 1028C7E4 1028C7B4
00005000 00000001 00000000
00005100 1028C7E4 1028C7E6
00005000 00000001 00000000
總共兩個數(shù)值復(fù)制碼,00005100對應(yīng)數(shù)值類型2字節(jié),其作用就是把讀取地址1028C7E4儲存的2字節(jié)數(shù)值復(fù)制到寫入地址1028C7B4和1028C7E6中。
用CCAPI,就是填入讀取和寫入地址,選好數(shù)值類型,把value中的數(shù)值復(fù)制一下就可以了。
只有數(shù)值復(fù)制碼的金手指代碼,也是靜態(tài)地址金手指代碼,可以選擇save codes保存,以備下次再用。
控制代碼07:暫存碼
CU控制代碼00003003和00003006開頭的,或者00003002和00003005開頭的,或者00003001和00003004開頭的,就是暫存碼。其代碼格式如下:
00003003 00000000 0000000 對應(yīng)數(shù)值類型4字節(jié)
00003002 00000000 0000000 對應(yīng)數(shù)值類型2字節(jié)
00003001 00000000 0000000 對應(yīng)數(shù)值類型1字節(jié)
功能是讀取當(dāng)前地址(源地址),將其儲存的數(shù)值寫入暫存;
00003006 00000000 0000000 對應(yīng)數(shù)值類型4字節(jié)
00003005 00000000 0000000 對應(yīng)數(shù)值類型2字節(jié)
00003004 00000000 0000000 對應(yīng)數(shù)值類型1字節(jié)
功能是讀取暫存,將暫存中的數(shù)值寫入當(dāng)前地址(目標(biāo)地址)。
暫存碼總是成對出現(xiàn),00003003和00003006匹配,00003002和00003005匹配,00003001和00003004匹配。
暫存碼一般與鍵位條件碼及指針尋址碼配合使用,每一對就完成一次兩個不同地址之間的數(shù)值復(fù)制。
暫存碼和數(shù)值復(fù)制碼的區(qū)別,就在于地址類型不同,數(shù)值復(fù)制碼用于靜態(tài)地址,暫存碼用于動態(tài)地址。例如:
(PressL1) To P1 Infinite Health
0000C006 00000000 00000004
00003000 32A8F1B0 00000CF0
00003000 00000000 00000224
00003003 00000000 00000000
00003000 32A8F1B0 00000CF0
00003000 00000000 00000220
00003006 00000000 00000000
第一行鍵位條件碼控制,就是當(dāng)按下L1鍵時(shí),CU金手指程序執(zhí)行一次下面的6行代碼。對我們來說沒用,忽略。
第二行,指針尋址碼,初始指針地址32A8F1B0當(dāng)前儲存的數(shù)值為868244224(十六進(jìn)制為33C05B00),則地址數(shù)值=33C05B00+00000CF0=33C067F0。
第三行,指針尋址碼,地址00000000表示上一行的計(jì)算結(jié)果地址數(shù)值33C067F0作為本行指針地址,地址33C067F0當(dāng)前儲存的數(shù)值為868242032(十六進(jìn)制為33C05270),則地址數(shù)值=33C05270+00000224=33C05494。
第四行,暫存碼00003003,對應(yīng)數(shù)值類型4字節(jié),讀取當(dāng)前地址(源地址),將其儲存的4字節(jié)數(shù)值寫入暫存,地址00000000表示上一行的計(jì)算結(jié)果地址數(shù)值33C05494作為本行當(dāng)前地址,源地址33C05494當(dāng)前儲存的4字節(jié)數(shù)值為十進(jìn)制數(shù)30000,則暫存中的4字節(jié)數(shù)值變?yōu)槭M(jìn)制數(shù)30000。
第五行,指針尋址碼,由于當(dāng)前例子的第五行和第二行是一樣的,則地址數(shù)值=33C067F0。
第六行,指針尋址碼,地址00000000表示上一行的計(jì)算結(jié)果地址數(shù)值33C067F0作為本行指針地址,地址33C067F0當(dāng)前儲存的數(shù)值為868242032(十六進(jìn)制為33C05270),則地址數(shù)值=33C05270+00000220=33C05490。
第七行,暫存碼00003006,對應(yīng)數(shù)值類型4字節(jié),讀取暫存,將暫存中的4字節(jié)數(shù)值寫入當(dāng)前地址(目標(biāo)地址),在第四行中暫存中的4字節(jié)數(shù)值已經(jīng)變?yōu)榱耸M(jìn)制數(shù)30000,地址00000000表示上一行的計(jì)算結(jié)果地址數(shù)值33C05490作為本行當(dāng)前地址,則目標(biāo)地址33C05490儲存的4字節(jié)數(shù)值變?yōu)槭M(jìn)制數(shù)30000。
此例子實(shí)質(zhì)上就是通過暫存作為中轉(zhuǎn),復(fù)制源地址33C05494儲存的數(shù)值到目標(biāo)地址33C05490中。此例子在游戲中產(chǎn)生的效果,就是把人物當(dāng)前生命值變?yōu)樽畲笊怠?/p>
用CCAPI來實(shí)現(xiàn),就是找出源地址和目標(biāo)地址,然后把源地址儲存的數(shù)值復(fù)制到目標(biāo)地址中。注意不同代碼對應(yīng)的數(shù)值類型,上例中00003003和00003006對應(yīng)的數(shù)值類型是4字節(jié),源地址33C05494,目標(biāo)地址33C05490。
暫存碼都是用在動態(tài)地址中,因?yàn)閷?shí)際地址是變化的,具體應(yīng)用的時(shí)候,還是需要查看金手指代碼來計(jì)算動態(tài)地址,所以沒必要用軟件保存codes。
控制代碼08:主碼
CU代碼里名稱叫做Master Code的就是主碼。例如:
MasterCode
00000100424C4A4D 60389018
以前要用金手指,在usb金手指狗或者金手指光盤軟件里,主碼必須開啟,同一游戲的其他代碼作為附屬碼,才可以使用。但是現(xiàn)在用CCAPI直接改內(nèi)存,可以直接改附屬碼,所以主碼Master Code對我們來說完全沒用,可以忽略。
控制代碼09:描述信息碼
CU代碼里名稱叫做Info的就是描述信息碼。例如:
Info- [For 01.01]
0000000000000000 00000000
描述信息碼Info一般是關(guān)于金手指的信息,比如游戲版本、注意事項(xiàng)、按鍵提示等等,其本身不起任何作用,所以看下就行了。
總結(jié)
本文已經(jīng)全面具體的解析了cu2.3格式的金手指代碼,對各個代碼的基本信息總結(jié)如下表:
代碼名稱 |
控制代碼
|
數(shù)值類型
|
地址
|
直寫碼
|
00002000
|
寫入數(shù)值決定
|
靜態(tài)
|
鎖定賦值碼
|
00001000
|
寫入數(shù)值決定 數(shù)值鎖定
|
靜態(tài)
|
00000000
|
|||
加法壓縮碼
|
00004200和00004nnn
|
寫入數(shù)值決定
|
靜態(tài)
|
00004100和00004nnn
|
寫入數(shù)值決定 數(shù)值鎖定
|
||
00004000和00004nnn
|
|||
指針尋址碼
|
00003000
|
4字節(jié)
|
動態(tài)
|
鍵位條件碼
|
0000Cnnn
|
忽略
|
忽略
|
數(shù)值復(fù)制碼
|
00005000和00005000
|
4字節(jié)
|
靜態(tài)
|
00005100和00005000
|
2字節(jié)
|
||
暫存碼
|
00003003和00003006
|
4字節(jié)
|
動態(tài)
|
00003002和00003005
|
2字節(jié)
|
||
00003001和00003004
|
1字節(jié)
|
||
主碼MasterCode
|
忽略
|
忽略
|
忽略
|
描述信息碼info
|
忽略
|
忽略
|
忽略
|
用CCAPI來實(shí)現(xiàn)CU金手指代碼的基本流程,就是通過代碼,能快速定位地址和得到要修改的數(shù)值,選好對應(yīng)的數(shù)值類型,添加codes,金手指就生效了。
純靜態(tài)地址的金手指代碼,可以用CCCheat 1.01的save codes保存,以備下次再用。而任何包含了動態(tài)代碼的金手指,都是動態(tài)地址的金手指代碼,由于實(shí)際地址是變動的,沒必要用save codes保存。
使用金手指時(shí),請注意游戲版本匹配,并及時(shí)存檔。尤其對動態(tài)地址的金手指代碼,請慎用鎖定。當(dāng)讀檔、動畫或場景變動時(shí),動態(tài)地址會改變,如果此時(shí)鎖定,有可能會造成ps3死機(jī)。除非你相當(dāng)清楚地址改變的觸發(fā)時(shí)機(jī),否則不推薦鎖定動態(tài)地址金手指。比如,在打boss的時(shí)候,先鎖定動態(tài)地址金手指,當(dāng)boss就剩血皮的時(shí)候,暫停,在pc端取消鎖定,回去打死boss,此時(shí)一般是劇情動畫,之后游戲程序會重新分配地址,由于剛才取消了鎖定,所以不會造成內(nèi)存地址沖突,也就沒了死機(jī)的風(fēng)險(xiǎn)??傊?,鎖定動態(tài)地址金手指是有死機(jī)風(fēng)險(xiǎn)的,看個人取舍了。
最后,在這里感謝CMP論壇的bungholio整理cu金手指代碼,還要感謝一下國內(nèi)外各大網(wǎng)站論壇的金手指提供者。
熱門新聞
我要評論 查看全部評論 (0)>>