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)