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,

 

结尾:

文中的部分参考资料,来源与互联网查询,查看,整理,记录,修改,完善。

最终目的,都是是为了促进大家相互学习。不存在任何侵权行为。

 

posted @ 2022-01-22 15:55  不言谢  阅读(33917)  评论(0编辑  收藏  举报