注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

lbw2007

黑夜赐给我一双黑色的眼睛,我却给它滴眼药水!

 
 
 

日志

 
 

金手指格式  

2011-01-30 10:35:13|  分类: PSP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
代碼格式說明:
首先應該知道的一點,
CM裡輸入數字的時候,一般都可以按□在16進制和10進制數字顯示之間切換
鎖定的使用:
只要某行代碼屬性是非鎖定,則該行代碼不會執行.
當前行是D碼或者E碼行非鎖定的話,就跳過後續n行.
指針6碼行非鎖定的話,則跳過若干行(具體看6碼書寫規則).

字節類型的選擇:
CW碼因為字節數根據金手指代碼語法即可判斷,所以CW碼行的字節類型選自動即可.
CM碼,則根據自己要求選擇,一般自動也可以滿足要求.


------------------------------------------------------------------------------------
支持以下金手指代碼,cw代碼基本上拿過來就可用
數字一律16進制

最簡單的,直寫碼
0aaaaaaa 0x000000dd
將地址aaaaaaa處數據改為dd
1aaaaaaa 0x0000dddd
將地址aaaaaaa處數據改為dddd
寫入地址必須是偶數
2aaaaaaa 0xdddddddd
將地址aaaaaaa處數據改為dddddddd
寫入地址必須是4的倍數

壓縮碼,比較有用
8aaaaaaa nnnnmmmm
000000dd 000000ss
從aaaaaaa地址開始,每增加mmmm的地址,就修改這個地址處的數據
寫入數據dd為基數,每次遞增ss,共修改nnnn條
8aaaaaaa nnnnmmmm
1000dddd 0000ssss
從aaaaaaa地址開始,每增加mmmm*2的地址,就修改這個地址處的數據
數據dddd為基數,每次遞增ssss,共修改nnnn條
寫入地址必須是偶數
4aaaaaaa nnnnmmmm
dddddddd ssssssss
從aaaaaaa地址開始,每增加mmmm*4的地址,就修改這個地址處的數據
寫入數據dddddddd為基數,每次遞增ssssssss,共修改nnnn條
寫入地址必須是4的倍數

條件碼,也很有用
Daaaaaaa 200000dd
當地址aaaaaaa處數據等於dd時,執行下一條密碼,否則跳過
Daaaaaaa 201000dd
當地址aaaaaaa處數據不等於dd時,執行下一條密碼,否則跳過
Daaaaaaa 202000dd
當地址aaaaaaa處數據小於dd時,執行下一條密碼,否則跳過
Daaaaaaa 203000dd
當地址aaaaaaa處數據大於dd時,執行下一條密碼,否則跳過
Daaaaaaa 0000dddd
當地址aaaaaaa處數據等於dddd時,執行下一條密碼,否則跳過
地址必須是偶數
Daaaaaaa 0010dddd
當地址aaaaaaa處數據不等於dddd時,執行下一條密碼,否則跳過
地址必須是偶數
Daaaaaaa 0020dddd
當地址aaaaaaa處數據小於dddd時,執行下一條密碼,否則跳過
地址必須是偶數
Daaaaaaa 0030dddd
當地址aaaaaaa處數據大於dddd時,執行下一條密碼,否則跳過
地址必須是偶數

0xDaaaaaaa 0x4bbbbbbb
0xnnnnnnnn 0x0000000(0)
0xXXXXXXXX 0xYYYYYYYY (起始行)
※當地址aaaaaaa上的値等於地址aaaaaaa上的則從起始行開始連續執行nnnnnnnn行碼,否則跳過這些碼不執行。
括號內的數字決定兩個地址上的比較値的類型,0表示單字節(8-bit)、1表示雙字節(16-bit)、2表示四字節(32-bit)。
0xDaaaaaaa 0x5bbbbbbb
0xnnnnnnnn 0x0000000(0)
0xXXXXXXXX 0xYYYYYYYY (起始行)
※這個是作不等於的運算。
0xDaaaaaaa 0x6bbbbbbb
0xnnnnnnnn 0x0000000(0)
0xXXXXXXXX 0xYYYYYYYY (起始行)
※這個是作小於的運算。
0xDaaaaaaa 0x7bbbbbbb
0xnnnnnnnn 0x0000000(0)
0xXXXXXXXX 0xYYYYYYYY (起始行)
※這個是作大於的運算。

