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,
结尾:
文中的部分参考资料,来源与互联网查询,查看,整理,记录,修改,完善。
最终目的,都是是为了促进大家相互学习。不存在任何侵权行为。
by不言谢
不要和别人比,要赢得是自己。(ง •̀_•́)ง
本文来自博客园,作者:不言谢,转载请注明原文链接:https://www.cnblogs.com/byx1024/p/15834126.html