GG修改器常用參數大全與lua腳本的基本編寫


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,

 

結尾:

文中的部分參考資料,來源與互聯網查詢,查看,整理,記錄,修改,完善。

最終目的,都是是為了促進大家相互學習。不存在任何侵權行為。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM