GG修改器參數大全_內存范圍、數據類型、常用函數、偏移量
GG修改器,要修改游戲。與 lua腳本編寫,必知道的一些知識:
內存范圍、數據類型、常用函數、偏移量
此文章給想學gg的新人使用,這里的函數其實並不全,但是夠用。但網絡上只找到這個版本的。
后續,發現還會持續更新。
推薦GG修改器與lua腳本學習地方:B站,自己搜索視頻學習。
一、內存范圍
所有內存范圍,示意如下:
Jh內存 | ['REGION_JAVA_HEAP'] = 2 |
Ch內存 | ['REGION_C_HEAP'] = 1 |
Ca內存 | ['REGION_C_ALLOC'] = 4 |
Cd內存 | ['REGION_C_DATA'] = 8 |
Cb內存 | ['REGION_C_BSS'] = 16 |
Ps內存 | ['REGION_PPSSPP'] = 262144 |
A內存 | ['REGION_ANONYMOUS'] = 32 |
J內存 | ['REGION_JAVA'] = 65536 |
S內存 | ['REGION_STACK'] = 64 |
As內存 | ['REGION_ASHMEM'] = 524288 |
V內存 | ['REGION_VIDEO'] = 1048576 |
O內存(慢) | ['REGION_OTHER'] = -2080896 |
B內存(危險) | ['REGION_BAD'] = 131072 |
Xa內存(危險) | ['REGION_CODE_APP'] = 16384 |
Xs內存(危險) | ['REGION_CODE_SYS'] = 32768 |
二、數據類型
所有內存范圍,示意如下:
A:Auto(慢) | ['TYPE_AUTO'] = 127 |
D:Dword | ['TYPE_DWORD'] = 4 |
F:Float | ['TYPE_FLOAT'] = 16 |
E:Double | ['TYPE_DOUBLE'] = 64 |
W:Word | ['TYPE_WORD'] = 2 |
B:Byte | ['TYPE_BYTE'] = 1 |
Q:Qword | ['TYPE_QWORD'] = 32 |
X:Xor | ['TYPE_XOR'] = 8 |
其他省略... |
三、常用函數
function | 函數,功能 |
gg.alert(常用) | 彈出提示窗口 |
gg.toast(常用) | 屏幕下方彈出提示條(會自動消失) |
gg.prompt(常用) | 彈出帶有控件的提示窗口 |
gg.choice(常用) | 彈出單選列表窗口 |
gg.clearResults(常用) | 清除搜索結果 |
gg.editAll(常用) | 修改搜索結果 |
gg.getFile | 獲取當前腳本所在目錄 |
gg.getResults(常用) | 獲取搜索結果 |
gg.getResultCount | 獲取搜索結果數量 |
gg.setRanges | 設置搜索內存 |
gg.isVisible | 判斷GG界面是否可見 |
gg.multiChoice(常用) | 彈出多選列表窗口 |
gg.processKill | 結束當前選定應用 |
gg.searchNumber(常用) | 搜索數據(重要) |
gg.setVisible(常用) | 設置GG界面是否可見 |
getline | 讀取行數 |
getlocale | 獲取地值 |
getRanges | 獲取內存區域內的? |
getRangeslist | 獲取內存區域列表 |
getResultCount | 獲取結果計數 |
getResultso | 獲取結果並加載 |
getSpeedo | 獲取加速 |
getTargetInfo | 獲取目標信息 |
getTargetPackage | 獲取迸程包名GG內存 |
sleep(x) | 延遲 x填入數字,單位為毫秒 |
三、基本lua腳本的編寫
這里提供一個,最基本的lua腳本模板。復制到文本文件中,后綴改成lua 即可使用。就不提供上傳文件。自己復制即可。
如果想內容更豐富一些,可以借鑒其他人的腳本,然后加上面的常用函數即可。
function Main() menu1 = gg.choice({ "1.功能一", "2.功能二", "3.功能三", "4.功能四", "5.功能五", "退出" }, nil, "不言謝獨家制作") if menu1 == 1 then byx1() end if menu1 == 2 then byx2() end if menu1 == 3 then byx3() end if menu1 == 4 then byx4() end if menu1 == 5 then byx5() end if menu1 == 6 then Exit() end XGCK = -1 end function byx1() gg.clearResults() gg.setRanges(32) gg.searchNumber("特征碼", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("修改的數值", gg.TYPE_DWORD) gg.toast("完成后的提示") gg.clearResults() end function byx2() gg.clearResults() gg.setRanges(32) gg.searchNumber("特征碼", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("修改的數值", gg.TYPE_DWORD) gg.toast("完成后的提示") gg.clearResults() end function byx3() gg.clearResults() gg.setRanges(32) gg.searchNumber("特征碼", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("修改的數值", gg.TYPE_DWORD) gg.toast("完成后的提示") gg.clearResults() end function byx4() gg.clearResults() gg.setRanges(32) gg.searchNumber("特征碼", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("修改的數值", gg.TYPE_DWORD) gg.toast("完成后的提示") gg.clearResults() end function byx5() gg.clearResults() gg.setRanges(32) gg.searchNumber("特征碼", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("改善", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("修改的數值", gg.TYPE_DWORD) gg.toast("完成后的提示") gg.clearResults() end function Exit() print("腳本退出了") os.exit() end while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() end end
三、偏移的寫法
因為,通常我不用偏移方法。這里我就不深入研究了。這里提供一個網友分享的方法。如果有需要的可以看看。
同時推薦,一下視頻,方便學習。GG腳本仿xs寫法教程
--多個地址,但偏移量一致,設置值一樣 --獲取需要偏移的搜索結果 t=gg.getResults(12345) --12345為我隨便設置的,你們根據所需設置即可 --循環偏移 for n=1,#t do --以偏移0xC為例,獲取DWORD值 A=gg.sumAddress(t,n,0xC,4) --設置需要修改的值 A【1】.value = 78 --加載修改值 gg.setValues(A) end --已知一些地址 t={ {address=0x12C42148}, {address=0x12D80930}, {address=0x12D94AD4}, {address=0x12FCD4CC} } --循環偏移 for n=1,#t do --以偏移0xC為例,獲取DWORD值 t【n】=gg.sumAddress(t,n,0xC,4) --設置需要修改的值 t【1】.value = 78 end --加載修改值 gg.setValues(t)--用法二 --多個地址,但偏移量均不一樣,設置值一樣 --獲取表,也可以是用已知的地址組成的表 t=gg.getResults(4) --設置偏移量表,表長度和獲取的表最好一樣 o={ 0xC, 1388, 0xBA24, 24666 } for n=1,#o do --偏移,獲取float類型 o【n】=gg.sumAddress(t,n,o【n】,16) --設置值 o【n】.value=1.875 end --加載值 gg.setValues(o) --用法三 --多個地址,偏移量不一樣,修改值也不一樣 --已知一些地址 addressItem={ {address=0x12C42148}, {address=0x12D80930}, {address=0x12D94AD4}, {address=0x12FCD4CC} } --設置偏移量表,表長度和獲取的表最好一樣 addressOffest={ 0xC, 1388, 0xBA24, 24666 } --設置修改值 addressValue={ 2837, 2884, 1838,
結尾:
文中的部分參考資料,來源與互聯網查詢,查看,整理,記錄,修改,完善。
最終目的,都是是為了促進大家相互學習。不存在任何侵權行為。