loadYunLuaGroup("5C3C4E3813681C4C204C35346F1B4C2F7EFF612D2B221779A4DEA2EE4D5B0D1E6DCD82D1A08DE1")
function init()
stab = _ENV["分页"]
ttitle = _ENV["标题"]
xfcpic = _ENV["悬浮窗图标"]
end
elgg.import("toast")
elgg.import("AlGui")
import "irene.window.algui.AlGuiData"
import "irene.window.algui.AlGuiSoundEffect"
import "irene.window.algui.AlGuiWindowView"
import "irene.window.algui.Tools.VariousTools"
import "java.util.Locale"
import "android.view.Gravity"
import "android.widget.LinearLayout"
import "android.widget.AbsListView"
local neonColors = {0xFFff0066,0xFFffcc00,0xFF00ff99,0xFF00e5ff,0xFF0066ff,0xFF9900ff,0xFFff0099}
luajava.runOnUiThread(function()
if AlGui.algui then
AlGui.algui.clearBall()
AlGui.algui.clearMenu()
AlGuiWindowView.clearAllViews(context)
gui = AlGui.newGUI(context)
else
gui = AlGui.GUI(context)
end
if AlGuiBubbleNotification.bn then
Inform = AlGuiBubbleNotification.newInform(context)
else
Inform = AlGuiBubbleNotification.Inform(context)
end
AlGuiWindowView.showNeonLightText(
context,
neonColors,
17,
nil,
Gravity.START | Gravity.BOTTOM,
10, 2000)
AlGuiWindowView.showNeonLightText(
context,"所有功能均为私服展示 无任何不良行为\n所有功能均为豆包大数据模型操作\n请审核员仔细甄别\n支持平台正能量 所有均为后期高级PS技术",
neonColors,
17,
nil,
Gravity.START | Gravity.BOTTOM,
800, 800)
end)
local g = {}--音乐播放函数
g.file = gg.getFile()
g.sel = nil
gqlb={"请先搜索歌曲",}
idb={"1010"}
SN,gc=1,nil
g.config = gg.getFile():gsub("%lua$", "").."cfg"
function bei()
g.data = loadfile(g.config)
if g.data ~= nil then
g.sel = g.data()
g.data = nil
end
if g.sel == nil then
g.sel = {"star unkind","50"}
end
end
bei()
function start(name,sl)
fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl)
return fw
end
function play(id,name)
gg.toast("正在播放音乐:"..name,true)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3")
end
--停止播放
function 停止()
gg.toast("正在停止音乐")
for i=1,100 do
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end
end
function Play(gqlb,idb)
SN = gg.choice(gqlb,nil,ts)
if SN == nil then XGCK =-1 else
gg.toast("歌曲:"..gqlb[SN])
play(idb[SN],gqlb[SN])
Main()
end
end
function zjson(jsonr)
local str = jsonr
-- 匹配Json Key的正则表达式
local pattern = "\"[%w]+\":"
string.gsub(str, pattern, function(v)
if string.find(str, v) then
str = string.gsub(str, v, string.gsub(v, "\"", ""))
end
end)
str = string.gsub(str, ":", "=")
str = string.gsub(str, "%[", "{")
str = string.gsub(str, "%]", "}")
local data = "return " .. str
local res = load(data)()
return res
end
function json(con)
res=zjson(con)
zd=res.result.songCount
pd=go3-zd
if pd <= 0 then else go3=zd end
ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首"
gqlb={}
idb={}
for i=1,go3 do
gqlb[i]=res.result.songs[i].name
idb[i]=res.result.songs[i].id
end
--print(idb)
end
function 播放热歌()
local api = "https://free.wqwlkj.cn/wqwlapi/wyy_random.php?type=json"
local response = gg.makeRequest(api)
if response and response.code == 200 then
local data = response.content
-- 解析 data.name 歌曲名
local song_name = string.match(data, '"name"%s*:%s*"([^"]+)"%s*,%s*"alname"') -- 第一个name是data里的name
-- 解析作者
local artist = string.match(data, '"artistsname"%s*:%s*"([^"]+)"')
-- 解析播放地址
local url = string.match(data, '"url"%s*:%s*"([^"]+)"')
if url then
local display = song_name or "未知歌曲"
if artist then
display = display .. " - " .. artist
end
gg.toast("正在播放:" .. display)
gg.playMusic(url)
else
gg.alert("没有找到音乐地址,可能接口变了~")
end
else
gg.alert("请求失败,请检查网络或接口地址")
end
end
_ENV["悬浮窗图标"] = "https://wp.kayyw.com/f/8ZqAIl/Image_1782633080258_578.jpg"--这是图标,想上传图标,可以来问我
-- 写图片文件直链
_ENV["标题"] = "ELGG - UI"
_ENV["分页"] = {
-- 导航栏分页名字和图标,添加表即可加页数,需要与功能配置页面数量对应
"前列工具",--一页名
"游戏功能",--二页
"娱乐功能",
"设置",
-- '设置',--这样添加新页面
}
init() -- 传递变量勿动
uistart({ -- 每一个功能页面需要有上边分页名字对应,多出来的不显示,少了需要补充
{ --1
CAtext("作者:羽无\n代理: 一只黎.", "#4A148C", "16sp", true),
CAtext("版本[3.0]\n欢迎使用本辅助 祝你天天开心\nQQ通知群:[1037311087]\n[3.0] 更新日志\n优化了大部分功能 修复部分特定bug", "#FF0000", "13sp", true, true),
CAtext("必开功能", "#FF0000", "12sp", true),
CAbutton("选择进程[必开]",
function()
gg.setConfig("隐藏辅助", 24)
gg.setProcessX()
end),
CAbutton("过搜索[无需so]",
function()
local kaishi = os.clock()
for i = 1, 10 do gg.setConfig("隐藏辅助", 0) end
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("~A8 MOV X8, #0xE8", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
local results = gg.getResults(5000)
local count = #results
if count > 0 then gg.editAll("~A8 RET", gg.TYPE_DWORD) end
local jieshu = os.clock()
local haoshi = jieshu - kaishi
gg.toast(string.format("开启成功\n耗时: %.2f 秒", haoshi))
gg.clearResults()
for i = 1, 10 do gg.setConfig("隐藏辅助", 24) end
end, 0xff0062ff), -- 第三参数颜色
CAbutton('过追封[必开用完断网]',
function()
lpcall(gg.command, "su -c 'chmod 000 /data/user/0/com.hortor.juliancysj/files/LocalFiles'")
gg.alert("防追封开启成功,开启前不要修改数据,进入游戏后断网修改,完成后直接退出游戏")
end),
CAbutton('局内过检测[必开]',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.toast("开始执行过检测...")
gg.clearResults()
local searchCount = gg.searchNumber(":MessageBox", gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
if searchCount == nil or searchCount == 0 then
gg.toast("开启失败未搜索到特征数据")
gg.clearResults()
return
end
local results = gg.getResults(10000)
if results == nil or #results == 0 then
gg.toast("开启失败搜索结果为空")
gg.clearResults()
return
end
local editCount = gg.editAll("0", gg.TYPE_BYTE)
if editCount == nil or editCount == 0 then
gg.toast("开启失败数据修改失败")
gg.clearResults()
return
end
gg.toast("开启成功共修改 " .. editCount .. " 处数据")
end),
CAbutton('备用过搜索',
function()
gg.setConfig("隐藏辅助",23)
function S_Pointer(t_So, t_Offset, _bit)
local function getWritableRanges()
local ranges = {}
local allRanges = gg.getRangesList('^/data/*.so*$')
for _, v in ipairs(allRanges) do
if v.type:sub(2, 2) == 'w' then
ranges[#ranges + 1] = v
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local S_list = getWritableRanges()
local addressType = ti_bit and 32 or 4
local targetSo = nil
for _, v in ipairs(S_list) do
local soName = v.internalName:match('[^/]*$')
if N_So[1] == soName and N_So[2] == v.state then
targetSo = v
break
end
end
if not targetSo then
return nil
end
local currentAddress = targetSo.start + Offset[1]
if #Offset > 1 then
for i = 2, #Offset do
local values = gg.getValues({{address = currentAddress, flags = addressType}})
currentAddress = values[1].value + Offset[i]
if not gg.getTargetInfo().x64 then
currentAddress = currentAddress & 0xFFFFFFFF
end
end
end
return currentAddress
end
local resultAddress = Get_Address(t_So, t_Offset, _bit)
return resultAddress and string.format('0x%X', resultAddress) or nil
end
gg.setConfig("隐藏辅助",6)
local soInfo = {"libexecgame.so:bss", "Cb"}
local offsets = {0x47000, 0x478}
local finalAddress = S_Pointer(soInfo, offsets, true)
if finalAddress then
gg.setValues({{address = finalAddress, flags = 4, value = -698416192}})
else
print("未找到目标地址")
end
gg.setConfig("隐藏辅助",14)
gg.toast("开启成功")
end),
CAbutton(
'一键替换so',
function()
local pkg = "com.hortor.juliancysj"
local url = "https://wp.kayyw.com/f/L9lPuk/libNetHTProtect.so"
local tmp_so = "/sdcard/libNetHTProtect.so"
-- 真正能识别 * 通配符的目标路径
local target_dir_shell = "/data/app/" .. pkg .. "-*/lib/arm64/"
local target_so_shell = target_dir_shell .. "libNetHTProtect.so"
-- 1. 下载
gg.toast("开始下载 libNetHTProtect.so")
file.download(url, tmp_so)
gg.sleep(800)
-- 2. 检查是否下载成功
if not file.exists(tmp_so) then
gg.alert("下载失败!文件不存在")
return
end
-- 3. 必须用 sh -c 才能让 * 通配符生效(这是你拷不进去的核心原因)
gg.toast("开始替换到游戏目录")
gg.command(string.format([[su -c 'sh -c "mkdir -p %s"']], target_dir_shell))
gg.sleep(300)
gg.command(string.format([[su -c 'sh -c "cp -f %s %s"']], tmp_so, target_so_shell))
gg.sleep(300)
gg.command(string.format([[su -c 'sh -c "chmod 644 %s"']], target_so_shell))
gg.sleep(200)
-- 4. 清理临时文件
os.remove(tmp_so)
gg.alert("替换完成!","我已知晓")
end),
CAswitch(
"偏移自定义搜索[全游戏通用]",
function()
function a()
local b = gg.choice({
"E类型 (DOUBLE)",
"W类型 (WORD)",
"D类型 (DWORD)",
"F类型 (FLOAT)",
"Q类型 (QWORD)",
"X类型 (BYTE)",
"B类型 (BYTE)",
"S类型 (AUTO)",
"A类型 (ALL)"
}, nil, "🔍 选择搜索类型")
if not b then
gg.toast("❌ 已取消搜索")
return
end
local searchTypeMap = {
[1] = gg.TYPE_DOUBLE,
[2] = gg.TYPE_WORD,
[3] = gg.TYPE_DWORD,
[4] = gg.TYPE_FLOAT,
[5] = gg.TYPE_QWORD,
[6] = gg.TYPE_XOR,
[7] = gg.TYPE_BYTE,
[8] = gg.TYPE_AUTO,
[9] = gg.TYPE_ALL
}
local searchType = searchTypeMap[b]
-- 输入数值
local input = gg.prompt(
{"✏️ 请输入搜索值:"},
{""},
{"number"}
)
if not input or input[1] == "" then
gg.toast("❌ 已取消搜索")
return
end
local searchStr = input[1]
gg.clearResults()
gg.searchNumber(searchStr, searchType, false, gg.SIGN_EQUAL, 0, -1, 0)
local count = gg.getResultsCount()
if count <= 0 then
gg.alert("❌ 未找到任何结果!")
return
end
gg.toast(string.format("✅ 找到 %d 个结果", count))
-- 初始化延迟时间
local delayTime = 5
-- 十六进制字符串转十进制数字
local function hexToDec(hexStr)
-- 移除可能的前缀
hexStr = hexStr:gsub("^0[xX]", "")
hexStr = hexStr:gsub("^[hH]", "")
-- 检查是否是有效的十六进制字符串
if hexStr:match("^[0-9a-fA-F]+$") then
return tonumber(hexStr, 16)
end
return nil
end
function Setdefa()
-- 获取所有搜索结果
local allResults = gg.getResults(gg.getResultsCount())
local selectedIndexes = {}
if #allResults == 0 then
gg.alert("没有可查看的结果")
return false
end
-- 修改选中值的函数
local function modifySelectedValues()
local modifyValue = gg.prompt({"输入新数值"}, {""}, {"number"})
if not modifyValue then return false, false end
local valuesToModify = {}
for i, isSelected in ipairs(selectedIndexes) do
if isSelected then
table.insert(valuesToModify, {
address = allResults[i].address,
flags = allResults[i].flags or gg.TYPE_DWORD,
value = tonumber(modifyValue[1]) or 0
})
end
end
if #valuesToModify > 0 then
gg.setValues(valuesToModify)
gg.toast("已修改 " .. #valuesToModify .. " 个数值")
return true, false
end
return false, false
end
-- 删除选中结果的函数
local function deleteSelectedResults()
local newResults = {}
for i, v in ipairs(allResults) do
if not selectedIndexes[i] then
table.insert(newResults, v)
end
end
allResults = newResults
selectedIndexes = {}
gg.clearResults()
gg.addListItems(allResults)
gg.toast("已删除选中的结果")
end
-- 处理偏移量的函数(支持十六进制和十进制)
local function processWithOffset()
local offsetInput = gg.prompt(
{"输入偏移量 (例如: 0,4,8 或 0x4C,0x50 或 4C,50)"},
{""},
{"text"}
)
if not offsetInput then return end
local offsets = {}
for offsetStr in string.gmatch(offsetInput[1], "[^,%s]+") do
local offset
-- 尝试解析为十六进制
if offsetStr:lower():match("^[0-9a-f]+[hHxX]?$") then
offset = hexToDec(offsetStr)
end
-- 如果十六进制解析失败,尝试十进制
if not offset then
offset = tonumber(offsetStr)
end
if offset then
table.insert(offsets, offset)
else
gg.alert("无效的偏移量格式: " .. offsetStr .. "\n\n支持格式:\n- 十进制: 0,4,8\n- 十六进制: 0x4C,0x50\n- 十六进制: 4C,50")
return
end
end
if #offsets == 0 then
gg.alert("无效的偏移量格式")
return
end
local newResults = {}
local displayList = {}
for i, v in ipairs(allResults) do
if selectedIndexes[i] then
for _, offset in ipairs(offsets) do
local newAddr = v.address + offset
local newValue = gg.getValues({{address = newAddr, flags = v.flags or gg.TYPE_DWORD}})[1].value
table.insert(newResults, {
address = newAddr,
flags = v.flags or gg.TYPE_DWORD,
value = newValue
})
table.insert(displayList, string.format("%d. 地址: %X | 数值: %s | 偏移: %s(0x%X)",
#newResults, newAddr, newValue, offset, offset))
end
end
end
if #newResults == 0 then
gg.alert("没有生成新的结果")
return
end
-- 显示新的结果供用户选择
local newSelections = {}
for i = 1, #newResults do
newSelections[i] = false
end
while true do
local result = gg.multiChoice(displayList, newSelections, "查看并选择偏移后的结果(共" .. #newResults .. "个)")
if not result then break end
newSelections = result
local actionMenu = {
"修改选中的偏移值",
"删除选中的偏移结果",
"继续查看/选择",
"返回"
}
local actionChoice = gg.choice(actionMenu, nil, "已选择 " .. #newSelections .. " 个偏移后的数值")
if actionChoice == 1 then
local success, shouldExit = modifySelectedValues()
if success and shouldExit then
return true
end
elseif actionChoice == 2 then
local newNewResults = {}
for i, isSelected in ipairs(newSelections) do
if not isSelected then
table.insert(newNewResults, newResults[i])
end
end
newResults = newNewResults
displayList = {}
for i, v in ipairs(newResults) do
displayList[i] = string.format("%d. 地址: %X | 数值: %s", i, v.address, v.value)
end
newSelections = {}
for i = 1, #newResults do
newSelections[i] = false
end
elseif actionChoice == 3 then
-- 更新显示列表(已经在循环外)
elseif actionChoice == 4 then
break
end
end
return false
end
local displayList = {}
for i, v in ipairs(allResults) do
displayList[i] = string.format("%d. 地址: %X | 数值: %s", i, v.address, v.value)
end
local selections = {}
for i = 1, #allResults do
selections[i] = selectedIndexes[i] or false
end
while true do
local result = gg.multiChoice(displayList, selections, "查看并选择结果(共" .. #allResults .. "个)")
if not result then break end
for i = 1, #selections do
selections[i] = result[i] or false
selectedIndexes[i] = result[i] or nil
end
local actionMenu = {
"修改选中的数值",
"删除选中的结果",
"使用偏移量处理",
"继续查看/选择",
"返回"
}
local actionChoice = gg.choice(actionMenu, nil, "已选择 " .. #selectedIndexes .. " 个数值")
if actionChoice == 1 then
local success, shouldExit = modifySelectedValues()
if success and shouldExit then
return true
end
elseif actionChoice == 2 then
deleteSelectedResults()
break
elseif actionChoice == 3 then
processWithOffset()
elseif actionChoice == 4 then
-- 更新显示列表
displayList = {}
for i, v in ipairs(allResults) do
displayList[i] = string.format("%d. 地址: %X | 数值: %s", i, v.address, v.value)
end
elseif actionChoice == 5 then
break
end
end
return false
end
function SetDelay()
local input = gg.prompt(
{'请输入延迟时间(秒)'},
{delayTime},
{'number'}
)
if input == nil then
gg.toast('已取消')
return
end
delayTime = tonumber(input[1])
if delayTime and delayTime > 0 then
gg.toast('延迟时间已设置为: ' .. delayTime .. ' 秒')
else
gg.toast('请输入有效的正数')
delayTime = 5
end
end
function ExecuteCoreOperation()
-- 空函数,根据需求实现
gg.toast("执行核心操作")
end
function FilterValues()
local opChoice = gg.choice({
"等于 (=)",
"大于 (>)",
"小于 (<)",
"大于等于 (>=)",
"小于等于 (<=)"
}, nil, "🔍 选择过滤条件")
if not opChoice then
gg.toast("❌ 已取消过滤")
return count
end
local signMap = {
[1] = gg.SIGN_EQUAL,
[2] = gg.SIGN_GREATER,
[3] = gg.SIGN_LESS,
[4] = gg.SIGN_GREATER_EQU,
[5] = gg.SIGN_LESS_EQU
}
local filterSign = signMap[opChoice]
local filterInput = gg.prompt(
{"✏️ 输入过滤数值:"},
{"0"},
{"number"}
)
if not filterInput or filterInput[1] == "" then
gg.toast("❌ 已取消过滤")
return count
end
local filterValue = tonumber(filterInput[1])
if not filterValue then
gg.alert("❌ 输入无效!")
return count
end
gg.refineNumber(filterValue, searchType, filterSign)
count = gg.getResultsCount()
if count == 0 then
gg.alert("❌ 过滤后无结果")
gg.clearResults()
else
gg.toast(string.format("✅ 过滤完成,剩余:%d 个结果", count))
end
return count
end
function StartLoop()
if not delayTime or delayTime <= 0 then
gg.toast('请先设置有效的延迟时间')
SetDelay()
return
end
while true do
gg.toast('开始执行操作...')
ExecuteCoreOperation() -- 执行核心操作
-- 延迟倒计时
gg.alert(delayTime .. "秒后重复操作")
gg.toast(delayTime .. ' 秒后重复操作')
for i = delayTime, 1, -1 do
gg.toast(i .. ' 秒后重复操作')
gg.sleep(1000)
end
local refineInput = gg.prompt(
{"✏️ 输入改善值:"},
{"0"},
{"number"}
)
if not refineInput then
gg.toast("❌ 已取消改善")
break
end
local refineValue = tonumber(refineInput[1])
if not refineValue then
gg.alert("❌ 输入无效!")
break
end
gg.refineNumber(refineValue, searchType)
count = gg.getResultsCount()
if count == 0 then
gg.alert("❌ 改善后无结果")
gg.clearResults()
break
end
gg.toast(string.format("✅ 改善完成,剩余:%d", count))
-- 询问用户下一步操作
local choice = gg.choice({
"继续改善(" .. delayTime .. "秒延迟)",
"自定义延迟时并改善",
"过滤数值", -- 新增过滤选项
"返回主菜单"
}, nil, "执行中...\n\n当前" ..count .. "个值\n\n")
if choice == nil or choice == 4 then
gg.toast('返回主菜单')
break
elseif choice == 2 then
local timeInput = gg.prompt(
{'请输入延迟时间(秒)'},
{delayTime},
{'number'}
)
if timeInput == nil then
gg.toast('已取消')
return
end
delayTime = tonumber(timeInput[1])
if delayTime and delayTime > 0 then
gg.toast('延迟时间已设置为: ' .. delayTime .. ' 秒')
else
gg.toast('请输入有效的正数')
delayTime = 5
end
elseif choice == 3 then
-- 调用过滤功能
FilterValues()
if count == 0 then
break
end
end
end
end
function FunctionB()
local valInput = gg.prompt(
{"✏️ 输入新数值:"},
{"0"},
{"number"}
)
if not valInput or valInput[1] == "" then
gg.toast("❌ 已取消修改")
return
end
local newValue = tonumber(valInput[1])
if not newValue then
gg.alert("❌ 输入无效!")
return
end
local freezeChoice = gg.choice({
"仅修改",
"修改并冻结"
}, nil, "❄️ 是否冻结?")
if not freezeChoice then
gg.toast("❌ 已取消")
return
end
local results = gg.getResults(count)
if freezeChoice == 1 then
for _, v in ipairs(results) do
v.value = newValue
end
gg.setValues(results)
gg.toast(string.format("✅ 已修改 %d 个值", #results))
elseif freezeChoice == 2 then
for _, v in ipairs(results) do
v.value = newValue
v.freeze = true
end
gg.setValues(results)
gg.addListItems(results)
gg.toast(string.format("❄️ 已冻结 %d 个值", #results))
end
end
function FunctionC()
function FunctionC()
local offsetInput = gg.prompt(
{"✏️ 输入偏移量:"},
{"0"},
{"number"}
)
if not offsetInput or offsetInput[1] == "" then
gg.toast("❌ 已取消偏移")
return
end
local offset = tonumber(offsetInput[1])
if not offset then
gg.alert("❌ 请输入有效的数字!")
return
end
local results = gg.getResults(count)
local newResults = {}
for i, v in ipairs(results) do
local newAddr = v.address + offset
table.insert(newResults, {
address = newAddr,
flags = v.flags or searchType,
value = v.value, -- 保持原值
freeze = v.freeze
})
end
-- 清空原结果,添加偏移后的地址
gg.addListItems(newResults)
count = #newResults
gg.toast(string.format("✅ 已偏移 %d 个地址 (偏移量: %d)", count, offset))
end
end
function MainMenu()
while true do
gg.setVisible(false)
local SN = gg.choice({
"自定义改善数值",
"查看值并修改值",
"全选修改新数值",
"改善延迟为: " .. (delayTime or 5) .. "秒",
"退出自定义搜索"
}, nil, "自定义搜索🔍\n当前结果数量: " .. count .. "个值")
if SN == nil then
break
elseif SN == 1 then
StartLoop()
elseif SN == 2 then
Setdefa()
elseif SN == 3 then
FunctionB()
elseif SN == 4 then
SetDelay()
elseif SN == 5 then
break
end
end
end
MainMenu()
end
function c()
gg.alert("再见")
end
function M()
while true do
gg.setVisible(false)
local YY = gg.choice({
"🔎搜索",
"❌ 退出"
}, nil, "自定义搜索🔍")
if YY == nil then
break
elseif YY == 1 then
a()
elseif YY == 2 then
c()
break
end
end
end
M()
end),
CAtext("→通用功能←", "#FF0000", "13sp", true),
CAbutton('通用秒杀',
function()
toast.white("开始搜索中 请耐心等待")
gg.setRanges(gg.REGION_ANONYMOUS)
local a=gg.searchNumber
local b=gg.getResults
local c=gg.getValues
local d=gg.getResultsCount
local e=gg.refineNumber
local k=gg.TYPE_DWORD
gg.clearResults()
a("2;4096;2560",k)
e("2",k)
local m=d()
local n,o,p,q,r,s=0,0,0,0,0,0
if m>0 then
local t=b(m)
local u={}
local v=0
for w=1,m do
local x=t[w].address
v=v+1 u[v]={address=x+4,flags=k}
v=v+1 u[v]={address=x-0x38,flags=k}
v=v+1 u[v]={address=x-0x44,flags=k}
v=v+1 u[v]={address=x-0x8C,flags=k}
v=v+1 u[v]={address=x-0x3C,flags=k}
v=v+1 u[v]={address=x-0x48,flags=k}
v=v+1 u[v]={address=x-0x90,flags=k}
v=v+1 u[v]={address=x-0x40,flags=k}
v=v+1 u[v]={address=x-0x4C,flags=k}
v=v+1 u[v]={address=x-0x94,flags=k}
end
local y=c(u)
local z=1
for w=1,m do
if y[z].value==4096 then
local A=y[z+1].value
local B=y[z+2].value
local C=y[z+3].value
if A>=1000 and A<=9999 and B>=1000 and B<=9999 and C>=1000 and C<=9999 then
n=y[z+4].value
o=y[z+5].value
p=y[z+6].value
q=y[z+7].value
r=y[z+8].value
s=y[z+9].value
break
end
end
z=z+10
end
end
gg.clearResults()
local g=gg.alert
local h=gg.prompt
local i=gg.choice
local j=gg.sleep
local f=gg.setValues
local l=100000
gg.setRanges(gg.REGION_ANONYMOUS)
local D=h({"请输入伤害"},nil,{"number"})
if not D then return gg.setVisible(true) end
local E=tonumber(D[1])
if not E then g("失败") return gg.setVisible(true) end
local F=E*2
gg.clearResults()
a(F..";4096",k)
e(F,k)
local G=d()
if G<=0 then g("失败") gg.setVisible(true) return end
local H=b(G)
local I={}
local J=0
local K=math.min
for L=1,G,l do
local M=K(L+l-1,G)
for N=L,M do
if H[N].value%2==0 then
J=J+1
I[J]=H[N].address
end
end
end
if J==0 then g("失败") gg.setVisible(true) return end
local O={}
local P=0
for Q=1,J do
local R=I[Q]
P=P+1 O[P]={address=R-0x38,flags=k}
P=P+1 O[P]={address=R-0x44,flags=k}
P=P+1 O[P]={address=R-0x8C,flags=k}
end
local S=c(O)
local T={}
local U=0
local V=1
for Q=1,J do
local W=S[V].value
local X=S[V+1].value
local Y=S[V+2].value
if W>=1000 and W<=9999 and X>=1000 and X<=9999 and Y>=1000 and Y<=9999 then
U=U+1
T[U]=I[Q]
end
V=V+3
end
if U==0 then g("失败") gg.setVisible(true) return end
local save={}
local Z={}
local _=0
for a0=1,U do
local a1=T[a0]
local a2={address=a1-4,flags=k}
local a3={address=a1,flags=k}
local a4={address=a1-0x3C,flags=k}
local a5={address=a1-0x48,flags=k}
local a6={address=a1-0x90,flags=k}
local a7={address=a1-0x40,flags=k}
local a8={address=a1-0x4C,flags=k}
local a9={address=a1-0x94,flags=k}
local b0=c({a2,a3,a4,a5,a6,a7,a8,a9})
save[a1-4]=b0[1].value
save[a1]=b0[2].value
save[a1-0x3C]=b0[3].value
save[a1-0x48]=b0[4].value
save[a1-0x90]=b0[5].value
save[a1-0x40]=b0[6].value
save[a1-0x4C]=b0[7].value
save[a1-0x94]=b0[8].value
_=_+1 Z[_]={address=a1-4,flags=k,value=1000}
_=_+1 Z[_]={address=a1,flags=k,value=1000}
_=_+1 Z[_]={address=a1-0x3C,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x48,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x90,flags=k,value=-1798011921116}
end
local b1={}
local b2=0
for b3=1,#Z do
b2=b2+1 b1[b2]=Z[b3]
if b2>=5000 then f(b1) b1={} b2=0 end
end
if b2>0 then f(b1) end
gg.clearResults()
gg.setVisible(false)
toast.white("开启成功,请查看鱼竿伤害数值")
end),
CAbutton('1元购',
function()
gg.alert("开启中\n请确保在G币支付页面打开的此功能")
_G.sv = {}
_G.e = nil
_G.searchDone = false
thread(function()
local kaishi = os.clock()
for i = 1, 10 do gg.setConfig("隐藏辅助", 0) end
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("~A8 MOV X8, #0xE8", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
local results = gg.getResults(5000)
local count = #results
if count > 0 then gg.editAll("~A8 RET", gg.TYPE_DWORD) end
local jieshu = os.clock()
local haoshi = jieshu - kaishi
toast.white(string.format("过搜索开启成功\n耗时: %.2f 秒", haoshi))
gg.clearResults()
for i = 1, 10 do gg.setConfig("隐藏辅助", 24) end
local r = gg.getRangesList()
if not r or #r == 0 then
os.exit()
end
local t = {}
local firstAddr = nil
for _, v in ipairs(r) do
if v.type and v.type:find("rw") and v.start > 0x6500000000 then
t[#t + 1] = {start = v.start, ['end'] = v['end']}
if not firstAddr then
firstAddr = v.start
end
end
end
if #t < 2 then
os.exit()
end
local prev = t[#t - 1]
local a = firstAddr
local b = prev['end']
local dist = b - a
local addr = a + math.floor(dist * 0.5)
_G.e = string.format("0x%X", addr)
gg.setRanges(gg.REGION_ANONYMOUS)
gg.clearResults()
gg.searchNumber("1729653", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, _G.e)
gg.refineNumber("1729653", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, _G.e)
local c = gg.getResultsCount()
if c == 0 then
toast.white("未找到结果")
return
end
local o = {
{n = "-0x50", o = -0x50},
{n = "-0x8", o = -0x8},
{n = "0x4", o = 0x4},
{n = "0x3C", o = 0x3C},
{n = "0x40", o = 0x40}
}
local fa = false
local allResults = gg.getResults(c)
for i = 1, #allResults do
local r = allResults[i]
if r then
local a = r.address
local rl = {}
for _, v in ipairs(o) do
table.insert(rl, {address = a + v.o, flags = gg.TYPE_DWORD})
end
local vl = gg.getValues(rl)
local v1 = vl[4].value
local v2 = vl[5].value
if v1 >= 45000000 and v1 <= 49999999 and v2 == 0 then
_G.sv.m1 = vl[1].value
_G.sv.m2 = vl[2].value
_G.sv.m3 = vl[3].value
_G.sv.ba = a
fa = true
break
end
end
end
if not fa then
toast.white("无结果")
return
end
_G.searchDone = true
end)
gg.clearResults()
local p = gg.prompt({"输入价格"}, {"6480"}, {"text"})
if not p or not p[1] then
toast.white("取消")
return
end
local iv = tonumber(p[1])
if not iv then
toast.white("无效数字")
return
end
local sv2 = iv * 2
while not _G.searchDone do
gg.sleep(100)
end
if not _G.sv.m1 or not _G.sv.m2 or not _G.sv.m3 then
toast.white("获取失败")
return
end
gg.setRanges(gg.REGION_ANONYMOUS)
gg.clearResults()
gg.searchNumber(tostring(sv2), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, _G.e)
gg.refineNumber(tostring(sv2), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, _G.e)
local gc = gg.getResultsCount()
if gc == 0 then
toast.white("无结果")
return
end
local sv = _G.sv
local ar = gg.getResults(gc)
local vr = {}
local ml = {}
local originalValues = {}
for i = 1, #ar do
local r = ar[i]
if r then
local a = r.address
local ca = a - 0x4
local cv = gg.getValues({{address = ca, flags = gg.TYPE_DWORD}})[1].value
if cv >= 45000000 and cv <= 49999999 then
table.insert(vr, {ba = a})
local addrs = {
a - 0x90,
a,
a - 0x4,
a - 0x3C,
a - 0x48
}
for _, addr in ipairs(addrs) do
table.insert(originalValues, {address = addr, flags = gg.TYPE_DWORD})
end
end
end
end
if #vr > 0 then
local om = {
{o = -0x90, v = sv.m1},
{o = 0x0, v = 0},
{o = -0x4, v = 0},
{o = -0x3C, v = sv.m3},
{o = -0x48, v = sv.m2}
}
if #originalValues > 0 then
originalValues = gg.getValues(originalValues)
end
for _, v in ipairs(vr) do
local a = v.ba
for _, m in ipairs(om) do
table.insert(ml, {address = a + m.o, flags = gg.TYPE_DWORD, value = m.v})
end
end
if #ml > 0 then
local s = gg.setValues(ml)
if s then
gg.alert("开启成功\n3秒后自动恢复原价\n请尽快完成购买!")
local startTime = os.time()
while os.time() - startTime < 3 do
local remain = 3 - (os.time() - startTime)
if remain > 0 then
toast.white(remain .. "秒后恢复...")
end
gg.sleep(1000)
end
if originalValues and #originalValues > 0 then
gg.setValues(originalValues)
toast.white("数据已恢复")
else
toast.white("恢复失败")
end
else
toast.white("开启失败")
end
end
else
toast.white("未找到匹配价格")
end
_G.sv = nil
_G.e = nil
_G.searchDone = nil
end),
CAbutton('无限货币',
function()
toast.white("正在搜索中,耐心等待")
gg.setRanges(gg.REGION_ANONYMOUS)
local a=gg.searchNumber
local b=gg.getResults
local c=gg.getValues
local d=gg.getResultsCount
local e=gg.refineNumber
local k=gg.TYPE_DWORD
gg.clearResults()
a("2;4096;2560",k)
e("2",k)
local m=d()
local n,o,p,q,r,s=0,0,0,0,0,0
if m>0 then
local t=b(m)
local u={}
local v=0
for w=1,m do
local x=t[w].address
v=v+1 u[v]={address=x+4,flags=k}
v=v+1 u[v]={address=x-0x38,flags=k}
v=v+1 u[v]={address=x-0x44,flags=k}
v=v+1 u[v]={address=x-0x8C,flags=k}
v=v+1 u[v]={address=x-0x3C,flags=k}
v=v+1 u[v]={address=x-0x48,flags=k}
v=v+1 u[v]={address=x-0x90,flags=k}
v=v+1 u[v]={address=x-0x40,flags=k}
v=v+1 u[v]={address=x-0x4C,flags=k}
v=v+1 u[v]={address=x-0x94,flags=k}
end
local y=c(u)
local z=1
for w=1,m do
if y[z].value==4096 then
local A=y[z+1].value
local B=y[z+2].value
local C=y[z+3].value
if A>=1000 and A<=9999 and B>=1000 and B<=9999 and C>=1000 and C<=9999 then
n=y[z+4].value
o=y[z+5].value
p=y[z+6].value
q=y[z+7].value
r=y[z+8].value
s=y[z+9].value
break
end
end
z=z+10
end
end
gg.clearResults()
local g=gg.alert
local h=gg.prompt
local i=gg.choice
local j=gg.sleep
local f=gg.setValues
local l=100000
gg.setRanges(gg.REGION_ANONYMOUS)
local D=h({"请输入货币数量"},nil,{"number"})
if not D then return gg.setVisible(true) end
local E=tonumber(D[1])
if not E then g("失败") return gg.setVisible(true) end
local F=E*2
gg.clearResults()
a(F..";4096",k)
e(F,k)
local G=d()
if G<=0 then g("失败") gg.setVisible(true) return end
local H=b(G)
local I={}
local J=0
local K=math.min
for L=1,G,l do
local M=K(L+l-1,G)
for N=L,M do
if H[N].value%2==0 then
J=J+1
I[J]=H[N].address
end
end
end
if J==0 then g("失败") gg.setVisible(true) return end
local O={}
local P=0
for Q=1,J do
local R=I[Q]
P=P+1 O[P]={address=R-0x38,flags=k}
P=P+1 O[P]={address=R-0x44,flags=k}
P=P+1 O[P]={address=R-0x8C,flags=k}
end
local S=c(O)
local T={}
local U=0
local V=1
for Q=1,J do
local W=S[V].value
local X=S[V+1].value
local Y=S[V+2].value
if W>=1000 and W<=9999 and X>=1000 and X<=9999 and Y>=1000 and Y<=9999 then
U=U+1
T[U]=I[Q]
end
V=V+3
end
if U==0 then g("失败") gg.setVisible(true) return end
local save={}
local Z={}
local _=0
for a0=1,U do
local a1=T[a0]
local a2={address=a1-4,flags=k}
local a3={address=a1,flags=k}
local a4={address=a1-0x3C,flags=k}
local a5={address=a1-0x48,flags=k}
local a6={address=a1-0x90,flags=k}
local a7={address=a1-0x40,flags=k}
local a8={address=a1-0x4C,flags=k}
local a9={address=a1-0x94,flags=k}
local b0=c({a2,a3,a4,a5,a6,a7,a8,a9})
save[a1-4]=b0[1].value
save[a1]=b0[2].value
save[a1-0x3C]=b0[3].value
save[a1-0x48]=b0[4].value
save[a1-0x90]=b0[5].value
save[a1-0x40]=b0[6].value
save[a1-0x4C]=b0[7].value
save[a1-0x94]=b0[8].value
_=_+1 Z[_]={address=a1-4,flags=k,value=1000}
_=_+1 Z[_]={address=a1,flags=k,value=1000}
_=_+1 Z[_]={address=a1-0x3C,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x48,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x90,flags=k,value=-1798011921116}
end
local b1={}
local b2=0
for b3=1,#Z do
b2=b2+1 b1[b2]=Z[b3]
if b2>=5000 then f(b1) b1={} b2=0 end
end
if b2>0 then f(b1) end
gg.clearResults()
gg.setVisible(false)
end),
CAbutton('通用改作者ID',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
gg.alert("无法获取内存区间列表")
return
end
local targetRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
targetRanges[#targetRanges + 1] = r
end
end
if #targetRanges < 6 then
gg.alert("当前进程 [anon:libc_malloc] 可读写区间不足 6 个")
return
end
local selectedRange = targetRanges[6]
local searchStart = selectedRange.start
local searchEnd = selectedRange["end"]
gg.setVisible(false)
gg.clearResults()
local targetID = gg.prompt({"输入要搜索的作者ID"}, {43853560}, {"number"})
if not targetID or not targetID[1] then
gg.setVisible(true)
return
end
gg.searchNumber(tonumber(targetID[1]), gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.sleep(1000)
local results = gg.getResults(100)
if not results or #results == 0 then
gg.alert("未找到匹配数据,ID可能不正确")
gg.setVisible(true)
return
end
local myID = gg.prompt({"输入自己的ID"}, {0}, {"number"})
if not myID or not myID[1] then
gg.setVisible(true)
return
end
local newID = tonumber(myID[1])
if not newID then
gg.alert("输入的ID无效")
gg.setVisible(true)
return
end
for _, v in ipairs(results) do
v.value = newID
end
gg.setValues(results)
gg.alert("修改成功!\n可进入联机")
gg.setVisible(true)
end),
},
{ --2
CAtext("→全游戏通用改物品←", "#FF0000", "13sp", true),
CAbutton('自定义更改',
function()
gg.setVisible(false)
gg.alert("初始化开始 获取较慢 请耐心等待 单局有效")
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("2560", gg.TYPE_DWORD)
gg.processResume()
gg.refineNumber("2560", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0)
gg.processResume()
local resultCount = gg.getResultsCount()
if resultCount == 0 then
gg.alert("初始化失败 请确认已进入游戏对局后重试")
return
end
local searchAddresses = {}
local resultBatchSize = 5000
for offset = 0, resultCount - 1, resultBatchSize do
local batch = gg.getResults(math.min(resultBatchSize, resultCount - offset), offset) or {}
for _, item in ipairs(batch) do
if item and item.address then
searchAddresses[#searchAddresses + 1] = item.address
end
end
end
gg.clearResults()
local function filterStructureMatches(addresses)
local matches = {}
local validationBatchSize = 2500
for first = 1, #addresses, validationBatchSize do
local last = math.min(first + validationBatchSize - 1, #addresses)
local requests = {}
for index = first, last do
requests[#requests + 1] = { address = addresses[index] - 84, flags = gg.TYPE_DWORD }
requests[#requests + 1] = { address = addresses[index] + 72, flags = gg.TYPE_DWORD }
end
local values = gg.getValues(requests) or {}
local valueIndex = 1
for index = first, last do
local leftValue = values[valueIndex] and values[valueIndex].value
local rightValue = values[valueIndex + 1] and values[valueIndex + 1].value
if leftValue == 3584 and rightValue == 4608 then
matches[#matches + 1] = addresses[index]
end
valueIndex = valueIndex + 2
end
end
return matches
end
local matchedAddresses = filterStructureMatches(searchAddresses)
if #matchedAddresses == 0 then
gg.alert("请检查是否进入游戏 可能是旧版检测 请使用旧版")
return
end
local candidateAddresses = {}
for index, address in ipairs(matchedAddresses) do
candidateAddresses[index] = address - 4
end
gg.alert("初始化完成 共找到" .. #candidateAddresses .. "条数据")
local function numberToChinese(number)
local words = { "一", "二", "三", "四", "五", "六", "七", "八", "九", "十" }
return words[number] or tostring(number)
end
local function readDwordValues(addresses)
local requests = {}
for _, address in ipairs(addresses) do
requests[#requests + 1] = { address = address, flags = gg.TYPE_DWORD }
end
local results = gg.getValues(requests) or {}
local values = {}
for index = 1, #addresses do
values[index] = results[index] and results[index].value
end
return values
end
local function validateChangedAddresses(addresses)
local requests = {}
for _, address in ipairs(addresses) do
local baseAddress = address + 4
requests[#requests + 1] = { address = baseAddress, flags = gg.TYPE_DWORD }
requests[#requests + 1] = { address = baseAddress + 72, flags = gg.TYPE_DWORD }
requests[#requests + 1] = { address = baseAddress - 84, flags = gg.TYPE_DWORD }
end
local values = gg.getValues(requests) or {}
local validated = {}
local valueIndex = 1
for _, address in ipairs(addresses) do
local firstValue = values[valueIndex] and values[valueIndex].value
local secondValue = values[valueIndex + 1] and values[valueIndex + 1].value
local thirdValue = values[valueIndex + 2] and values[valueIndex + 2].value
if firstValue == 4096 and secondValue == 4608 and thirdValue == 3584 then
validated[#validated + 1] = address + 4
end
valueIndex = valueIndex + 3
end
return validated
end
local function narrowChangedAddresses(label)
local remaining = {}
for index, address in ipairs(candidateAddresses) do
remaining[index] = address
end
local maxRounds = 8
for round = 1, maxRounds do
local input = gg.prompt({
label
.. " 第"
.. round
.. "轮(最多"
.. maxRounds
.. "轮) 当前共有"
.. #remaining
.. "个结果 输入等待秒数 点确定后马上去游戏里改变该物品的数量",
}, { "5" }, { "text" })
if not input then
return nil
end
local waitSeconds = tonumber(input[1]) or 5
local beforeValues = readDwordValues(remaining)
gg.toast(label .. " 等待中 请改变物品数量")
gg.sleep(waitSeconds * 1000)
local afterValues = readDwordValues(remaining)
local changed = {}
for index, address in ipairs(remaining) do
if afterValues[index] ~= beforeValues[index] then
changed[#changed + 1] = { address = address, value = afterValues[index] }
end
end
if #changed == 0 then
gg.alert(label .. " 第" .. round .. "轮未检测到变化 你并没有改变物品数量 请重试")
return nil
end
gg.sleep(1000)
local changedAddresses = {}
for index, item in ipairs(changed) do
changedAddresses[index] = item.address
end
local confirmedValues = readDwordValues(changedAddresses)
remaining = {}
for index, item in ipairs(changed) do
if confirmedValues[index] == item.value then
remaining[#remaining + 1] = item.address
end
end
if #remaining == 0 then
gg.alert(label .. " 第" .. round .. "轮获取失败 变化的全是干扰数据 请重试")
return nil
end
if #remaining <= 10 then
local validated = validateChangedAddresses(remaining)
if #validated == 0 then
gg.alert(label .. " 获取失败 数据校验未通过 请重试")
return nil
end
gg.alert(label .. "获取完成 共锁定" .. #validated .. "个结果 将全部显示供你选择")
return validated
end
if round == maxRounds then
gg.alert(
label
.. " 已达最大"
.. maxRounds
.. "轮 仍有"
.. #remaining
.. "个结果\n当前数值过多 无法更改"
)
return nil
end
gg.alert(
label
.. " 第"
.. round
.. "轮完成 还有"
.. #remaining
.. "个结果 数量过多 请再次改变数量继续筛选"
)
end
return nil
end
gg.alert(
'第一步 确定"原物品"\n原物品就是你想要修改数量的那个物品\n接下来请按提示去游戏里改变它的数量\n用掉一个或者扔掉一个都可以'
)
local sourceAddresses = narrowChangedAddresses("原物品")
if not sourceAddresses then
return
end
gg.alert(
"请把原物品恢复到正常状态\n比如扔掉的捡回来\n只要数量不为0就行\n5秒后自动继续"
)
gg.sleep(5000)
gg.alert(
'第二步 确定"目标数值"\n比如你想把原物品数量改成64\n就去找一个数量正好是64的物品\n接下来请按提示改变这个物品的数量'
)
local targetAddresses = narrowChangedAddresses("目标数值")
if not targetAddresses then
return
end
gg.alert(
"请把目标物品也恢复到正常状态\n扔掉的捡回来 保证数量不为0\n否则改出来的物品数量会是0\n5秒后自动继续"
)
gg.sleep(5000)
local remainingTargets = {}
for index, address in ipairs(targetAddresses) do
remainingTargets[index] = address
end
while #remainingTargets > 0 do
local targetAddress, targetIndex
if #remainingTargets == 1 then
targetAddress, targetIndex = remainingTargets[1], 1
else
local choices = {}
for index = 1, #remainingTargets do
choices[index] = "第" .. numberToChinese(index) .. "个目标数值"
end
choices[#choices + 1] = "退出"
local selected =
gg.choice(choices, nil, "共有" .. #remainingTargets .. "个目标数值 请选择一个进行更改")
if not selected or selected == #choices then
gg.clearResults()
return
end
targetAddress, targetIndex = remainingTargets[selected], selected
end
local targetValues = readDwordValues({ targetAddress - 4, targetAddress + 68, targetAddress - 88 })
local writes = {}
for _, sourceAddress in ipairs(sourceAddresses) do
writes[#writes + 1] = { address = sourceAddress - 4, value = targetValues[1], flags = gg.TYPE_DWORD }
writes[#writes + 1] = { address = sourceAddress + 68, value = targetValues[2], flags = gg.TYPE_DWORD }
writes[#writes + 1] = { address = sourceAddress - 88, value = targetValues[3], flags = gg.TYPE_DWORD }
end
gg.setValues(writes)
gg.processResume()
gg.alert(
"更改完成 给你5秒时间\n请去游戏内切换一下物品\n比如滑动一下背包 刷新查看效果"
)
gg.sleep(5000)
if
gg.choice(
{ "是", "否" },
nil,
"是否为你想要的目标数量?\n当前使用:第"
.. numberToChinese(targetIndex)
.. "个目标数值"
) == 1
then
gg.alert("修改完成 刷新变化一下就可以保存了")
gg.clearResults()
return
end
table.remove(remainingTargets, targetIndex)
if #remainingTargets == 0 then
gg.alert("没有剩余的目标数值了 修改结束")
gg.clearResults()
return
end
gg.alert("已排除该目标 剩余" .. #remainingTargets .. "个 请重新选择")
end
gg.clearResults()
end),
CAbutton('改物品ID',
function()
while true do
local choice = gg.choice({"改lD物品第1步","改物品lD第2步","退出"},nil,"选择步骤")
if choice == 1 then
gg.toast("此脚本由chatgpt开源 背包第一格改物品id")
gg.sleep(1000)
gg.toast("注意事项:1有黄框时不能改,不能切其他物品,会出错。2没改出物品之前,不能捡物品,不能丢东西,不能替换格子,否则黑存档。3我忘了还有就是只能改出百分之40的物品,防止被开源。")
gg.clearResults()
local ranges1 = gg.getRangesList()
if not ranges1 or #ranges1 == 0 then
gg.toast("无法获取内存区间列表")
os.exit()
end
local menu1 = {}
for _, r in ipairs(ranges1) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
menu1[#menu1 + 1] = {
start = 0,
['end'] = r['end']
}
end
end
if #menu1 < 6 then
gg.toast("当前进程类型 A ([anon:libc_malloc]) 可读写内存区间不足 9 个")
os.exit()
end
local startAddr1 = 0
local endAddr1 = menu1[7]['end']
local c1 = gg.SIGN_EQUAL
gg.clearResults()
ts = gg.alert('确定已丢弃第一格物品?','确定','取消')
if ts==1 then
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.toast("正在初始化,请耐心等待")
gg.searchNumber("0;125;193;193;125" , 4,false, c1, startAddr1, endAddr1)
gg.toast("给你10秒关闭gg页面,捡起物品点掉黄框")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
gg.searchNumber('10000000~999999999', 4, false, gg.SIGN_GREATER)
gg.toast("给你10秒关闭gg页面,丢弃第一格物品")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
gg.searchNumber("125" , 4,false,gg.SIGN_EQUAL,0,-1,0)
gg.toast("给你10秒关闭gg页面,捡起物品点掉黄框")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
gg.searchNumber('10000000~999999999', 4, false, gg.SIGN_GREATER)
gg.toast("给你10秒关闭gg页面,丢弃第一格物品")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
gg.searchNumber("125" , 4,false,gg.SIGN_EQUAL,0,-1,0)
gg.toast("给你10秒关闭gg页面,捡起物品点掉黄框")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
gg.searchNumber('10000000~999999999', 4, false, gg.SIGN_OR)
gg.toast("完成\n自动执行下一步")
gg.isVisible(false)
gg.sleep(10000)
gg.isVisible(true)
local N = gg.getResults(1,gg.SIGN_OR)
gg.addListItems(N)
end
local y=gg.choice({'改新物品','改旧物品','不改了'},nil,'改完丢捡保存,没确定点不改')
if y==3 then
gg.toast("操作取消")
elseif y==1 then
local listItems = gg.getListItems()
gg.loadResults(listItems)
local offset = -104
local results = gg.getResults(1)
if #results == 0 then
gg.toast("没有找到可修改的搜索结果")
return
end
for i = 1, #results do
if type(results[i].value) == "number" then
results[i].value = tostring(tonumber(results[i].value) + offset)
end
end
gg.setValues(results)
gg.toast(string.format("已修改 %d 个数值", #results, offset))
elseif y==2 then
local listItems = gg.getListItems() -- 获取保存列表中的所有条目
gg.loadResults(listItems)
local offset = 104
local results = gg.getResults(1)
if #results == 0 then
gg.toast("没有找到可修改的搜索结果")
return
end
for i = 1, #results do
if type(results[i].value) == "number" then
results[i].value = tostring(tonumber(results[i].value) + offset)
end
end
gg.setValues(results)
gg.toast(string.format("已修改 %d 个数值", #results, offset))
end
end
if choice == 2 then
local y=gg.choice({'改新物品','改旧物品','不改了'},nil,'改完丢捡保存,没确定点不改')
if y==3 then
gg.toast("操作取消")
elseif y==1 then
local listItems = gg.getListItems()
gg.loadResults(listItems)
local offset = -104
local results = gg.getResults(1)
if #results == 0 then
gg.toast("没有找到可修改的搜索结果")
return
end
for i = 1, #results do
if type(results[i].value) == "number" then
results[i].value = tostring(tonumber(results[i].value) + offset)
end
end
gg.setValues(results)
gg.toast(string.format("已修改 %d 个数值", #results, offset))
elseif y==2 then
local listItems = gg.getListItems()
gg.loadResults(listItems)
local offset = 104
local results = gg.getResults(1)
if #results == 0 then
gg.toast("没有找到可修改的搜索结果")
return
end
for i = 1, #results do
if type(results[i].value) == "number" then
results[i].value = tostring(tonumber(results[i].value) + offset)
end
end
gg.setValues(results)
gg.toast(string.format("已修改 %d 个数值", #results, offset))
end
end
if choice == 3 then
os.exit()
end
end
end),
CAtext("→猫魂功能←", "#005BFF", "13sp", true),
CAbutton('猫魂解密[可以改除战力以外的所有东西]',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.clearResults()
gg.setVisible(false)
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("1.7e11~1.8e12", gg.TYPE_DOUBLE)
local old = gg.getResults(gg.getResultsCount())
if #old == 0 then
gg.toast("搜索无结果")
return
end
local input = gg.prompt(
{"请输入变化量(+1 增加,-1 减少)"},
{"-1"},
{"text"}
)
if not input then
return
end
local delta = tonumber(input[1])
if not delta then
gg.toast("请输入有效数字")
return
end
gg.alert("请在5秒内变化加密数值")
gg.sleep(5000)
gg.searchNumber("1.7e11~1.8e12", gg.TYPE_DOUBLE)
local new = gg.getResults(gg.getResultsCount())
if #new == 0 then
gg.toast("搜索无结果")
return
end
local addrMap = {}
for i, v in ipairs(old) do
addrMap[v.address] = v.value
end
local keep = {}
for i, v in ipairs(new) do
local oldVal = addrMap[v.address]
if oldVal and (v.value - oldVal == delta) then
table.insert(keep, v)
end
end
gg.clearResults()
if #keep == 0 then
gg.toast("未找到变化量为 " .. delta .. " 的值")
return
else
gg.loadResults(keep)
gg.toast("已过滤,剩余: " .. #keep)
end
local r = keep
local addr, val = r[1].address, r[1].value
local input2 = gg.prompt(
{"请输入目前物品数量", "输入你想修改的数量"},
{"", "1314520"},
{"number", "number"}
)
if not input2 then
return
end
local cur = tonumber(input2[1])
local tar = tonumber(input2[2])
if not cur or not tar then
gg.toast("输入无效")
return
end
local offset = val - cur
local newVal = tar + offset
gg.setValues({
{address = addr, value = newVal, flags = gg.TYPE_DOUBLE}
})
gg.addListItems({
{address = addr, value = newVal, flags = gg.TYPE_DOUBLE, freeze = true}
})
gg.alert("解密完成\n请再减/增物品数量\n然后进入联机退出")
end),
CAswitch(
"改灵装数值",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
local input = gg.prompt(
{
"使用说明\n1. 先输入目前数值\n2. 再输入要改数值\n3. 点确定执行\n输入目前数值:",
"输入要改数值:"
},
{"", ""},
{"number", "number"}
)
if input == nil then
gg.toast("用户取消操作")
return
end
local searchValue = input[1]
local changeValue = input[2]
if searchValue == nil or searchValue == "" then
gg.toast("请输入目前数值")
return
end
if changeValue == nil or changeValue == "" then
changeValue = ""
end
local searchString = ";" .. searchValue .. "%"
local changeString = ";" .. changeValue .. "%"
gg.setVisible(false)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.toast("正在搜索" .. searchString)
gg.searchNumber(searchString, gg.TYPE_DWORD)
local resultCount = gg.getResultsCount()
if resultCount == 0 then
gg.toast("未找到数值" .. searchString)
return
end
gg.toast("找到 " .. resultCount .. " 个结果,准备修改为 " .. changeString)
local results = gg.getResults(resultCount)
for i = 1, #results do
results[i].value = changeString
end
gg.setValues(results)
gg.toast("🎉修改完成!已将 " .. resultCount .. " 个结果改为 " .. changeString)
end,
function()
end
),
CAbutton('改吃丹收益',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
function main()
while true do
local input = gg.prompt(
{"请输入当前吃丹收益数值:"},
{[1] = "0"},
{[1] = "number"}
)
if input == nil then
gg.toast("用户取消操作")
return
end
local searchValue = tonumber(input[1])
if searchValue == nil then
gg.alert("输入无效,请输入有效的数字!")
goto continue_loop
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(tostring(searchValue), gg.TYPE_DOUBLE)
local resultCount = gg.getResultsCount()
gg.toast("搜索完成,找到 " .. resultCount .. " 个结果")
if resultCount == 0 then
gg.alert("未搜索到任何数值,请检查输入是否正确!")
goto continue_loop
end
gg.toast("请在5秒内进行改善操作...")
for i = 5, 1, -1 do
gg.toast("请在 " .. i .. " 秒内进行改善操作...")
gg.sleep(1000)
end
local improveInput = gg.prompt(
{"请输入改善后的吃丹收益数值:"},
{[1] = tostring(searchValue)},
{[1] = "number"}
)
if improveInput == nil then
gg.toast("用户取消改善操作")
goto continue_loop
end
local improveValue = tonumber(improveInput[1])
if improveValue == nil then
gg.alert("输入无效,请输入有效的数字!")
goto continue_loop
end
gg.refineNumber(tostring(improveValue), gg.TYPE_DOUBLE)
local refineCount = gg.getResultsCount()
if refineCount == 0 then
gg.alert("改善后没有搜索到数值!请重新操作。")
goto continue_loop
end
gg.toast("改善完成,剩余 " .. refineCount .. " 个结果")
local modifyInput = gg.prompt(
{"请输入要修改的数值(范围 0 ~ 1e308):"},
{[1] = "999999999"},
{[1] = "number"}
)
if modifyInput == nil then
gg.toast("用户取消修改操作")
goto continue_loop
end
local modifyValue = tonumber(modifyInput[1])
if modifyValue == nil then
gg.alert("输入无效,请输入有效的数字!")
goto continue_loop
end
if modifyValue < 0 then
modifyValue = 0
elseif modifyValue > 1e308 then
modifyValue = 1e308
end
local results = gg.getResults(refineCount)
for i = 1, #results do
results[i].value = tostring(modifyValue)
results[i].freeze = true
end
gg.setValues(results)
gg.addListItems(results)
gg.toast("修改完成!数值已冻结为:" .. tostring(modifyValue))
local choice = gg.alert(
"修改成功!数值已冻结。\n是否再次进行吃丹收益搜索?",
"再升一次",
"退出脚本"
)
if choice == 2 then
gg.toast("脚本已退出")
break
end
::continue_loop::
end
end
main()
end),
CAbutton('改战力[准备神王丹]',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
local snpMap = {
[1] = "生命提升",
[2] = "攻击提升"
}
local snp = gg.choice({
"生命提升",
"攻击提升",
"退出"
}, nil, "选择神王丹你想更改的属性")
if not snp or snp == 3 then os.exit() end
local PPTV = snpMap[snp]
local snMap = {
[1] = "基础生命",
[2] = "破霸",
[3] = "生命加成",
[4] = "生命提升",
[5] = "生命升华",
[6] = "生命增幅",
[7] = "暴击",
[8] = "普攻伤害",
[9] = "真实伤害",
[10] = "掉落倍率",
[11] = "生命恢复",
[12] = "移速加成",
[13] = "基础攻击",
[14] = "霸体",
[15] = "攻击加成",
[16] = "攻击提升",
[17] = "攻击升华",
[18] = "攻击增幅",
[19] = "爆伤",
[20] = "技能伤害",
[21] = "最终伤害",
[22] = "吃丹收益",
[23] = "挂机收益",
[24] = "轮回次数"
}
local sn = gg.choice({
"基础生命","破霸","生命加成","生命提升","生命升华","生命增幅",
"暴击","普攻伤害","真实伤害","掉落倍率","生命恢复","移速加成",
"基础攻击","霸体","攻击加成","攻击提升","攻击升华","攻击增幅",
"爆伤","技能伤害","最终伤害","吃丹收益","挂机收益","轮回次数",
"退出"
}, nil, "请选择你要替换的属性")
if not sn or sn == 25 then
gg.alert("操作已取消")
return
end
local rateVa = snMap[sn]
local function isTripleFormat(n)
return tostring(n):match("^[0-9%.]+e%d+$") ~= nil
end
local rateStr
while true do
local snm = gg.choice({
"1000",
"10000",
"100000",
"1000000",
"10000000",
"自定义更改数量",
"退出"
}, nil, "请输入你要刷的数值\n1e3=1000,1e4=10000.....")
if not snm or snm == 7 then os.exit() end
if snm >= 1 and snm <= 5 then
rateStr = ({"1e3","1e4","1e5","1e6","1e7"})[snm]
break
else
local input = gg.prompt(
{"自定义输入[要求必须为1e3,1e6,的三格式]"},
{""},
{"text"}
)
if not input then return end
local val = input[1]
if isTripleFormat(val) then
rateStr = val
break
else
local fix = gg.choice(
{"仍然修改(可能无效)","重新输入"},
nil,
"检测到不是三格式,是否强制修改?"
)
if fix == 1 then
rateStr = val
break
end
end
end
end
gg.searchNumber(";"..PPTV.."+100", gg.TYPE_WORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local count = gg.getResultsCount()
if count == 0 then
gg.alert("无任何数据")
os.exit()
end
local results = gg.getResults(999)
local editValue = ";"..rateVa.."+"..rateStr
gg.editAll(editValue, gg.TYPE_WORD)
gg.alert("修改成功,共修改 "..count.." 条数据")
end),
CAbutton('商城0元购',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.toast("开始搜索")
local searchPrompt = gg.prompt({"请输入价格"},{"64800"},{"text"})
if not searchPrompt or not searchPrompt[1] then
gg.toast("已取消")
return
end
local searchName = searchPrompt[1]
if searchName == "" then
gg.toast("价格不能为空")
return
end
local searchStr = ";" .. searchName
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(searchStr, gg.TYPE_UTF_16LE)
local count = gg.getResultsCount()
gg.toast("找到 " .. count .. " 个 " .. searchStr)
if count == 0 then
gg.toast("未找到 " .. searchStr .. " 请确认名称正确或游戏已打开")
return
end
local results = gg.getResults(count)
gg.editAll("1", gg.TYPE_WORD)
gg.toast("修改完成 共 " .. count .. " 个值")
end),
CAbutton('过黑屋',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.searchNumber("259200", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.refineNumber("259200",gg.TYPE_DOUBLE)
local results = gg.getResults(999)
gg.editAll("0",gg.TYPE_DOUBLE)
gg.toast("修改成功,请点击解封")
end),
CAbutton('任务完成',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
local old = gg.prompt({"输入需要的消费金额/任务"}, {""}, {"number"})[1]
if not old then gg.toast("输入无效") return end
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
gg.toast("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
gg.toast("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.setVisible(false)
gg.clearResults()
gg.searchNumber(old, gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
if gg.getResultsCount() == 0 then gg.toast("无结果") return end
local new = "0"
local r = gg.getResults(3000)
if #r == 0 then gg.toast("无结果") return end
for i,v in ipairs(r) do v.value = new end
gg.setValues(r)
gg.toast("修改成功,请进入联机")
end),
CAbutton('改挂机收益',
function()
local ranges = gg.getRangesList()if not ranges or #ranges == 0 then gg.toast("区间不匹配")return end local validRanges = {}for _, r in ipairs(ranges) do if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then table.insert(validRanges, r)end end if #validRanges < 7 then gg.toast("区间不匹配")return end local searchStart = 0 local searchEnd = validRanges[7]['end'] gg.clearResults()gg.setVisible(false)
local choice = gg.choice({"0.1","0.02"},nil,"请选择当前挂机收益")
if choice == 1 then
local 楚新nb666=gg.prompt({"输你想刷的数值"}, {"9999"}, {"number"})[1]
if not 楚新nb666 then gg.toast("输入无效") return end
gg.searchNumber("0.001;0.1", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local count = gg.getResultsCount()
if count == 0 then
gg.toast("未找到结果")
return
end
gg.getResults(999)
gg.refineNumber("0.1", gg.TYPE_DOUBLE)
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 楚新nb666
v.freeze = true
end
gg.setValues(results)
gg.toast("修改完成\n共修改"..count.."个值")
end
if choice == 2 then
local 挂机 = '0.02'
local 自定义挂机收益 = gg.prompt({"请输入你要修改的挂机收益:"},{"9999"})
if not 自定义挂机收益 or not 自定义挂机收益 or not tonumber(自定义挂机收益[1]) then
gg.toast("输入无效")
return
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(挂机, gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.refineNumber(挂机, gg.TYPE_DOUBLE)
local results = gg.getResults(1000)
if results and #results > 0 then
gg.editAll(自定义挂机收益[1], gg.TYPE_DOUBLE)
gg.toast("修改成功,已修改为:" ..自定义挂机收益[1])
gg.clearResults()
else
gg.toast("无结果")
end
end
end),
CAtext("→钓魂功能←", "#FF0000", "13sp", true),
CAbutton('全钓法',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
while true do
gg.toast("请装上飞天无极钓")
gg.sleep(5000)
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("193", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
if gg.getResultsCount() == 0 then return end
gg.toast("请卸下飞天无极钓")
gg.sleep(6000)
gg.refineNumber("165", gg.TYPE_DWORD)
local count = gg.getResultsCount()
if count == 1 then
local results = gg.getResults(gg.getResultsCount())
if not results or #results == 0 then
gg.toast("无结果")
return
end
local baseAddress
for i = 1, #results do
local checkAddr = results[i].address - 0xC
if checkAddr >= searchStart and checkAddr <= searchEnd then
local v = gg.getValues({
{address = checkAddr, flags = gg.TYPE_DWORD}
})[1]
if v and v.value == 2 then
baseAddress = results[i].address
break
end
end
end
if not baseAddress then
gg.toast("未找到基础地址")
return
end
local list = {}
local startAddr = baseAddress - 0x24
for i = 0, 650 do
local addr = startAddr + i * 0x108
if addr >= searchStart and addr <= searchEnd then
local val = gg.getValues({
{address = addr, flags = gg.TYPE_DWORD}
})[1]
if val and (val.value == 193 or val.value == 165) then
table.insert(list, {
address = addr,
flags = gg.TYPE_DWORD,
value = 193
})
end
end
end
if #list > 0 then
gg.setValues(list)
gg.toast("修改成功\n修改了:" .. #list .. " 个值")
else
gg.toast("修改失败")
end
break
elseif count == 0 then
gg.toast("无结果")
return
end
end
end),
CAbutton(
"钓魂改钓法/角色等级[1万]",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
gg.alert("区间错误")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
gg.alert("区间错误")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.setVisible(false)
local ppp = gg.choice({"E[可保存]","D[不可保存]","退出"}, nil, "脚本功能")
local o = gg.TYPE_DOUBLE
local k = gg.TYPE_WORD
if ppp == 1 then
local inpi = gg.prompt({"输入当前数量"}, {""}, {"number"})
if not inpi then
gg.alert("已取消搜索")
return
end
local searchValue = tonumber(inpi[1])
if not searchValue then
gg.alert("请输入有效数字")
return
end
gg.searchNumber(searchValue, o, false, gg.SIGN_EQUAL, searchStart, searchEnd)
while true do
gg.alert("请在 5 秒内改变目标值")
gg.sleep(5000)
local count = gg.getResultsCount()
if count == 0 then
gg.alert("无任何结果")
return
end
local inp = gg.prompt({"再次输入数量"}, {""}, {"number"})
if not inp then
gg.alert("已取消搜索")
return
end
local newVal = tonumber(inp[1])
if not newVal then
gg.alert("请输入有效数字")
return
end
gg.refineNumber(newVal, o)
count = gg.getResultsCount()
if count <= 0 then
gg.alert("未找到匹配数值")
return
end
if count <= 3 then
local results = gg.getResults(count)
for i = 1, #results do
results[i].value = 10000
results[i].freeze = true
end
gg.setValues(results)
gg.addListItems(results)
gg.alert("修改成功,升一级退出后有效")
return
end
end
elseif ppp == 2 then
local input = gg.prompt({"请输入当前值"}, {""}, {"number"})
if not input then
gg.alert("操作取消")
return
end
local searchValue = tonumber(input[1]) * 2
if not searchValue then
gg.alert("输入无效")
return
end
gg.clearResults()
gg.searchNumber(searchValue, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
while true do
local count = gg.getResultsCount()
if count == 0 then
gg.alert("搜索无结果")
break
elseif count == 1 then
local result = gg.getResults(1)[1]
if result.value ~= 0 then
local baseAddr = result.address
local modifyList = {}
local offsets = {
{offset = 0x0, value = 20000},
{offset = -0x4, value = 20000},
{offset = -0x3C, value = 95837689},
{offset = -0x48, value = 95837677},
{offset = -0x90, value = 95837665}
}
for _, data in ipairs(offsets) do
table.insert(modifyList, {
address = baseAddr + data.offset,
value = data.value,
flags = gg.TYPE_DWORD
})
end
gg.setValues(modifyList)
gg.alert("修改成功!")
break
end
end
gg.alert("请在5秒内改变值")
gg.sleep(5000)
local newInput = gg.prompt({"请输入当前值"}, {""}, {"number"})
if not newInput then
gg.alert("操作取消")
break
end
local newVal = tonumber(newInput[1])
if not newVal then
gg.alert("输入无效")
break
end
gg.refineNumber(newVal * 2, gg.TYPE_DWORD)
end
elseif ppp == 3 then
os.exit()
end
end),
CAbutton('全鱼竿',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
while true do
gg.toast("请装备螺纹钢鱼竿")
gg.sleep(5000)
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("193", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
if gg.getResultsCount() == 0 then return end
gg.toast("请切换任意一个鱼竿")
gg.sleep(6000)
gg.refineNumber("165", gg.TYPE_DWORD)
local count = gg.getResultsCount()
if count == 1 then
local results = gg.getResults(gg.getResultsCount())
if not results or #results == 0 then
gg.toast("无结果")
return
end
local baseAddress
for i = 1, #results do
local checkAddr = results[i].address - 0xC
if checkAddr >= searchStart and checkAddr <= searchEnd then
local v = gg.getValues({
{address = checkAddr, flags = gg.TYPE_DWORD}
})[1]
if v and v.value == 2 then
baseAddress = results[i].address
break
end
end
end
if not baseAddress then
gg.toast("未找到基础地址")
return
end
local list = {}
local startAddr = baseAddress - 0x24
for i = 0, 190 do
local addr = startAddr + i * 0xE0
if addr >= searchStart and addr <= searchEnd then
local val = gg.getValues({
{address = addr, flags = gg.TYPE_DWORD}
})[1]
if val and (val.value == 193 or val.value == 165) then
table.insert(list, {
address = addr,
flags = gg.TYPE_DWORD,
value = 193
})
end
end
end
if #list > 0 then
gg.setValues(list)
gg.toast("修改成功\n修改了:" .. #list .. " 个值")
else
gg.toast("修改失败")
end
break
elseif count == 0 then
gg.toast("无结果")
return
end
end
end),
CAbutton('改道具',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("无法获取内存区间列表")
os.exit()
end
local menu = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(menu, {
['end'] = r['end']
})
end
end
if #menu < 7 then
toast.white("当前进程 [anon:libc_malloc] 可读写内存区间不足 7 个")
os.exit()
end
local endAddr = menu[7]['end']
gg.setVisible(false)
gg.clearResults()
local am = gg.prompt({"输入您的道具数据:"}, {"100"})
if not am then
toast.white("操作已取消")
os.exit()
end
gg.searchNumber(am[1], gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, 0, endAddr)
toast.white("提示","5秒内使用一次道具")
gg.sleep(5000)
while true do
local a = gg.prompt({"再次输入您的道具数据:"}, {"101"})
if not a then
gg.alert("操作已取消")
os.exit()
end
gg.refineNumber(a[1], gg.TYPE_DOUBLE)
local count = gg.getResultsCount()
if count == 0 then
gg.alert("搜索无结果")
break
elseif count == 1 then
break
end
toast.white("提示","10秒内使用一次祖传饵料")
gg.sleep(10000)
end
local tuok = gg.prompt({"修改为:"}, {"1e20"}, {"text"})
if not tuok then
toast.white("操作已取消")
os.exit()
end
local newValue = tonumber(tuok[1])
if not newValue then
toast.white("请输入有效的数字")
os.exit()
end
local results = gg.getResults(1)
if #results == 0 then
toast.white("没有找到匹配的地址")
os.exit()
end
local baseAddress = results[1].address
local savedList = {}
local count = 24
local step = -0x2C
for i = 0, count - 1 do
local addr = baseAddress + i * step
table.insert(savedList, {
address = addr,
value = newValue,
flags = gg.TYPE_DOUBLE
})
end
if #savedList > 0 then
gg.setValues(savedList)
for _, v in ipairs(savedList) do
v.freeze = true
end
gg.addListItems(savedList)
toast.white("成功修改 " .. #savedList .. " 个数值为 " .. newValue .. "\n使用后重新进入生效")
else
gg.alert("没有找到可修改的有效偏移地址")
end
end),
CAbutton('全人物', -- ✅ 加上括号
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
gg.alert("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
gg.alert("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.alert('开始查找值,请稍后继续操作')
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("2;8;68000~128880;193;165;1741;4;::", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.refineNumber("165", gg.TYPE_DWORD)
local ie = gg.getResultsCount()
if gg.getResultsCount() == 0 then gg.alert("无结果") return end
gg.getResults(6000)
gg.editAll('193', gg.TYPE_DWORD)
gg.alert("修改成功\n修改了"..ie.."个值")
end), -- ✅ 用 end) 闭合,然后加逗号
CAbutton('全角色满级', -- ✅ 修正
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.alert("要求必须为0级,才能改成功")
local you = gg.prompt({"输入钓友等级"}, {""}, {"number"})
if not you or not you[1] then return end
gg.searchNumber(you[1], gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
if gg.getResultsCount() == 0 then return gg.alert("失败无结果") end
while true do
gg.alert("请升级")
gg.sleep(5000)
local kong = gg.prompt({"输入现在等级"}, {""}, {"number"})
if not kong or not kong[1] then return end
gg.refineNumber(kong[1], gg.TYPE_DOUBLE)
local count = gg.getResultsCount()
if count == 1 then
local addr = gg.getResults(1)[1].address
gg.clearResults()
gg.searchNumber("9.73e-321;0", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL,
addr - 40000, addr + 40000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.sleep(2000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.sleep(2000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.getResults(8000)
local ioy = gg.prompt({"一键修改为:"}, {""}, {"number"})
if not ioy or not ioy[1] then return end
gg.editAll(ioy[1], gg.TYPE_DOUBLE)
gg.alert("成功,请升级\n概率闪退,请多改几次")
break
elseif count == 0 then
gg.alert("失败")
return
end
end
end),
CAbutton('开发者工具',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.searchNumber(12664161, gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, 0, searchStart, searchEnd)
gg.sleep(500)
local results = gg.getResults(100)
if #results <= 0 then
gg.alert("")
return
end
local modifyInput = gg.prompt({'输入自己的ID'}, {9999}, {'number'})
if not modifyInput or not modifyInput[1] then return end
local modify = tonumber(modifyInput[1])
for _,v in ipairs(results) do
v.value = modify
end
gg.setValues(results)
gg.alert("等7秒全部修改")
gg.sleep(7000)
gg.alert("进交易出来")
end),
CAbutton('全坐骑',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
table.insert(rwMalloc, {['end'] = r['end']})
end
end
if #rwMalloc < 9 then
gg.toast("内存不足,请确认已选择进程")
return
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
local searchRange = rwMalloc[9]['end']
local searchSteps = {
{action = "配置拖拉机", num = 193, type = "search"},
{action = "取消配置", num = 165, type = "refine"},
{action = "配置拖拉机", num = 193, type = "refine"},
{action = "取消配置", num = 165, type = "refine"}
}
for i, step in ipairs(searchSteps) do
gg.toast(step.action)
gg.sleep(5000)
if step.type == "search" then
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(tostring(step.num), 4, false, gg.SIGN_EQUAL, 0,searchRange)
else
gg.refineNumber(tostring(step.num), 4, false, gg.SIGN_EQUAL, 0, searchRange)
end
local count = gg.getResultsCount()
if count == 0 then
gg.toast("未找到数值!")
return
end
gg.toast("找到 "..count.." 个结果")
end
local results = gg.getResults(10000)
if #results == 0 then
gg.toast("最终搜索结果为空!")
return
end
local baseAddress
for i = 1, #results do
local readResult = gg.getValues({{address = results[i].address - 0xC, flags = 4}})
if readResult[1].value == 6 then
baseAddress = results[i].address
break
end
end
if not baseAddress then
gg.toast("未找到符合条件的基础地址")
return
end
local modifyList = {}
local startAddr = baseAddress - 0x24
for i = 0, 60 do
local currAddr = startAddr + i * 0x24
local readResult = gg.getValues({{address = currAddr, flags = 4}})
local val = readResult[1].value
if val == 193 or val == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
if #modifyList > 0 then
gg.setValues(modifyList)
gg.toast("修改成功")
else
gg.toast("未找到需要修改的数值")
end
end),
CAtext("钓鱼纪元", 0xffff0000),
CAbutton("通用秒杀[钓魂也能用]",
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
table.insert(rwMalloc, {['end'] = r['end']})
end
end
if #rwMalloc < 9 then
gg.toast("内存不足,请确认已选择进程")
return
end
gg.alert("开始搜索中 请耐心等待")
gg.setRanges(gg.REGION_ANONYMOUS)
local a=gg.searchNumber
local b=gg.getResults
local c=gg.getValues
local d=gg.getResultsCount
local e=gg.refineNumber
local k=gg.TYPE_DWORD
gg.clearResults()
a("2;4096;2560",k)
e("2",k)
local m=d()
local n,o,p,q,r,s=0,0,0,0,0,0
if m>0 then
local t=b(m)
local u={}
local v=0
for w=1,m do
local x=t[w].address
v=v+1 u[v]={address=x+4,flags=k}
v=v+1 u[v]={address=x-0x38,flags=k}
v=v+1 u[v]={address=x-0x44,flags=k}
v=v+1 u[v]={address=x-0x8C,flags=k}
v=v+1 u[v]={address=x-0x3C,flags=k}
v=v+1 u[v]={address=x-0x48,flags=k}
v=v+1 u[v]={address=x-0x90,flags=k}
v=v+1 u[v]={address=x-0x40,flags=k}
v=v+1 u[v]={address=x-0x4C,flags=k}
v=v+1 u[v]={address=x-0x94,flags=k}
end
local y=c(u)
local z=1
for w=1,m do
if y[z].value==4096 then
local A=y[z+1].value
local B=y[z+2].value
local C=y[z+3].value
if A>=1000 and A<=9999 and B>=1000 and B<=9999 and C>=1000 and C<=9999 then
n=y[z+4].value
o=y[z+5].value
p=y[z+6].value
q=y[z+7].value
r=y[z+8].value
s=y[z+9].value
break
end
end
z=z+10
end
end
gg.clearResults()
local g=gg.alert
local h=gg.prompt
local i=gg.choice
local j=gg.sleep
local f=gg.setValues
local l=100000
gg.setRanges(gg.REGION_ANONYMOUS)
local D=h({"请输入伤害"},nil,{"number"})
if not D then return gg.setVisible(true) end
local E=tonumber(D[1])
if not E then g("失败") return gg.setVisible(true) end
local F=E*2
gg.clearResults()
a(F..";4096",k)
e(F,k)
local G=d()
if G<=0 then g("失败") gg.setVisible(true) return end
local H=b(G)
local I={}
local J=0
local K=math.min
for L=1,G,l do
local M=K(L+l-1,G)
for N=L,M do
if H[N].value%2==0 then
J=J+1
I[J]=H[N].address
end
end
end
if J==0 then g("失败") gg.setVisible(true) return end
local O={}
local P=0
for Q=1,J do
local R=I[Q]
P=P+1 O[P]={address=R-0x38,flags=k}
P=P+1 O[P]={address=R-0x44,flags=k}
P=P+1 O[P]={address=R-0x8C,flags=k}
end
local S=c(O)
local T={}
local U=0
local V=1
for Q=1,J do
local W=S[V].value
local X=S[V+1].value
local Y=S[V+2].value
if W>=1000 and W<=9999 and X>=1000 and X<=9999 and Y>=1000 and Y<=9999 then
U=U+1
T[U]=I[Q]
end
V=V+3
end
if U==0 then g("失败") gg.setVisible(true) return end
local save={}
local Z={}
local _=0
for a0=1,U do
local a1=T[a0]
local a2={address=a1-4,flags=k}
local a3={address=a1,flags=k}
local a4={address=a1-0x3C,flags=k}
local a5={address=a1-0x48,flags=k}
local a6={address=a1-0x90,flags=k}
local a7={address=a1-0x40,flags=k}
local a8={address=a1-0x4C,flags=k}
local a9={address=a1-0x94,flags=k}
local b0=c({a2,a3,a4,a5,a6,a7,a8,a9})
save[a1-4]=b0[1].value
save[a1]=b0[2].value
save[a1-0x3C]=b0[3].value
save[a1-0x48]=b0[4].value
save[a1-0x90]=b0[5].value
save[a1-0x40]=b0[6].value
save[a1-0x4C]=b0[7].value
save[a1-0x94]=b0[8].value
_=_+1 Z[_]={address=a1-4,flags=k,value=1000}
_=_+1 Z[_]={address=a1,flags=k,value=1000}
_=_+1 Z[_]={address=a1-0x3C,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x48,flags=k,value=-1787476496}
_=_+1 Z[_]={address=a1-0x90,flags=k,value=-1798011921116}
end
local b1={}
local b2=0
for b3=1,#Z do
b2=b2+1 b1[b2]=Z[b3]
if b2>=5000 then f(b1) b1={} b2=0 end
end
if b2>0 then f(b1) end
gg.clearResults()
gg.setVisible(false)
gg.alert("开启成功,请查看鱼竿伤害数值")
end, 0xff0077ff),
CAbutton('全钓友',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then return end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then return end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
local you = gg.prompt({"输入钓友等级"}, {""}, {"number"})
if not you or not you[1] then return end
gg.searchNumber(you[1], gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
if gg.getResultsCount() == 0 then return gg.alert("失败无结果") end
while true do
gg.alert("请升级")
gg.sleep(5000)
local kong = gg.prompt({"输入现在等级"}, {""}, {"number"})
if not kong or not kong[1] then return end
gg.refineNumber(kong[1], gg.TYPE_DOUBLE)
local count = gg.getResultsCount()
if count == 1 then
local addr = gg.getResults(1)[1].address
gg.clearResults()
gg.searchNumber("9.73e-321;0", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL,
addr - 800000, addr + 800000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.sleep(2000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.getResults(8000)
local ioy = gg.prompt({"一键修改为:"}, {""}, {"number"})
if not ioy or not ioy[1] then return end
gg.editAll(ioy[1], gg.TYPE_DOUBLE)
gg.alert("成功,请升级")
break
elseif count == 0 then
gg.alert("失败")
return
end
end
end),
CAbutton('商店刷金币',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("1999", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local res1 = gg.getResults(999)
if not res1 or #res1 == 0 then
toast.white("未找到数据")
return
end
for _, v in ipairs(res1) do
v.value = 0
end
gg.setValues(res1)
toast.white("零元购成功\n执行修改数量")
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("250000", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local res2 = gg.getResults(100)
if not res2 or #res2 == 0 then
toast.white("未找到匹配数据")
return
end
local modifyInput = gg.prompt({"输入你要刷的金币数量"}, {"999999"}, {"number"})
if not modifyInput or not modifyInput[1] then return end
local newID = tonumber(modifyInput[1])
if not newID then
toast.white("输入无效")
return
end
for _, v in ipairs(res2) do
v.value = newID
end
gg.setValues(res2)
toast.white("修改完成\n请到商点购买250000金币那个")
end),
CAbutton(
"纪元全钓法",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.setVisible(false)
local input = gg.prompt({"请输入当前钓法等级"}, {""}, {"number"})
if not input then
toast.white("输入无效")
return
end
local searchValue = tonumber(input[1])
if not searchValue then
toast.white("输入无效")
return
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(searchValue, gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
while true do
toast.white("请升级")
gg.sleep(5000)
if gg.getResultsCount() == 0 then
toast.white("失败无结果")
return
end
local kong = gg.prompt({"输入现在等级"}, {""}, {"number"})
if not kong or not kong[1] then return end
gg.refineNumber(kong[1], gg.TYPE_DOUBLE)
local count = gg.getResultsCount()
if count == 1 then
local addr = gg.getResults(1)[1].address
gg.clearResults()
gg.searchNumber("9.73e-321;0", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, addr - 100000, addr + 100000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.sleep(2000)
gg.refineNumber("0", gg.TYPE_DOUBLE)
gg.getResults(8000)
local cou = gg.getResultsCount()
local ioy = gg.prompt({"一键修改为:"}, {"50"}, {"number"})
if not ioy or not ioy[1] then return end
gg.editAll(ioy[1], gg.TYPE_DOUBLE)
toast.white("请升级\n后重进游戏\n共修改"..cou.."个值")
break
elseif count == 0 then
toast.white("失败")
return
end
end
end),
CAtext("→修猫功能←", 0xffff0000),
CAbutton('获取全皮肤',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
table.insert(rwMalloc, {['end'] = r['end']})
end
end
if #rwMalloc < 9 then
gg.toast("内存不足,请确认已选择进程")
return
end
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
toast.white("必须有M416猫灵魔法师")
gg.searchNumber('332', 4)
local results = gg.getResults(10000)
if #results == 0 then
toast.white("无结果")
return
end
local baseAddress = nil
for i = 1, #results do
local originalAddr = results[i].address
local checkAddr1 = originalAddr - 0x28
local checkAddr2 = originalAddr + 0xA4
local checkAddr3 = originalAddr + 0xC
local checkAddr4 = originalAddr - 0x4
local readItem1 = {address = checkAddr1, flags = 4, value = 0}
local readItem2 = {address = checkAddr2, flags = 4, value = 0}
local readItem3 = {address = checkAddr3, flags = 4, value = 0}
local readItem4 = {address = checkAddr4, flags = 4, value = 0}
local readResult1 = gg.getValues({readItem1})
local readResult2 = gg.getValues({readItem2})
local readResult3 = gg.getValues({readItem3})
local readResult4 = gg.getValues({readItem4})
local val1 = readResult1[1].value
local val2 = readResult2[1].value
local val3 = readResult3[1].value
local val4 = readResult4[1].value
if val1 == 330 and val2 == 193 and val3 == 193 and val4 == 0 then
baseAddress = originalAddr
break
end
end
if not baseAddress then
toast.white("失败")
return
end
local modifyList = {}
local offsetNeg24Addr = baseAddress + 0xC
for i = 0, 200 do
local currAddr = offsetNeg24Addr + i * -0x9C
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
for i = 0, 50 do
local currAddr = offsetNeg24Addr + i * 0x9C
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
if #modifyList > 0 then
gg.setValues(modifyList)
local saveList = {}
for i, item in ipairs(modifyList) do
item.name = string.format("修改项_%d=0x%X", i, item.value)
item.freeze = false
saveList[i] = item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
toast.white("修改成功")
else
toast.white("无结果")
end
end),
CAbutton('获取全枪皮',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
-- 收集符合条件的区间
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
rwMalloc[#rwMalloc + 1] = { start = 0, ['end'] = r['end'] }
end
end
-- 检查区间数量
if #rwMalloc < 6 then
gg.alert('rw-[anon:libc_malloc] 区间不足 6 个')
return
end
if #rwMalloc < 9 then
gg.alert('rw-[anon:libc_malloc] 区间不足 9 个,无法搜索')
return
end
local MAX_EDIT = 20000
local revert = nil
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
-- 使用安全的方式获取要搜索的结束地址
local searchEndAddr = 0
if rwMalloc[9] and rwMalloc[9]['end'] then
searchEndAddr = rwMalloc[9]['end']
else
gg.alert('无法获取有效的搜索结束地址')
return
end
-- 搜索数值760
gg.searchNumber('760', 4, false, gg.SIGN_EQUAL, 0, searchEndAddr)
-- 获取结果并进行安全检查
revert = gg.getResults(MAX_EDIT)
local results = gg.getResults(10000)
if not results or #results == 0 then
gg.alert('未找到匹配的数值760')
return
end
local baseAddress = nil
local found = false
-- 遍历结果查找符合条件的基地址
for i = 1, math.min(#results, 1000) do
local originalAddr = results[i].address
-- 安全检查:确保地址有效
if not originalAddr or originalAddr == 0 then
goto continue
end
local checkAddr1 = originalAddr - 0x28
local checkAddr2 = originalAddr + 0x9C
local checkAddr3 = originalAddr + 0xC4
local checkAddr4 = originalAddr - 0x4
-- 构建读取请求
local readItems = {
{ address = checkAddr1, flags = 4, value = 0 },
{ address = checkAddr2, flags = 4, value = 0 },
{ address = checkAddr3, flags = 4, value = 0 },
{ address = checkAddr4, flags = 4, value = 0 }
}
-- 批量读取,提高效率
local readResults = gg.getValues(readItems)
if readResults and #readResults == 4 then
local val1 = readResults[1].value
local val2 = readResults[2].value
local val3 = readResults[3].value
local val4 = readResults[4].value
if val1 == 758 and val2 == 193 and val3 == 165 and val4 == 0 then
baseAddress = originalAddr
found = true
break
end
end
::continue::
end
if not found or not baseAddress then
gg.alert('未找到符合条件的基地址')
return
end
gg.toast('找到基地址: 0x' .. string.format('%X', baseAddress))
local modifyList = {}
local offsetNeg24Addr = baseAddress + 0xC
-- 向上搜索
for i = 0, 600 do
local currAddr = offsetNeg24Addr + i * -0x94
-- 安全检查
if currAddr > 0 then
local readItem = { address = currAddr, flags = 4, value = 0 }
local readResult = gg.getValues({ readItem })
if readResult and #readResult > 0 then
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {
address = currAddr,
flags = 4,
value = 193
})
end
end
end
end
-- 向下搜索
for i = 0, 600 do
local currAddr = offsetNeg24Addr + i * 0x94
-- 安全检查
if currAddr > 0 then
local readItem = { address = currAddr, flags = 4, value = 0 }
local readResult = gg.getValues({ readItem })
if readResult and #readResult > 0 then
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {
address = currAddr,
flags = 4,
value = 193
})
end
end
end
end
-- 检查是否有需要修改的项
if #modifyList == 0 then
gg.alert('未找到需要修改的项')
return
end
-- 批量修改
gg.setValues(modifyList)
gg.toast('成功修改 ' .. #modifyList .. ' 个值')
-- 保存到列表
local saveList = {}
for i, item in ipairs(modifyList) do
saveList[i] = {
address = item.address,
flags = 4,
value = 193,
name = string.format("修改项_%d=0x%X", i, item.address),
freeze = false
}
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert('操作完成!共修改了 ' .. #modifyList .. ' 个值')
end),
CAbutton('快手之刃',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
gg.searchNumber("45286", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local res1 = gg.getResults(999)
if not res1 or #res1 == 0 then
toast.white("未找到数据")
return
end
for _, v in ipairs(res1) do
v.value = 9178
end
gg.setValues(res1)
gg.clearResults()
gg.searchNumber("31458519", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
local res2 = gg.getResults(100)
if not res2 or #res2 == 0 then
toast.white("未找到匹配数据,ID可能不正确")
return
end
local modifyInput = gg.prompt({"输入自己的ID"}, {"1000"}, {"number"})
if not modifyInput or not modifyInput[1] then return end
local newID = tonumber(modifyInput[1])
if not newID then
toast.white("输入的ID无效")
return
end
for _, v in ipairs(res2) do
v.value = newID
end
gg.setValues(res2)
toast.white("请进入联机,兑换码:9178 已复制")
gg.copyText(9178)
end),
CAbutton('刷物品',
function()
F = gg.alert("准备物品肾上腺素\n", "我已准备好", "我还没准备好", "查看物品名称")
if F ~= 1 and F ~= 2 then
elseif F == 1 then
local DM = [[
#define 科技信标 1213
#define 终极科技神剑 1212
#define 终极科技棱镜 1211
#define 科技法杖 1210
#define 科技鼻嘎7级甲 1209
#define 科技鼻嘎7级头 1208
#define 科技币 1207
#define 黄金狗牌 1206
#define sans权杖 1205
#define 小五s12k 1204
#define 裁决圣锤 1203
#define 超级氪金仙器 1202
#define 聚宝金蟾7甲 1201
#define 聚宝金蟾7头 1200
#define 日耀链锯 1199
#define 窟窿死神镰刀 1198
#define 耀阳裂魂残剑 1197
#define 仙品金龙之玉 1196
#define 轮回AKM 1195
#define 裁决者冰魂 1194
#define 极品仙器 1193
#define 极品仙品大菠萝 1192
#define 仙品大菠萝 1191
#define 水仙器 1190
#define 金仙器 1189
#define 木仙器 1188
#define 火仙器 1187
#define 土仙器 1186
#define 轮回氪金之刃 1185
#define 神魂之刃 1184
#define 修仙之剑 1183
#define 鬼村妖刀 1182
#define 噬神陨灭权杖 1181
#define 终极缝合战刃 1180
#define 审判之刃 1179
#define 炎魔之刃 1178
#define 幻想之刃 1177
#define 泰坦轩辕剑 1176
#define 挂机之刃 1175
#define 未知之刃 1174
#define 超级炎葬 1173
#define 超级红刃 1172
#define 炮管 1171
#define 金瑞斩马刀 1170
#define 氪金概念之刃 1169
#define 封灵战锤 1168
#define 金马加特林 1167
#define 元旦之刃 1166
#define 跨年神器 1165
#define 2025最后的神器 1164
#define 圣诞之刃 1163
#define 圣诞超级雪铲 1162
#define 圣诞超级神枪 1161
#define 圣诞糖果炮 1160
#define 圣诞棒棒糖 1159
#define 圣诞币 1158
#define 圣诞撬棍 1157
#define 圣诞超级氪金拐杖 1156
#define 圣诞快手之刃 1155
#define 圣诞鼻嘎-7级甲 1154
#define 圣诞鼻嘎-7级头 1153
#define 基岩信标 1152
#define 混沌之刃 1151
#define 氪金神斧 1150
#define 基岩重锤 1149
#define 管理员之刃 1148
#define 基岩鼻嘎-7级甲 1147
#define 基岩鼻嘎-7级头 1146
#define 基岩剑 1145
#define 基眼晶石 1144
#define 黑洞光刃 1143
#define 璀璨弓 1142
#define 究极群星长矛 1141
#define 无尽深渊之刃 1140
#define 星河战镰碎刃 1139
#define 星河氪金神剑 1138
#define 星河快手之刃 1137
#define 璀璨星河之刃 1136
#define 星河龙狙 1135
#define 星河鼻嘎-七级甲 1134
#define 星河鼻嘎-七级头 1133
#define 星河水晶 1132
#define 星河币 1131
#define 超级信标 1130
#define 究极群星重锤 1129
#define 双持星河之刃 1128
#define 终极艾德曼合金 1127
#define 星河之刃 1126
#define 末影重锤 1125
#define 火龙弩 1124
#define 凋零修斯剑 1123
#define 地雷发射器 1122
#define 概念之刃 1121
#define 末影之刃 1120
#define 末影珍珠 1119
#define 龙之太刀 1118
#define 颗秒若无 1117
#define 星辉之刃 1116
#define 37M巨型黄金剑 1115
#define 星辉死神之镰 1114
#define 超级氪金神器 1113
#define 战神之刃觉醒 1112
#define 终极合金重锤 1111
#define 黄金螺纹钢 1110
#define 黄金神坠 1109
#define 黄金双截棍 1108
#define 懒人神器 1107
#define 金中剑 1106
#define 鼠标 1105
#define 黄金权杖 1104
#define 黄金魔刀千刃 1103
#define 平衡之刃 1102
#define 就是鼠鼠护甲 1101
#define 发射器权杖 1100
#define 黄金火麒麟 1099
#define 黄金 1098
#define 黄金之镰 1097
#define 黄金黑卡 1096
#define 炫彩战神之刃 1095
#define 巅峰之斧 1094
#define 黄金筷子 1093
#define 巅峰火焰刀 1092
#define 最终之剑 1091
#define 鼻嘎之刃 1090
#define 传说之剑 1089
#define 350万币x100 1088
#define 350万金库黑卡 1087
#define 快手之刃 1086
#define 氪金萝莉 1085
#define 黄金拖鞋 1084
#define 巅峰神器 1083
#define 钻石鼻嘎7背包 1082
#define 完美之斧 1081
#define 创世之刃 1080
#define 黄金蝴蝶刀 1079
#define 苏尔南钻火焰刀 1078
#define 黄金苏尔南钻宝箱 1077
#define 黄金苏尔南钻.暗潮 1076
#define 黄金苏尔南钻 1075
#define 始祖恐爪斧 1074
#define 终极黄金电锯 1073
#define 炎葬 1072
#define 雷电霸王龙枪 1071
#define 天顶剑 1070
#define 未来手炮 1069
#define 黄金战镰碎刃 1068
#define 炫彩恐龙蛋 1067
#define 黄金恐龙蛋 1066
#define 恐龙蛋 1065
#define 风神翼龙神器 1064
#define 月刃 1063
#define 苍龙神器 1062
#define 无底漩涡 1061
#define 龙骨神器 1060
#define 霸王龙神器 1059
#define 侏罗纪隐藏神器 1058
#define 战镰碎刃 1057
#define 安魂曲 1056
#define 黄金极恶利爪 1055
#define 黄金龙狙 1054
#define 始祖头颅 1053
#define 始祖喷火器 1052
#define 概念神大表哥 1051
#define 风琳 1050
#define 艾伦神器 1049
#define 概念神小表弟 1048
#define 钻石鼻嘎7甲 1047
#define 钻石火焰刀 1046
#define 周年隐藏神器 1045
#define 一周年神器 1044
#define 一周年AUG 1043
#define 钻石鼻嘎7头 1042
#define 一周年筷子 1041
#define 地铁一周年蛋糕 1040
#define 一周年币X100 1039
#define 一周年七级背包 1038
#define 一周年七级甲 1037
#define 一周年七级头 1036
#define 战锤巨人武器 1035
#define 巨人咆哮 1034
#define 泰坦巨锤 1033
#define 巨人核心 1032
#define 艾伦的头颅 1031
#define 巨人身 1030
#define 巨人手 1029
#define 巨人腿 1028
#define 艾伦变身器 1027
#define 爆裂神弓 1026
#define 金鼠王 1025
#define 终极重锤 1024
#define 黄金鼻嘎-七级头 1023
#define 七夕黄金玫瑰 1022
#define 七夕玫瑰 1021
#define 黄金火焰刀 1020
#define 黄金鼻嘎-七级甲 1019
#define 黄金鼻嘎-七级背包 1018
#define 嗜血弗拉迪尾刺 1017
#define 风火轮 1016
#define 月光之镰 1015
#define 玉虚宫神剑 1014
#define 终极火尖枪 1013
#define 加特林神枪 1012
#define 镇海神针 1011
#define 寰宇支配之剑 1010
#define 桃木杖 1009
#define 氪金神器 1008
#define 血腥屠刀 1007
#define 诛仙剑 1006
#define 九转仙丹(近伤) 1005
#define 九转仙丹(枪伤) 1004
#define 破军仙丹(近速) 1003
#define 神枪仙丹(枪速) 1002
#define 神行仙丹(疾跑) 1001
#define 遮天翼 1000
#define 魔玩 999
#define 灵珠 998
#define 虚空拳套 997
#define 莲花坐骑 996
#define 焚天大剑 995
#define 龙鳞甲 994
#define 一念永恒 993
#define 黑洞发生器 992
#define 赤焰龙息炮 991
#define 星空弗拉迪尾刺 990
#define 护甲维修包 989
#define 影魔-X 988
#define 异能瓶 987
#define 聚能步枪 986
#define M#define MG36-玄铁 985
#define 银河爪 984
#define 变卖物宇宙之剑 983
#define 地铁币 982
#define 地铁币发射器 981
#define 魔刀千刃终极 980
#define 柒轩 979
#define 白鹤矿 978
#define 白鹤弓 977
#define 末影殺魂镰 976
#define 星鲲战斧 975
#define 白金之星 974
#define 紫绣之剑 973
#define 爆炸星空火焰刀 972
#define 繁星钻 971
#define 繁星加特林 970
#define 落光 969
#define 北极星坐骑 968
#define 千金刀·凤凰猎鹰 967
#define 300万小鼻嘎召唤器 966
#define 300万亿万勾王甲 965
#define 吞天魔刀 964
#define 300万蛋糕 963
#define 300万奖杯 962
#define 300万庆典筷子 961
#define 300万鼻嘎锤 960
#define 100万庆典积分 959
#define 10万庆典积分 958
#define 5万庆典积分 957
#define 1万庆典积分 956
#define 1000庆典积分 955
#define 变异绿色尾刺 954
#define 万古绝响·破晓 953
#define 冰刃M24 952
#define 惩戒者雷鸣 951
#define 长枪·梁清 950
#define 100万金券 949
#define 10万金券 948
#define 1万金券 947
#define 1000金券 946
#define 100金券 945
#define 10金券 944
#define 1金券 943
#define 五指拳心剑 942
#define 改造利爪 941
#define 虚无之刃 940
#define 弗拉迪之泪 939
#define 强袭榴弹炮 938
#define 暗影战斧·罗尔 937
#define 变异黄金尾刺 936
#define 弗拉迪尾刺 935
#define 苏尔南·暗潮 934
#define 少羽牛逼 933
#define 枯竭的紫矿晶核 932
#define 狼牙项链 931
#define 神经连接器 930
#define 狼牙戒指 929
#define 液压动力钳 928
#define 铁手义肢 927
#define 紫矿凝胶 926
#define 突变血清 925
#define 加工钻头 924
#define 因瓦合金 923
#define 铁爪徽记 922
#define 怪兽结晶 921
#define 破碎的怪兽核心 920
#define 群狼宝冠 919
#define 苏尔南宝箱 918
#define 苏尔南钻石 917
#define 蓝豆手指 916
#define 星空陨灭 915
#define 钻石剑 914
#define GG神剑 913
#define 黄金剑 912
#define 恐惧之刃 911
#define 下界合金剑 910
#define 7.62子弹卓越 909
#define 5.56子弹卓越 908
#define 魔刀万刃 907
#define 白虎匕 906
#define 臭猫的维克托 905
#define 黄金加特林 904
#define 脉冲加特林 903
#define 天使之刃 902
#define 相位之刃 901
#define 影烬·永劫无终 900
#define 烬羽灼天 899
#define 炽芒蝶刃 898
#define 骸骨镰刀 897
#define 混沌战斧 896
#define 诸天庆云 895
#define 三宝玉如意 894
#define 战神水泥 893
#define 黄金棒棒糖 892
#define 香菇肥牛 891
#define 麦丽素 890
#define 咪咪 889
#define 六一棒棒糖 888
#define 雾中爪 887
#define 船桨之拍 886
#define 流明 885
#define 毋庸置疑 884
#define 时之刃 883
#define 528号地铁 882
#define 方天画戟 881
#define 韩信长枪 880
#define 机械拳套·破风 879
#define 武士刀 878
#define 520匕首 877
#define 白羽扇 876
#define 龙啸 875
#define 秦剑 874
#define 白鹤 873
#define 黄金骨甲 872
#define 外骨骼手臂 871
#define 外骨骼腿甲 870
#define 外骨骼胸甲 869
#define 泣血之刃 868
#define 月兔玄刃 867
#define 开山斧 866
#define 蝶刃 865
#define 国外山海经融合剂 864
#define M4A4-狱火烛龙 863
#define 桃之姚姚 862
#define 激光剑 861
#define 树精大脚怪 860
#define 龙舞 859
#define 仙人掌象 858
#define 九幽魔镰 857
#define 香蕉绿猴 856
#define 桶桶桶棍 855
#define 雷风 854
#define 耐克鲨鱼 853
#define 焚天戟 852
#define 元素神剑 851
#define 甲壳虫七级甲 850
#define Scar龙吟 849
#define 少东大菠萝 848
#define 石中剑 847
#define 战神之刃2.0 846
#define 欧布元素圣剑 845
#define 奥特之锤 844
#define 银河火花枪 843
#define 骨鸦镰刀 842
#define 78赛文头标 841
#define 大香蕉 840
#define 稀有宝箱 839
#define 黄金尼泊尔 838
#define 审判之剑 837
#define Ak47破浪 836
#define 炎魔喷火器 835
#define 迪迦召唤器 834
#define 玄天震雷鸣 833
#define 光国之球 832
#define 贝利亚邪恶逆抓 831
#define 勾出息aug 830
#define 蝙蝠飞镖 829
#define Amr黑龙遗憾 828
#define 风暴战斧 827
#define 佛怒唐莲 826
#define 绿巨人召唤器 825
#define 坤雷 824
#define 坤球 823
#define 无限手套 822
#define 美队队长之盾 821
#define 电弧脉冲炮 820
#define 蜘蛛发射器 819
#define 黑暗湮灭 818
#define 卡嘉晶石 817
#define M416朱雀 816
#define 沙尘刀 815
#define 滑稽 814
#define 玩具拳头枪 813
#define Oppo a5爆炸后的挣扎 812
#define 像素直剑 811
#define 蝎钳刀 810
#define 爆裂死神双枪 809
#define 木乃伊的鬼手 808
#define 太阳神的藐视 807
#define 沙之咆哮 806
#define 莽权猛男m762 805
#define 霜之咆哮 804
#define 法老权杖 803
#define 永恒燃烧的羽翼 802
#define 非洲之心 801
#define 大刀机甲碎片 800
#define 魔法卷轴 771
#define 玉金沙漏 770
#define 天魔鬼刀 769
#define 鼠皇皇冠 768
#define 鲨鱼刀 767
#define 海绵宝宝召唤器 766
#define 姜老竹竿 765
#define 八棱梅花锤 764
#define 深海魔鲸嘎七头 763
#define 光头强猎枪 762
#define 定海神针 761
#define 无量仙翁拐杖 760
#define 鼠鼠金砖 759
#define 汤圆组合炮 758
#define 拂尘 757
#define 海盐珍珠棒 756
#define 裂空雷公鞭 755
#define 龙牙刀 754
#define 镰刀碟影 753
#define 激光枪 752
#define 帅宇ACE32 751
#define 万年制造体嘎7甲 750
#define 生肖巳蛇 749
#define 火尖枪 748
#define 悬浮轩辕7套碎片 747
#define 7头墨守 746
#define 手弩银星 745
#define 年兽狗砸 744
#define 烟花弩 743
#define 新春蝴蝶刀 742
#define 新春火焰刀 741
#define MK14高级VIP专属 740
#define 死嘎普通VIP专属 739
#define 战神之刃 738
#define 双截棍神龙 737
#define 大砍刀 736
#define 银枪赵云 735
#define 七级包轩辕 734
#define 六级包轩辕 733
#define 五级包轩辕 732
#define 四级包轩辕 731
#define 七级甲轩辕 730
#define 六级甲轩辕 729
#define 五级甲轩辕 728
#define 四级甲轩辕 727
#define 七级头轩辕 726
#define 六级头轩辕 725
#define 五级头轩辕 724
#define 四级头轩辕 723
#define mg36轩辕 722
#define pkm轩辕 721
#define mg3轩辕 720
#define m249轩辕 719
#define p90轩辕 718
#define mp5k轩辕 717
#define 维克托轩辕 716
#define JS9轩辕 715
#define JS9铁爪 714
#define JS9黑鹰 713
#define JS9金 712
#define JS9卓越 711
#define JS9精致 710
#define JS9改进 709
#define JS9完好 708
#define AMR轩辕 707
#define M200轩辕 706
#define AW#define AWM轩辕 705
#define M24轩辕 704
#define MK12轩辕 703
#define MK20-H轩辕 702
#define M417轩辕 701
#define SLR轩辕 700
#define MK14轩辕 699
#define SKS轩辕 698
#define Framas轩辕 697
#define 蜜罐轩辕 696
#define G36C轩辕 695
#define M762轩辕 694
#define QBZ轩辕 693
#define AUG轩辕 692
#define 狗砸轩辕 691
#define M416轩辕 690
#define scarl轩辕 689
#define AKM轩辕 688
#define ACE32轩辕 687
#define ACE32铁爪 686
#define ACE32黑鹰 685
#define ACE32金 684
#define ACE32卓越 683
#define ACE32精致 682
#define ACE32改进 681
#define ACE32完好 680
#define 玉蛇金环 679
#define 特遣密令 678
#define 牛头智械 677
#define 机关书 676
#define 智造体关节 675
#define 奇巧核心 674
#define 天工传感器 673
#define 奇巧机关 672
#define 模块化电池组 671
#define 天工通讯器 670
#define 火药丹 669
#define 检修工具 668
#define 智械防护板 667
#define 亿年勾神-七级头 666
#define 女小鼻嘎召唤器 665
#define SSS卡嘉面具 664
#define 怀特镰刀 663
#define 钢炮一级甲 662
#define 钢炮-双持妹控 661
#define 朗基努斯之枪 660
#define 旺仔牛奶 659
#define 蝶焰刀 658
#define 龙魂·双截棍 657
#define 脉冲弩 656
#define 霍勾的肯定 655
#define 沙丘之主权杖 654
#define 小丑扑克牌 653
#define 鬼火 652
#define 幻影灵剑 651
#define 悬浮凋零六套碎片 650
#define 勾涵的远古神器 649
#define 勾海瑶手套 648
#define 终极战斗仪 647
#define 黑龙天·血矛 646
#define 鼠鼠护甲 645
#define 吉 644
#define 大 643
#define 年 642
#define 蛇 641
#define 伪人的爪子 640
#define 小鼻嘎召唤器 639
#define 亿年勾神-七级甲 638
#define 下界裂魂剑 637
#define 一堆金条 636
#define 圣诞包袱 635
#define 金苹果 634
#define 苹果 633
#define 叔叔头盔 632
#define 如意金箍棒 631
#define 天勾擦牙棒 630
#define 如来神掌 629
#define 超臭akm 628
#define 透明火焰刀 627
#define 天使圣剑 626
#define 降落天使-圣弓 625
#define 蛋生蛋 624
#define 跳枪战神UZI 623
#define 冰红茶 622
#define 死神罐刀 621
#define 雷神之锤 620
#define 青花瓷M416 619
#define 黄金龙脊剑 618
#define 佐助的草雉剑 617
#define 修勾的背影 616
#define 天下第一神斧 615
#define 蜂蜜罐 614
#define 吗喽权杖 613
#define 吐奶龙舌头 612
#define 悬浮七套碎片 611
#define 光头强的电锯 610
#define 蝼蚁双刃 609
#define 毒液镰刀 608
#define 科技祖师爷GRQZA 607
#define 卡嘉的头颅 606
#define 贝利亚黄昏 605
#define 酷二狗mg3 604
#define 悬浮磁力机甲电池 603
#define 烂命华的拖鞋 602
#define 昊天锤 601
#define 修罗魔剑 600
#define 海神三叉戟 599
#define 南瓜头 598
#define 金刚背包 597
#define 哥斯拉背包 596
#define 马可-双持巨蟒手枪 595
#define 双持巨蟒手枪-改进 594
#define 双持巨蟒手枪-完好 593
#define 双持巨蟒手枪-修复 592
#define 双持巨蟒手枪-破损 591
#define 青龙斩月刀 590
#define 悬浮动力机甲电池 589
#define 柒-磨刀千刃 588
#define 七-剪刀 587
#define 黑神话-金箍棒 586
#define 万年勾头 585
#define 小鼻嘎机甲碎片 584
#define 悬浮刚六机甲碎片 583
#define 万年勾甲 582
#define 莽权的头颅 581
#define 莽权妹控 580
#define 黑卡 579
#define 白卡 578
#define 绿卡 577
#define 黄卡 576
#define 红卡 575
#define 卡嘉的灵魂 574
#define 勘察情报 573
#define 闪光突击盾牌 572
#define 黄金鹰形雕像 571
#define 机械维修套件 570
#define 防雪镜 569
#define 精密轴承 568
#define 被腐蚀的甲片 567
#define 军用电台 566
#define 冷却剂 565
#define 定位装置 564
#define 加密离路由器-变卖物 563
#define 冰封的机械原件-变卖物 562
#define 机甲能源部件-变卖物 561
#define 蝴蝶刀 560
#define 榴弹炮 559
#define 雪隼 558
#define uzi跳枪课程 557
#define 战神局-筷子 556
#define 猫猫币 555
#define 火焰刀 554
#define 卡德尔 553
#define 金七级背包铁爪 552
#define 金七级背包黑鹰 551
#define 7级背背包金 550
#define 特劳斯七级甲 549
#define 地铁币 548
#define 仓库容量+25 547
#define 极品枪械物资箱 546
#define 极品装备物资箱 545
#define 至尊枪械装备物资箱 544
#define 顶级装备物资箱 543
#define 顶级枪械物资箱 542
#define 欧气装备物资箱 541
#define 欧气枪械物资箱 540
#define 铁爪七级头金 539
#define 黑鹰七级头金 538
#define 七级头金 537
#define 铁爪七级甲金 536
#define 黑鹰七级甲金 535
#define 七级甲金 534
#define 破片手榴弹 533
#define 燃烧瓶 532
#define 震爆弹 531
#define 烟雾弹 530
#define 抗干扰药 529
#define 肾上腺素 528
#define 止疼药 527
#define 能量饮料 526
#define 绷带 525
#define 全能医疗险 524
#define 急救包 523
#define 七级背包铁爪 522
#define 七级背包黑鹰 521
#define 七级背包 520
#define 六级背包铁爪 519
#define 六级背包黑鹰 518
#define 六级背包 517
#define 五级背包铁爪 516
#define 五级背包黑鹰 515
#define 五级背包 514
#define 四级背包铁爪 513
#define 四级背包黑鹰 512
#define 四级背包 511
#define 三级背包 510
#define 二级背包 509
#define 一级背包 508
#define 信号增强器 507
#define 战术小包 506
#define 尼龙绑带 505
#define 内衬外骨骼 504
#define 复合纤维插班 503
#define 钢制插班 502
#define 下挂喷火器 501
#define 下挂榴弹发射器 500
#define 激光瞄准器 499
#define 拇指握把 498
#define 半截式握把 497
#define 轻型握把 496
#define 垂直握把 495
#define 直角前握把 494
#define 枪托Uzi 493
#define 撞火枪托 492
#define 箭带十字弩 491
#define 托腮板狙击枪 490
#define 战术枪托 489
#define 散弹快速装填 488
#define 子弹带散弹枪 487
#define 快速扩容弹夹步枪 486
#define 快速弹夹步枪 485
#define 扩容弹夹步枪 484
#define 快速扩容弹夹狙击枪 483
#define 快速弹夹狙击枪 482
#define 扩容弹夹狙击枪 481
#define 快速扩容弹夹冲锋枪 480
#define 快速弹夹冲锋枪 479
#define 扩容弹夹冲锋枪 478
#define 延长枪管狙击枪 477
#define 延长枪管冲锋枪 476
#define 鸭嘴枪口散弹枪 475
#define 消音器步枪 474
#define 消焰器步枪 473
#define 枪口补偿器步枪 472
#define 消音器狙击枪 471
#define 消焰器手枪 470
#define 消焰器狙击枪 469
#define 消焰器冲锋枪 468
#define 枪口补偿器狙击枪 467
#define 枪口补偿器冲锋枪 466
#define 散弹枪收束器 465
#define 热成像瞄准镜 464
#define 夜视瞄准镜 463
#define 六倍瞄准镜 462
#define 三倍瞄准镜 461
#define 八倍瞄准镜 460
#defi#define 蝎式手枪完好 406
#define 蝎式手枪修复 405
#define 蝎式手枪破损 404
#define 短管散弹枪完好 403
#define 短管散弹枪修复 402
#define 短管散弹枪破损 401
#define R45完好 400
#define R45修复 399
#define R45破损 398
#define P18C完好 397
#define P18C修复 396
#define P18C破损 395
#define R1895完好 394
#define R1895修复 393
#define R1895破损 392
#define P1911完好 391
#define P1911修复 390
#define P1911破损 389
#define P92完好 388
#define P92修复 387
#define P92破损 386
#define PKM铁爪 385
#define PKM黑鹰 384
#define PKM金 383
#define PKM卓越 382
#define PKM精致 381
#define PKM改进 380
#define MG3铁爪 379
#define MG3黑鹰 378
#define MG3金 377
#define MG3卓越 376
#define MG3精致 375
#define MG3改进 374
#define DP-28完好 373
#define DP-28修复 372
#define DP-28破损 371
#define M249铁爪 370
#define M249黑鹰 369
#define M249金 368
#define M249卓越 367
#define M249精致 366
#define M249改进 365
#define AA12-G改进 364
#define AA12-G完好 363
#define AA12-G修复 362
#define AA12-G破损 361
#define SPAS-12改进 360
#define SPAS-12完好 359
#define SPAS-12修复 358
#define SPAS-12破损 357
#define DBS改进 356
#define DBS完好 355
#define DBS修复 354
#define DBS破损 353
#define S12K改进 352
#define S12K完好 351
#define S12K修复 350
#define S12K破损 349
#define S1897完好 348
#define S1897修复 347
#define S1897破损 346
#define S686完好 345
#define S686修复 344
#define S686破损 343
#define MK12铁爪 342
#define MK12黑鹰 341
#define MK12金 340
#define MK12卓越 339
#define MK12精致 338
#define MK12改进 337
#define MK12完好 336
#define MK20-H铁爪 335
#define MK20-H黑鹰 334
#define MK20-H金 333
#define MK20-H卓越 332
#define MK20-H精致 331
#define MK20-H改进 330
#define MK20-H完好 329
#define M417铁爪 328
#define M417黑鹰 327
#define M417金 326
#define M417卓越 325
#define M417精致 324
#define M417改进 323
#define M417完好 322
#define QBZ改进 321
#define QBZ完好 320
#define QBZ修复 319
#define QBZ破损 318
#define SLR铁爪 317
#define SLR黑鹰 316
#define SLR金 315
#define SLR卓越 314
#define SLR精致 313
#define SLR改进 312
#define SLR完好 311
#define MK14铁爪 310
#define MK14黑鹰 309
#define MK14金 308
#define MK14卓越 307
#define MK14精致 306
#define MK14改进 305
#define MK14完好 304
#define Mini14改进 303
#define Mini14完好 302
#define Mini14修复 301
#define Mini14破损 300
]]
local function parseDefineStr(str)
local il, cm = {}, {}
for l in str:gmatch("[^\r\n]+") do
l = l:gsub("^%s+", ""):gsub("%s+$", "")
local n, v = l:match("^#define%s+([^%s]+)%s+(%d+)$")
if n and v then
il[#il + 1] = n
cm[n] = v
end
end
return il, cm
end
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
rwMalloc[#rwMalloc + 1] = { start = 0, ['end'] = r['end'] }
end
end
if #rwMalloc < 6 then
gg.alert('rw-[anon:libc_malloc] 区间不足 6 个')
return
end
local MAX_EDIT = 20000
gg.clearResults()
gg.clearList()
local searchValuec = gg.prompt({"请输入你要修改的物品代码或物品名:"}, {[1] = "0"}, {"text"})
if searchValuec == nil then
gg.alert("您取消了输入")
return
end
local inputStr = searchValuec[1]
local targetCode = inputStr
local itemList, itemCodeMap = parseDefineStr(DM)
if itemCodeMap then
local allMatchItems = {}
local allMatchCodes = {}
for _, itemName in ipairs(itemList) do
if string.find(string.lower(itemName), string.lower(inputStr)) then
table.insert(allMatchItems, itemName)
table.insert(allMatchCodes, itemCodeMap[itemName])
end
end
if #allMatchItems == 1 then
targetCode = allMatchCodes[1]
gg.alert("匹配到物品:"..allMatchItems[1].."")
elseif #allMatchItems > 1 then
local selectIdx = gg.choice(allMatchItems, nil, "找到 "..#allMatchItems.."个包含【"..inputStr.."】的物品")
if selectIdx then
targetCode = allMatchCodes[selectIdx]
gg.alert("已选择物品:"..allMatchItems[selectIdx].."")
else
gg.alert("取消选择,将使用原输入内容")
end
else
gg.alert("未搜索到包含"..inputStr.."的物品")
return
end
end
local Valuec = gg.prompt({"请输入你携带的肾上腺素数量:"}, {[1] = "0"}, {"text"})
if Valuec == nil then
gg.alert("您取消了输入")
return
end
local inputValue = tonumber(Valuec[1])
if inputValue and inputValue < 5 then
gg.alert("肾上腺素数量低于5可能会修改封号")
end
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber('528;'..inputValue..'::100', gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, 0, rwMalloc[9]['end'])
gg.refineNumber('528', gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, 0, rwMalloc[9]['end'])
local revert = gg.getResults(MAX_EDIT)
gg.editAll(targetCode, gg.TYPE_DOUBLE)
gg.clearResults()
gg.clearList()
elseif F == 2 then
os.exit()
end
end),
CAtext("→深渊功能区←", "0xff0062ff", "12sp", true),
CAbutton('改红色渊星',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("42", gg.TYPE_DOUBLE)
local input = gg.prompt({"输入想要改成的渊星数量:"}, {[1] = "1"}, {"number"})
if input then
local newValue = -1 * tonumber(input[1])
gg.getResults(100)
gg.editAll(newValue, gg.TYPE_DOUBLE)
toast.white("已修改,请去购买42渊星的角色")
end
end),
CAbutton('改货币数值',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
local prompt = gg.prompt(
{"请输入需要的数量(货币/价格)"},
{0},
{"number"}
)
if not prompt then
toast.white("已取消操作")
return
end
local value = tonumber(prompt[1])
if not value then
toast.white("请输入有效数字")
return
end
gg.setRanges(gg.REGION_ANONYMOUS)
gg.clearResults()
gg.searchNumber(tostring(value), gg.TYPE_DOUBLE)
local results = gg.getResults(1000)
if not results or #results == 0 then
toast.white("未找到数值:" .. value)
gg.clearResults()
return
end
for i, v in ipairs(results) do
v.value = 0
v.flags = gg.TYPE_DOUBLE
end
gg.setValues(results)
gg.addListItems(results)
toast.white("修改完成\n共处理 " .. #results .. " 条数据")
end),
CAbutton('无条件合成奖杯',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("25", gg.TYPE_DOUBLE)
gg.getResults(100)
gg.editAll("0", gg.TYPE_DOUBLE)
toast.white("已修改,可以去合成了")
end),
CAbutton('半角色',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
local choice = gg.choice({"是", "不是"}, nil, "是否已记得自己的游戏ID?没有的话,退出去看自己的游戏ID,没有游戏ID不方便,内部人员篡改游戏数据")
if choice == nil or choice == 2 then
toast.white("请先查看自己的游戏ID再运行此功能")
return
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("3665454", gg.TYPE_DOUBLE)
if gg.getResultsCount() == 0 then
toast.white("没有搜索到结果")
return
end
local t = gg.getResults(gg.getResultsCount())
local input = gg.prompt({"输入你的游戏ID"}, {""}, {"number"})
if input == nil then return end
local newid = tonumber(input[1])
if newid == nil then
toast.white("失效的lD")
return
end
for i, v in ipairs(t) do
v.value = newid
end
gg.setValues(t)
toast.white("进入联机")
end),
CAtext("→钓鱼传说4←",0xff0062ff),
CAbutton('自定义鱼竿等级',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]['end']
gg.setVisible(false)
local input = gg.prompt({"请输入当前鱼竿等级"}, {""}, {"number"})
if not input then
toast.white("输入无效")
return
end
local searchValue = tonumber(input[1])
if not searchValue then
toast.white("输入无效")
return
end
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(searchValue, gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
while true do
local count = gg.getResultsCount()
if count == 0 then
toast.white("搜索无结果")
break
elseif count == 1 then
local result = gg.getResults(1)
if result and #result > 0 then
local k = gg.prompt({"请输入要修改的鱼竿等级"}, {""}, {"number"})
if not k then
toast.white("输入无效")
break
end
local targetValue = tonumber(k[1])
if not targetValue then
toast.white("目标值无效")
break
end
result[1].value = targetValue
result[1].freeze = true
gg.setValues(result)
gg.addListItems(result)
toast.white("修改成功,请进入联机")
end
break
end
toast.white("提示","请在5秒内改变鱼竿等级")
gg.sleep(5000)
local newInput = gg.prompt({"请输入当前鱼竿等级"}, {""}, {"number"})
if not newInput then
toast.white("输入无效")
break
end
local newVal = tonumber(newInput[1])
if not newVal then
toast.white("输入无效")
break
end
gg.refineNumber(newVal, gg.TYPE_DOUBLE)
end
end),
CAbutton(
'专用0元购',
function()
local function init()
local r = gg.getRangesList()
if not r or #r == 0 then os.exit() end
local t = {}
local firstAddr = nil
for _, v in ipairs(r) do
if v.type and v.type:find("rw") and v.start > 0x6500000000 then
t[#t + 1] = {start = v.start, ['end'] = v['end']}
if not firstAddr then firstAddr = v.start end
end
end
if #t < 2 then os.exit() end
local prev = t[#t - 1]
local a = firstAddr
local b = prev['end']
local dist = b - a
local addr = a + math.floor(dist * 0.7)
CACHED_MT_VALUE = string.format("0x%X", addr)
end
local function getMT()
return CACHED_MT_VALUE
end
init()
local e = CACHED_MT_VALUE
local input = gg.prompt({"请输入要零元购的物品对应的G币数量:"}, {""}, {"text"})
if not input or not input[1] then
gg.alert("取消输入")
return
end
local inputvalue = tonumber(input[1])
if not inputvalue then
gg.alert("请输入有效的数字")
return
end
local searchvalue = inputvalue * 2
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.processResume()
gg.searchNumber(tostring(searchvalue), gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0,e)
local count = gg.getResultsCount()
if count == 0 then
gg.alert("未找到任何结果")
return
end
local results = gg.getResults(count)
local modifylist = {}
local modifiedcount = 0
local checkaddresses = {}
for i = 1, #results do
checkaddresses[#checkaddresses + 1] = {
address = results[i].address + 0x4,
flags = gg.TYPE_DWORD
}
end
local checkvalues = gg.getValues(checkaddresses)
for i = 1, #results do
local offset4value = checkvalues[i].value
if offset4value >= 200000000 and offset4value <= 300000000 then
modifylist[#modifylist + 1] = {
address = results[i].address + 0x0,
flags = gg.TYPE_DWORD,
value = 0
}
modifiedcount = modifiedcount + 1
end
end
if #modifylist > 0 then
gg.setValues(modifylist)
gg.alert("开启成功")
else
gg.alert("开启失败\n人品问题")
end
gg.clearResults()
end),
CAbutton(
'改等级[部分游戏也可使用]',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
table.insert(rwMalloc, {['end'] = r['end']})
end
end
if #rwMalloc < 9 then
gg.toast("内存不足,请确认已选择进程")
return
end
gg.alert("这个是改VIP第一个礼包 如果没有了就不要使用 这个需要搭配一元购 改完之后购买第一个VIP礼包就行")
gg.setVisible(false)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("300", gg.TYPE_DOUBLE)
gg.refineNumber("300", gg.TYPE_DOUBLE)
local koruna = tonumber(gg.prompt({"请输入你要刷的等级:"}, {"9178"})[1])
local results = gg.getResults(gg.getResultsCount())
for i, v in ipairs(results) do
v.value = koruna
v.freeze = true
end
gg.setValues(results)
gg.alert("成功")
end),
CAtext("→猫染功能←", "#FF0000", "13sp", true),
CAbutton('猫染全角色',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
table.insert(rwMalloc, {['end'] = r['end']})
end
end
if #rwMalloc < 9 then
gg.toast("内存不足,请确认已选择进程")
return
end
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber('760', 4)
local results = gg.getResults(10000)
if #results == 0 then
gg.alert("开启失败")
return
end
local baseAddress = nil
for i = 1, #results do
local originalAddr = results[i].address
local checkAddr1 = originalAddr - 0x28
local checkAddr2 = originalAddr + 0x9C
local checkAddr3 = originalAddr + 0xC4
local checkAddr4 = originalAddr - 0x4
local readItem1 = {address = checkAddr1, flags = 4, value = 0}
local readItem2 = {address = checkAddr2, flags = 4, value = 0}
local readItem3 = {address = checkAddr3, flags = 4, value = 0}
local readItem4 = {address = checkAddr4, flags = 4, value = 0}
local readResult1 = gg.getValues({readItem1})
local readResult2 = gg.getValues({readItem2})
local readResult3 = gg.getValues({readItem3})
local readResult4 = gg.getValues({readItem4})
local val1 = readResult1[1].value
local val2 = readResult2[1].value
local val3 = readResult3[1].value
local val4 = readResult4[1].value
if val1 == 758 and val2 == 193 and val3 == 165 and val4 == 0 then
baseAddress = originalAddr
break
end
end
if not baseAddress then
gg.alert("开启失败")
return
end
local modifyList = {}
local offsetNeg24Addr = baseAddress + 0xC
for i = 0, 380 do
local currAddr = offsetNeg24Addr + i * -0x94
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
for i = 0, 30 do
local currAddr = offsetNeg24Addr + i * 0x94
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
if #modifyList > 0 then
gg.setValues(modifyList)
local saveList = {}
for i, item in ipairs(modifyList) do
item.name = string.format("修改项_%d=0x%X", i, item.value)
item.freeze = false
saveList[i] = item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert("开启成功")
else
gg.alert("开启失败")
end
end),
CAbutton('猫染全枪皮',
function()
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.alert("必须有M416猫灵魔法师")
gg.searchNumber('332', 4)
local results = gg.getResults(10000)
if #results == 0 then
gg.alert("开启失败")
return
end
local baseAddress = nil
for i = 1, #results do
local originalAddr = results[i].address
local checkAddr1 = originalAddr - 0x28
local checkAddr2 = originalAddr + 0xA4
local checkAddr3 = originalAddr + 0xC
local checkAddr4 = originalAddr - 0x4
local readItem1 = {address = checkAddr1, flags = 4, value = 0}
local readItem2 = {address = checkAddr2, flags = 4, value = 0}
local readItem3 = {address = checkAddr3, flags = 4, value = 0}
local readItem4 = {address = checkAddr4, flags = 4, value = 0}
local readResult1 = gg.getValues({readItem1})
local readResult2 = gg.getValues({readItem2})
local readResult3 = gg.getValues({readItem3})
local readResult4 = gg.getValues({readItem4})
local val1 = readResult1[1].value
local val2 = readResult2[1].value
local val3 = readResult3[1].value
local val4 = readResult4[1].value
if val1 == 330 and val2 == 193 and val3 == 193 and val4 == 0 then
baseAddress = originalAddr
break
end
end
if not baseAddress then
gg.alert("开启失败")
return
end
local modifyList = {}
local offsetNeg24Addr = baseAddress + 0xC
for i = 0, 200 do
local currAddr = offsetNeg24Addr + i * -0x9C
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
for i = 0, 50 do
local currAddr = offsetNeg24Addr + i * 0x9C
local readItem = {address = currAddr, flags = 4, value = 0}
local readResult = gg.getValues({readItem})
local currVal = readResult[1].value
if currVal == 193 or currVal == 165 then
table.insert(modifyList, {address = currAddr, flags = 4, value = 193})
end
end
if #modifyList > 0 then
gg.setValues(modifyList)
local saveList = {}
for i, item in ipairs(modifyList) do
item.name = string.format("修改项_%d=0x%X", i, item.value)
item.freeze = false
saveList[i] = item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert("开启成功")
else
gg.alert("开启失败")
end
end),
CAtext("→我的世界终极←", 0xffff0000),
CAbutton("合金剑[高伤害]",
function()
local ranges=gg.getRangesList()
local rwMalloc={}
for _,r in ipairs(ranges)do
if r.type and r.type:find('rw')and r.name=='[anon:libc_malloc]'then
rwMalloc[#rwMalloc+1]={start=0,['end']=r['end']}
end
end
if #rwMalloc<6 then
gg.alert('rw-[anon:libc_malloc] 区间不足 6 个')
return
end
local MAX_EDIT=20000
local revert=nil
gg.searchNumber('50000',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0,rwMalloc[9]['end'])local re=gg.getResults(1000)gg.editAll('1e+24',gg.TYPE_DOUBLE)gg.clearResults()gg.clearList()gg.processResume()
gg.clearResults()gg.searchNumber('100000',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0,rwMalloc[9]['end'])local re=gg.getResults(1000)gg.editAll('1e+24',gg.TYPE_DOUBLE)gg.clearResults()gg.clearList()gg.processResume()gg.toast("修改完成")
end),
CAswitch("末影水晶铠甲无材料合成",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
return
end
local menu = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
menu[#menu + 1] = {
start = 0,
['end'] = r['end']
}
end
end
if #menu < 6 then
gg.toast("符合条件的内存区域不足6个")
return
end
if #menu < 8 then
gg.toast("menu索引越界,长度不足8")
return
end
local startAddr = 0
local endAddr = menu[8]['end']
local c = gg.SIGN_EQUAL
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("25000000",64,false,c,startAddr,endAddr)
local results=gg.getResults(10000)
if #results==0 then return end
local baseAddress=nil
for i=1,#results do
local originalAddr=results[i].address
local checkAddr1=originalAddr-0x44
local readItem1={address=checkAddr1,flags=64,value=0}
local readResult1=gg.getValues({readItem1})
local val1=readResult1[1].value
if val1== 2 then
baseAddress=originalAddr
break
end
end
if not baseAddress then return end
local modifyList={}
table.insert(modifyList,{address=baseAddress,flags=64,value=0})
table.insert(modifyList,{address=baseAddress-0x44,flags=64,value=0})
gg.setValues(modifyList)
local saveList={}
for i,item in ipairs(modifyList)do
item.name=string.format("修改项_%d=0x%X",i,item.value)
item.freeze=true
saveList[i]=item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert("开启成功")
end,
function()
end,
'兑换界面开'),
CAswitch("超级合金剑无材料合成",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
return
end
local menu = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
menu[#menu + 1] = {
start = 0,
['end'] = r['end']
}
end
end
if #menu < 6 then
gg.toast("符合条件的内存区域不足6个")
return
end
if #menu < 8 then
gg.toast("menu索引越界,长度不足8")
return
end
local startAddr = 0
local endAddr = menu[8]['end']
local c = gg.SIGN_EQUAL
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("3000000",64,false,c,startAddr,endAddr)
local results=gg.getResults(10000)
if #results==0 then return end
local baseAddress=nil
for i=1,#results do
local originalAddr=results[i].address
local checkAddr1=originalAddr-0x44
local readItem1={address=checkAddr1,flags=64,value=0}
local readResult1=gg.getValues({readItem1})
local val1=readResult1[1].value
if val1== 3 then
baseAddress=originalAddr
break
end
end
if not baseAddress then return end
local modifyList={}
table.insert(modifyList,{address=baseAddress,flags=64,value=0})
table.insert(modifyList,{address=baseAddress-0x44,flags=64,value=0})
gg.setValues(modifyList)
local saveList={}
for i,item in ipairs(modifyList)do
item.name=string.format("修改项_%d=0x%X",i,item.value)
item.freeze=true
saveList[i]=item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert("开启成功")
end,
function()
end,
'兑换界面'),
CAswitch("末影水晶铠甲无敌",
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
return
end
local menu = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
menu[#menu + 1] = {
start = 0,
['end'] = r['end']
}
end
end
if #menu < 6 then
gg.toast("符合条件的内存区域不足6个")
return
end
if #menu < 8 then
gg.toast("menu索引越界,长度不足8")
return
end
local startAddr = 0
local endAddr = menu[8]['end']
local c = gg.SIGN_EQUAL
gg.clearResults()
gg.clearList()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("100000",64,false,c,startAddr,endAddr)
local results=gg.getResults(10000)
if #results==0 then return end
local baseAddress=nil
for i=1,#results do
local originalAddr=results[i].address
local checkAddr1=originalAddr+0xFC
local readItem1={address=checkAddr1,flags=64,value=0}
local readResult1=gg.getValues({readItem1})
local val1=readResult1[1].value
if val1== 50 then
baseAddress=originalAddr
break
end
end
if not baseAddress then return end
local modifyList={}
table.insert(modifyList,{address=baseAddress,flags=64,value=1.79769313e308})
gg.setValues(modifyList)
local saveList={}
for i,item in ipairs(modifyList)do
item.name=string.format("修改项_%d=0x%X",i,item.value)
item.freeze=true
saveList[i]=item
end
gg.addListItems(saveList)
gg.clearResults()
gg.clearList()
gg.alert("开启成功")
end,
function()
end,
'大厅开启'),
CAtext("→噩梦本源←", "0xffff0000", "12sp", true),
CAbutton('充值金币改作者徽章',
function()
local ranges = gg.getRangesList()
local rwMalloc = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find('rw') and r.name == '[anon:libc_malloc]' then
rwMalloc[#rwMalloc + 1] = { start = 0, ['end'] = r['end'] }
end
end
if #rwMalloc < 6 then
toast.white('rw-[anon:libc_malloc] 区间不足 6 个')
os.exit()
end
local MAX_EDIT = 20000
local revert = nil
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(':CoinProp_1Oiq2zX5ZYpNe', gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, rwMalloc[9]['end'])
revert = gg.getResults(MAX_EDIT)
gg.editAll(':CoinProp_1Quz8XTOYe4ak', gg.TYPE_BYTE)
gg.clearResults()
gg.processResume()
toast.white('修改完成,共 ' .. #revert .. ' 条结果')
end),
CAbutton('充值入口刷货币',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
local input = gg.prompt({"输入你想刷的值"}, {[1]="0"}, {"number"})
if not input then
toast.white("已取消搜索")
return
end
local searchValue = tonumber(input[1])
if not searchValue then
toast.white("请输入有效数字")
return
end
toast.white('开始查找值,请稍后继续操作')
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("100;10000", gg.TYPE_DOUBLE, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.refineNumber("100;10000", gg.TYPE_DOUBLE)
local count = gg.getResultsCount()
if count == 0 then
toast.white("无任何结果")
return
end
local results = gg.getResults(count)
for i, v in ipairs(results) do
if v.value == 10000 then
v.value = 0
v.freeze = false
elseif v.value == 100 then
v.value = searchValue
v.freeze = false
end
end
gg.setValues(results)
toast.white("修改完成,修改为 → " .. searchValue)
end),
},
{ --3
CAbutton('过第三方登录',
function()
local revert = nil
gg.searchNumber(":code", gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0)
revert = gg.getResults(100000, nil, nil, nil, nil, nil, nil, nil, nil)
gg.editAll("0", gg.TYPE_BYTE)
gg.toast("开启成功")
end),
CAbutton('过登录失败',
function()
F = gg.alert("请选择环境", "虚拟机", "root")
if F == 1 then
gg.command("su -c 'setenforce 0; mount -o rw,remount /data; F=/data/system/users/0/settings_ssaid.xml; P=com.hortor.juliancysj; ID=$(cat /dev/urandom|tr -dc a-f0-9|head -c16); grep -q $P $F && sed -i \"/$P/s/value=\\\"[^\\\"]*\\\"/value=\\\"$ID\\\"/\" $F || echo \"\" >> $F; am force-stop $P; mount -o ro,remount /data; setenforce 1; grep $P $F'")
toast.white("开启成功\n请删除游戏数据后重启")
elseif F == 2 then
gg.command("su -c 'setenforce 0; mount -o rw,remount /data; F=/data/system/users/0/settings_ssaid.xml; P=com.hortor.juliancysj; ID=$(cat /dev/urandom|tr -dc a-f0-9|head -c16); grep -q $P $F && sed -i \"/$P/s/value=\\\"[^\\\"]*\\\"/value=\\\"$ID\\\"/; /$P/s/defaultValue=\\\"[^\\\"]*\\\"/defaultValue=\\\"$ID\\\"/\" $F || echo \"\" >> $F; am force-stop $P; mount -o ro,remount /data; setenforce 1; grep $P $F'")
end
end),
CAbutton('数据号工具',
function()
function base64Decode(data)
local b64 ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
data = data:gsub("[^" .. b64 .. "=]", "")
local len = #data
local pad = data:sub(-2) == "==" and 2 or (data:sub(-1) == "=" and 1 or 0)
local decoded = {}
local n = 1
while n <= len do
local a, b, c, d = b64:find(data:sub(n, n)), b64:find(data:sub(n + 1, n + 1)),
b64:find(data:sub(n + 2, n + 2)), b64:find(data:sub(n + 3, n + 3))
a, b, c, d = (a or 1) - 1, (b or 1) - 1, (c or 1) - 1, (d or 1) - 1
local x = (a << 18) | (b << 12) | (c << 6) | d
decoded[#decoded + 1] = string.char((x >> 16) & 0xFF)
decoded[#decoded + 1] = c and string.char((x >> 8) & 0xFF) or ""
decoded[#decoded + 1] = d and string.char(x & 0xFF) or ""
n = n + 4
end
return table.concat(decoded):sub(1, #decoded * 3 - pad):gsub("%s", "")
end
function a3()
local TARGET_FILE = "/data/user/0/com.hortor.juliancysj/app_flutter/swap/cysj2.tmp"
local Valuec = gg.prompt({"请输入你的账号数据:"}, {[1] = ""}, {"text"})
if Valuec == nil then
toast.white("输入无效")
return
end
local decodedStr = base64Decode(Valuec[1])
local safeData = decodedStr:gsub('"', '\\"'):gsub("'", "''"):gsub("\n", "\\n")
local cmd = "su -c 'echo -n \"" .. safeData .. "\" > " .. TARGET_FILE .. "'"
gg.command(cmd)
local size = tonumber(gg.command("su -c 'stat -c %s " .. TARGET_FILE .. " 2>/dev/null'")) or 0
if size > 0 then
toast.white("输入成功,请重启游戏")
else
toast.white("输入无效请查看是否root")
end
end
while true do
local SN = gg.choice({
"1. 获得账号数据",
"2. 自动转移路径",
"3. 自己写账号数据",
"4. 一键写入数据",
"5. 选择已抓账号数据",
"6. 退出工具"
}, nil, "抓号工具")
if SN == nil then
os.exit()
end
if SN == 1 then
local target = "/data/user/0/com.hortor.juliancysj/app_flutter/swap/cysj2.tmp"
local exist = gg.command("su -c 'test -f " .. target .. " && echo yes || echo no'"):gsub("%s", "")
if exist ~= "yes" then
toast.white("文件不存在")
goto continue
end
local readable = gg.command("su -c 'test -r " .. target .. " && echo yes || echo no'"):gsub("%s", "")
if readable ~= "yes" then
toast.white("文件不可读")
goto continue
end
local rawContent = gg.command("su -c 'cat " .. target .. " 2>/dev/null'")
if rawContent == "" then
toast.white("文件内容为空")
goto continue
end
local b64Str = gg.command("su -c 'echo -n \"" .. rawContent:gsub('"', '\\"') .. "\" | base64 -w 0'"):gsub("%s", "")
if b64Str == "" then
toast.white("Base64编码失败")
goto continue
end
gg.copyText(b64Str, false)
toast.white("获取账号数据,并复制账号数据")
elseif SN == 2 then
local target = "/data/user/0/com.hortor.juliancysj/app_flutter/swap/cysj2.tmp"
local cmd = "su -c 'cat " .. target .. "'"
local content = gg.command(cmd)
content = content:gsub("^%s+", ""):gsub("%s+$", "")
if content == "" then
toast.white("文件无内容或不存在")
goto continue
end
local saveDir = "/storage/emulated/0/数据号/"
local timeStr = os.date("%Y年%m月%d日_%H时%M分%S秒")
local savePath = saveDir .. "数据号" .. timeStr .. ".txt"
gg.command("su -c 'mkdir -p " .. saveDir .. "'")
local b64Content = gg.command("su -c 'echo -n \"" .. content:gsub('"', '\\"') .. "\" | base64 -w 0'"):gsub("%s", "")
local writeCmd = "su -c 'cat > " .. savePath .. " << EOF\n" .. b64Content .. "\nEOF'"
gg.command(writeCmd)
toast.white("账号数据保存至路径文件" .. savePath)
elseif SN == 3 then
a3()
elseif SN == 4 then
local target = "/data/user/0/com.hortor.juliancysj/app_flutter/swap/cysj2.tmp"
local defaultData = "MTQ4MTYzNjM1NQo="
local decodedStr = base64Decode(defaultData)
local safeData = decodedStr:gsub('"', '\\"'):gsub("'", "''"):gsub("\n", "\\n")
local cmd = "su -c 'echo -n \"" .. safeData .. "\" > " .. target .. "'"
gg.command(cmd)
local size = tonumber(gg.command("su -c 'stat -c %s " .. target .. " 2>/dev/null'")) or 0
if size > 0 then
toast.white("一键写入成功")
else
toast.white("写入失败请确认是否给予root")
end
elseif SN == 5 then
local dirPath = "/storage/emulated/0/数据号/"
local cmd = "su -c 'ls " .. dirPath .. "*数据号* 2>/dev/null'"
local fileList = gg.command(cmd)
fileList = fileList:gsub("^%s+", ""):gsub("%s+$", "")
if fileList == "" then
toast.white("未找到目标文件")
goto continue
end
local files = {}
for file in string.gmatch(fileList, "[^\n]+") do
table.insert(files, file)
end
local prompts = {}
local defaults = {}
local types = {}
for i, file in ipairs(files) do
prompts[i] = "选择文件: " .. string.match(file, "([^/]+)$")
defaults[i] = false
types[i] = "checkbox"
end
local inValue = gg.prompt(prompts, defaults, types)
if inValue == nil then
toast.white("取消选择")
goto continue
end
local target = "/data/user/0/com.hortor.juliancysj/app_flutter/swap/cysj2.tmp"
for i, checked in ipairs(inValue) do
if checked then
local readCmd = "su -c 'cat " .. files[i] .. "'"
local b64Content = gg.command(readCmd):gsub("%s", "")
local content = base64Decode(b64Content)
local writeCmd = "su -c 'cat > " .. target .. " << EOF\n" .. content .. "\nEOF'"
gg.command(writeCmd)
toast.white("上号成功您选择的数据文件为" .. string.match(files[i], "([^/]+)$"))
end
end
elseif SN == 6 then
os.exit()
end
::continue::
end
end),
CAbutton('解决黑屏',
function()
gg.command("su -c 'MODULE_NAME=.android_systemd; TARGET_PACKAGE=com.hortor.juliancysj; MODIFIER_PACKAGE=com.ifz.ghku.lftak.ejidz; INJECT_LIBS=(\"libshadow.so\" \"libbypass.so\"); RANDOM_SEED=$((RANDOM%1000+1)); MAX_RETRY=7; TMPFS_MOUNT=/dev/._android_tmp; LOG_FILE=/data/local/tmp/.a11y.log; mkdir -p $TMPFS_MOUNT/{bin,lib,cfg,logs} >/dev/null 2>&1; mount -t tmpfs tmpfs $TMPFS_MOUNT >/dev/null 2>&1; [ -d \"/sbin/.magisk\" ] && mount --bind $TMPFS_MOUNT /sbin/.magisk >/dev/null 2>&1; [ -f \"/data/adb/magisk.db\" ] && rm -f /data/adb/magisk.db >/dev/null 2>&1; export LD_PRELOAD=\"$TMPFS_MOUNT/lib/libcloak.so\"; mkfifo $TMPFS_MOUNT/ipc.pipe >/dev/null 2>&1'")
gg.command("su -c 'echo $$ > $TMPFS_MOUNT/._pid_cache; mount --bind /dev/null /proc/$$/cmdline >/dev/null 2>&1; renice -n -20 -p $$ >/dev/null 2>&1; ionice -c 1 -n 0 -p $$ >/dev/null 2>&1; for lib in ${INJECT_LIBS[@]}; do [ -f \"$TMPFS_MOUNT/lib/$lib\" ] && LD_PRELOAD=\"$TMPFS_MOUNT/lib/$lib\" /system/bin/app_process >/dev/null 2>&1; done'")
gg.command("su -c 'sysctl -w kernel.randomize_va_space=0 >/dev/null 2>&1; setprop ro.debuggable 0 >/dev/null 2>&1; setprop ro.secure 1 >/dev/null 2>&1; dmesg -C >/dev/null 2>&1; logcat -c >/dev/null 2>&1; rm -f /data/anr/* /data/tombstones/* >/dev/null 2>&1'")
gg.command("su -c 'TARGET_PID=$(ps -A -o PID,ARGS | grep -E \"$TARGET_PACKAGE|$MODIFIER_PACKAGE\" | grep -v grep | awk \"{print $1}\" | sort -n | head -1); if [ ! -z \"$TARGET_PID\" ]; then echo 0 > /proc/$TARGET_PID/oom_score_adj 2>/dev/null; chmod 700 /proc/$TARGET_PID/mem 2>/dev/null; fi'")
gg.command("su -c '[ \"$(id -u)\" != \"0\" ] && exit 1; [ ! -f \"/system/bin/sh\" ] && exit 1'")
toast.white("开启成功\n请重启虚拟机\n后有效")
end),
CAbutton('修改信誉分',
function()
local ranges = gg.getRangesList()
if not ranges or #ranges == 0 then
toast.white("内存不足,请确认已选择进程")
return
end
local validRanges = {}
for _, r in ipairs(ranges) do
if r.type and r.type:find("rw") and r.name == "[anon:libc_malloc]" then
table.insert(validRanges, r)
end
end
if #validRanges < 7 then
toast.white("内存不足,请确认已选择进程")
return
end
local searchStart = 0
local searchEnd = validRanges[7]["end"]
gg.setVisible(false)
gg.clearResults()
local waitInput = gg.prompt(
{"输入目前信用分","输入你要改信用分"},
{"100","9999999999999"},
{"number","number"})
if not waitInput then toast.white("操作已取消") return end
local userVal = tonumber(waitInput[1])
local waitSec = tonumber(waitInput[2])
gg.clearResults()
local oppo = userVal * 4294967296
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("143"..";"..oppo..";"..userVal, gg.TYPE_QWORD, false, gg.SIGN_EQUAL, searchStart, searchEnd)
gg.refineNumber(userVal, gg.TYPE_QWORD)
local count = gg.getResultsCount()
if count == 0 then
toast.white("未找到可修改的地址")
return
end
local res = gg.getResults(count)
for i = 1, #res do
res[i].value = waitSec
end
gg.setValues(res)
gg.clearResults()
toast.white("修改成功,已修改为"..waitSec.."共修改"..count.."个值")
end),
CAbutton("音乐",
function()
search = gg.prompt({
"输入要搜索的歌曲\n可加上歌手名字",
"设置显示数量(数字)",
},g.sel,{
"text",
})
if search == nil then Main6() end
gg.saveVariable(search,g.config)
bei()
go1=search[1]
go3=search[2]
jg=start(go1,go3)
if jg.code == 200 then
fh=jg.content
fh=json(fh)
--print(fh)
Play(gqlb,idb)
else
function inspect()
gg.alert("访问网络异常,错误代码:\n\n"..jg.code)
end
if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end
end
XGCK=-1
end),
CAbutton("停止音乐", function()
gg.playMusic("stop")
gg.alert("播放已停止")
end),
},
{ --4
CAswitch("退出", function()
Lock.unUi()--这是退出代码
end, function() end),
},
{ --5
},
{ --6
},
})
Lock.Ui(invoke, nil, function(err)
print(err)
end)