下面這個條件碼可以嵌套
E0nndddd 0aaaaaaa
當地址aaaaaaa數據等於dddd時,執行下nn條密碼,否則跳過
地址必須是偶數
E0nndddd 1aaaaaaa
當地址aaaaaaa數據不等於dddd時,執行下nn密碼,否則跳過
地址必須是偶數
E0nndddd 2aaaaaaa
當地址aaaaaaa數據小於dddd時,執行下nn密碼,否則跳過
地址必須是偶數
E0nndddd 3aaaaaaa
當地址aaaaaaa數據大於dddd時,執行下nn密碼,否則跳過
地址必須是偶數
E1nn00dd 0aaaaaaa
當地址aaaaaaa數據等於dd時,執行下nn條密碼,否則跳過
E1nn00dd 1aaaaaaa
當地址aaaaaaa數據不等於dd時,執行下nn密碼,否則跳過
E1nn00dd 2aaaaaaa
當地址aaaaaaa數據小於dd時,執行下nn密碼,否則跳過
E1nn00dd 3aaaaaaa
當地址aaaaaaa數據大於dd時,執行下nn密碼,否則跳過

復制碼
5aaaaaaa nnnnnnnn
bbbbbbbb 00000000
將aaaaaaa地址處數據拷貝nnnnnnnn字節到bbbbbbbb地址處

邏輯運算碼
單字節/8 bits
0x7aaaaaaa 0x000000bb
將aaaaaaa地址上的數値作或運算,由bb決定哪些比特作比較。
0x7aaaaaaa 0x000200bb
將aaaaaaa地址上的數値作與運算,由bb決定哪些比特作比較。
0x7aaaaaaa 0x000400bb
將aaaaaaa地址上的數値作非運算,由bb決定哪些比特作比較。
雙字節/16 bits
0x7aaaaaaa 0x0001bbbb
將aaaaaaa地址上的數値作或運算,由bbbb決定哪些比特作比較
地址必須是偶數
0x7aaaaaaa 0x0003bbbb
將aaaaaaa地址上的數値作與運算,由bbbb決定哪些比特作比較
地址必須是偶數
0x7aaaaaaa 0x0005bbbb
將aaaaaaa地址上的數値作非運算,由bbbb決定哪些比特作比較
地址必須是偶數

加減碼
單字節/8 bits
0x301000nn 0x0aaaaaaa
將aaaaaaa地址上的數値每經過一幀就增加nn。
0x302000nn 0x0aaaaaaa
將aaaaaaa地址上的數値每經過一幀就減去nn。
雙字節/16 bits
0x3030nnnn 0x0aaaaaaa
將aaaaaaa地址上的數値每經過一幀就增加nnnn,地址必須是偶數
0x3040nnnn 0x0aaaaaaa
將aaaaaaa地址上的數値每經過一幀就減去nnnn,地址必須是偶數
四字節/32 bits
0x30500000 0x0aaaaaaa
0xnnnnnnnn 0x00000000
將aaaaaaa地址上的數値每經過一幀就增加nnnnnnnn,寫入地址必須是4的倍數
0x30600000 0x0aaaaaaa
0xnnnnnnnn 0x00000000
將aaaaaaa地址上的數値每經過一幀就減去nnnnnnnn,寫入地址必須是4的倍數
這些碼可以把地址上的原數値作加減法運算,加減的速度非常快,通常要配合條件碼使用。

鍵位碼
D00000dd 1nnnnnnn
當鍵位值等於nnnnnnn時執行該行代碼下的dd+1行代碼,否則跳過dd+1行代碼。
反向鍵位碼
D00000dd 3nnnnnnn
當鍵位值等於nnnnnnn時跳過下面dd+1行代碼,否則執行下面dd+1行代碼。

每個按鍵對應的鍵位値如下:
Button  Code
SELECT 0x00000001
START 0x00000008
DPAD UP 0x00000010
DPAD RIGHT 0x00000020
DPAD DOWN 0x00000040
DPAD LEFT 0x00000080
L TRIGGER 0x00000100
R TRIGGER 0x00000200
TRIANGLE 0x00001000
CIRCLE 0x00002000
CROSS 0x00004000
SQUARE 0x00008000
HOME 0x00010000
HOLD 0x00020000
NOTE 0x00800000
SCREEN 0x00400000
VOLUME UP 0x00100000
VOLUME DOWN 0x00200000
WLAN UP 0x00040000
REMOTE HOLD 0x00080000
如果想配組合鍵的話可以將每個按鍵的值相加
支持嵌套


指針碼
適用於某些每次變化,動態分配的內存數值
反正想做這個碼的人會自己研究,用的人直接輸入,這裡不詳細說明了
8位+
0x6aaaaaaa 0x000000vv
0x0000nnnn 0xiiiiiiii
16位+
0x6aaaaaaa 0x0000vvvv
0x0001nnnn 0xiiiiiiii
32位+
0x6aaaaaaa 0xvvvvvvvv
0x0002nnnn 0xiiiiiiii
8位-
0x6aaaaaaa 0x000000vv
0x0003nnnn 0xiiiiiiii
16位-
0x6aaaaaaa 0x000000vv
0x0004nnnn 0xiiiiiiii
32位-
0x6aaaaaaa 0x000000vv
0x0005nnnn 0xiiiiiiii

多級指針
0x6aaaaaaa 0xvvvvvvvv
0xqqqynnnn 0xbbbbbbbb
0x2ccccccc 0x3ddddddd
……
aaaaaaa還是最原始的base,vvvvvvvv是value,y是指針類型決定了value的數據類型以及bbbbbbbb是正向還是逆向的。
nnnn〉1時判斷下面的附加行是甚麼數字開頭的,1開頭的是之前的指針複製碼,9開頭的是之前的指針壓縮碼,2或3開頭的就是多級指針碼。
如果是多級指針碼的話那qqq部分必須是000,ccccccc是1級offset,ddddddd是2級offset,後面依次類推,而bbbbbbbb是末級offset,也就是最後將要寫入vvvvvvvv時的那個offset。
附加行中開頭的2表示ccccccc是正向offset,開頭的3表示ddddddd是逆向offset。
擧兩個戰神的例子:
鎖mp
[[[0x60346B00]+0xA8]+0x68]+0x64
0x60346B00 0x43480000
0x00020003 0x00000064
0x200000A8 0x20000068
因爲末級offset是0x64而且是正向的所以bbbbbbbb部分是0x00000064,y部分是2(因爲鎖32bit數據);0xA8是1級offset而且是正向的所以附加行開頭就是0x200000A8;2級offset是0x68就是0x20000068

PS轉PSP碼
一、了解轉碼
還是先讓我啰嗦一下
所謂轉碼,其實就是轉換一下代碼格式,也就是換湯不換藥
一如我一直說的,金手指核心只有三部分:地址、數值、邏輯
轉碼需要的就是找到相同的邏輯部分,然後填上地址和數值。
這是只需要耐心和細心就能完成的事,所以泛用性同樣很強。


二、AR碼分析和轉碼
寫在前面:PS的所有代碼到PSP上地址全部+0x01000000,至於值部分的長度,有效數字都是b代表的部分,所以見到00bb的長度不要吃驚,當成000000bb就是了

1、直寫碼
3碼、8碼、9碼,分別是8、16、32bit直寫碼
A表示地址,b表示數值
所以這樣轉

1)3碼
30AAAAAA 000000bb
轉為
0x01AAAAAA 0x000000bb
(註意30變成了01而非00,因為地址要加,上面說過的,下面就不再提示了)

2)8碼
80AAAAAA 0000bbbb
轉為
0x11AAAAAA 0x0000bbbb

3)9碼
90AAAAAA bbbbbbbb
轉為
0x21AAAAAA 0xbbbbbbbb


2、壓縮碼
B碼和5碼就是壓縮碼,作為外殼加載在直寫碼上,其中nnn是總修改條數,cccc是實際間隔(所以有的要換算成eeee),dd是數值遞增幅度

先來5碼(PS.沒有32bit)

1)8bit壓縮碼
5000nncc 000000dd
30AAAAAA 000000bb
轉成
0x81AAAAAA 0x00nn00cc
0x000000bb 0x000000dd

2)16bit壓縮碼
5000nncc 0000dddd
80AAAAAA 0000bbbb
轉成
0x81AAAAAA 0x00nn00ee
0x1000bbbb 0x0000dddd
ee=cc/2

再來B碼

1)8bit壓縮碼
Bnnncccc 000000dd
30AAAAAA 000000bb
轉成
0x81AAAAAA 0x0nnncccc
0x000000bb 0x000000dd

2)16bit壓縮碼
Bnnncccc 0000dddd
80AAAAAA 0000bbbb
轉成
0x81AAAAAA 0x0nnneeee
0x1000bbbb 0x0000dddd
eeee=cccc/2

3)32bit壓縮碼
Bnnncccc dddddddd
90AAAAAA bbbbbbbb
轉成
0x41AAAAAA 0x0nnneeee
0xbbbbbbbb 0xdddddddd
eeee=cccc/4


3、最後的條件碼
D碼和E碼

1)D碼,也就是16位單行條件碼
D0AAAAAA 0000bbbb
轉成
0xD1AAAAAA 0x0000bbbb

2)E碼,16位多行條件碼
E0AAAAAA bbbbnnnn
轉成
0xE0nnbbbb 0x01AAAAAA
  评论这张
 
阅读(142)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017