function getMapRanges() local ranges = {} local r_list = {} local _index = 1 local library = gg.getRangesList("^/data/*.so*$") for index, map in ipairs(library) do if map.type:sub(2, 2) == "w" or map.type == "r-xp" then local name = map.internalName local state = map.state local count = map.count if not r_list[name] then r_list[name] = {} end if not r_list[name][state] then r_list[name][state] = {0, _index} end r_list[name][state][1] = r_list[name][state][1] + 1 r_list[name][state][2] = _index map.count = r_list[name][state][1] table.insert(ranges, map) _index = _index + 1 end end return ranges, r_list end function staticstart(map) local ranges = getMapRanges() if not map[3] then map[3] = 1 end for index, value in ipairs(ranges) do local name = value.internalName:gsub("^.*/", "") if map[1] == name and map[2] == value.state and map[3] == value.count then return value.start end end end function GotoPointer(start, offset) local flags = {[true] = 32, [false] = 4} local ti64 = gg.getTargetInfo().x64 local type = flags[ti64] local addr = 0 if start then addr = start + offset[1] for index = 2, #offset do local pointer = gg.getValues({{address = addr, flags = type}}) if not ti64 then pointer[1].value = pointer[1].value & 0xFFFFFFFF end addr = pointer[1].value + offset[index] end end return addr end function SearchWrite(read, write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"], read["类型"]) if gg.getResultCount() > 0 then local Result = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #read do local t = {} for e, v in ipairs(Result) do t[#t + 1] = {address = v.address + read[i]["偏移"], flags = read[i]["类型"]} end t = gg.getValues(t) for _a, x in ipairs(t) do if x.value ~= read[i]["值"] then Result[_a] = nil end end local MS = {} for i, v in pairs(Result) do MS[#MS + 1] = Result[i] end Result = MS end if (#Result > 0) then local data = {{}, {}} for i, v in ipairs(Result) do for a, x in ipairs(write) do if x["冻结"] == true then data[2][#data[2] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"], freeze = true} else data[1][#data[1] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启成功,共搜索" .. #Result .. "条地址\n已修改" .. (#data[1] + #data[2]) .. "条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启失败,未搜索到数据") end end function xqmnb(x) local tp1 = {["内存"] = x[1]["memory"], ["主特征码"] = x[3]["value"], ["类型"] = x[3]["type"], ["name"] = x[2]["name"]} for i = 4, #x do tp1[#tp1 + 1] = {["值"] = x[i]["lv"], ["偏移"] = x[i].offset, ["类型"] = x[i].type} end local tp2 = {} for i, v in ipairs(qmxg) do tp2[#tp2 + 1] = {["值"] = v.value, ["类型"] = v.type, ["偏移"] = v.offset, ["冻结"] = (v.freeze or nil)} end SearchWrite(tp1, tp2) end function fastsearch(search, write, we) gg.setVisible(false) gg.clearResults() -- ① 主搜索 gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) local count = gg.getResultsCount() if count == 0 then if we then gg.toast(we .. " -> 主特征不存在") end return false end local result = gg.getResults(count) gg.clearResults() -- ② 多段过滤(极简优化) for i = 2, #search do local off, flag, val = search[i][2], search[i][3], search[i][1] local addr = {} for j = 1, #result do addr[j] = {address = result[j].address + off, flags = flag} end local v = gg.getValues(addr) local hook = {} local h = 1 for j = 1, #v do if v[j].value == val then hook[h] = result[j] h = h + 1 end end result = hook if #result == 0 then if we then gg.toast(we .. " -> 过滤失败") end return false end end -- ③ 写入 + 保存(极速单循环) local setList = {} local freezeList = {} local s, f = 1, 1 for i = 1, #result do local base = result[i] for j = 1, #write do local w = write[j] local item = { address = base.address + w[2], flags = w[3], value = w[1] } if w[4] then freezeList[f] = item f = f + 1 else setList[s] = item s = s + 1 end end end -- ④ 批量执行(关键提速点) if setList[1] then gg.setValues(setList) end if freezeList[1] then gg.addListItems(freezeList) end if we then gg.toast(we .. " -> 完成:" .. (#setList + #freezeList)) end return result end -------------------- local Ranges = gg.getRangesList('/') local function Read(module, type) for k, v in pairs(Ranges) do if v['internalName']:match('[^/]*$') == module and v['type'] == type then return v['start'] end end return nil end local Table = {} local function Modify(address, value, flags) Table[#Table + 1] = {address = address, value = value, flags = flags} gg.setValues(Table) gg.setVisible(false) end -- ========== 通用修改函数(支持修改/恢复使用不同数据类型) ========== function applyModList(module, type, modList, restore) local base = Read(module, type) if not base then gg.toast("模块未找到: " .. module .. " (" .. type .. ")") return end for _, item in ipairs(modList) do local addr = base + item.offset if restore then -- 恢复时:优先用 originalFlags,否则沿用 flags local restoreFlags = item.originalFlags or item.flags Modify(addr, item.original or item.value, restoreFlags) else -- 修改时:用正常 value 和 flags Modify(addr, item.value, item.flags) end end gg.setValues(Table) gg.setVisible(false) end ----------------------------------------------------------------------------------------------- e1_state = false e1_value = 1 e5_dark_state = false function Main() menu1 = gg.choice({ "💎碰撞箱范围💎 | 状态:" .. (e1_state and "开启" or "关闭") .. " | 数值:" .. e1_value, "💎碰撞箱自调💎", "💎蹦蹦枪范围💎", "💎除雾亮透💎", "💎地图暗透💎 | 状态:" .. (e5_dark_state and "开启" or "关闭"), "💎武器功能💎", "💎💎", "💎💎", "💎💎", "💎💎", "💎修改伤害倍率💎", "💎武器碰撞箱范围💎", "💎范围功能💎", "💎全火功能💎", "💎其他功能💎", "💎切悬浮窗💎", "️️💎退出💎️️", },nil, os.date("")) if menu1 == 1 then e1() end if menu1 == 2 then e2() end if menu1 == 3 then e3() end if menu1 == 4 then e4() end if menu1 == 5 then e5() end if menu1 == 6 then e6() end if menu1 == 7 then e7() end if menu1 == 8 then e8() end if menu1 == 9 then e9() end if menu1 == 10 then e10() end if menu1 == 11 then e11() end if menu1 == 12 then e12() end if menu1 == 13 then E() end if menu1 == 14 then S() end if menu1 == 15 then MENU = 2 T() end if menu1 == 16 then e16() end if menu1 == 17 then Exit() end XGCK=-1 end ------------------------------------------------------------------------------------------------------------ e1_state = false e1_value = 1 function try_static_modify(value) local base = Read('libunity.so:bss', 'rw-p') if base == nil or base == 0 then gg.toast("静态基址:libunity.so:bss 未找到,切换备用方案") return false end local addr = base + 0x99350 Modify(addr, value, 16) local check = gg.getValues({{address = addr, flags = gg.TYPE_FLOAT}}) if math.abs(check[1].value - value) > 0.0001 then gg.toast("静态基址:修改未生效,切换备用方案") return false end return true end function fallback_modify(value, name) qmnb = { {["memory"] = 16}, {["name"] = name}, {["value"] = 0.2820947766304016, ["type"] = 16}, {["lv"] = 16, ["offset"] = 0x25C0, ["type"] = 4}, {["lv"] = 0.1725490242242813, ["offset"] = -0x113C, ["type"] = 16}, {["lv"] = 4, ["offset"] = -0x1028, ["type"] = 4}, } qmxg = { {["value"] = value, ["offset"] = -0x140, ["type"] = 16}, } xqmnb(qmnb) end function e1() local target_val if math.abs(e1_value - 1.0) > 0.0001 then target_val = 1.0 -- 强制关闭 else target_val = 1.3 -- 正常开启 end local ok = try_static_modify(target_val) if not ok then fallback_modify(target_val, "碰撞箱范围") end if target_val == 1.3 then e1_state = true e1_value = 1.3 gg.toast("💎 碰撞箱范围:开启") else e1_state = false e1_value = 1.0 gg.toast("💎 碰撞箱范围:关闭") end gg.sleep(80) end function e2() local ran = gg.prompt({ '碰撞箱范围自调', }, { '2.2', }, { 'number', }) if ran == nil then return end local custom_val = tonumber(ran[1]) local ok = try_static_modify(custom_val) if not ok then fallback_modify(custom_val, "碰撞箱范围自调") end e1_value = custom_val e1_state = (custom_val ~= 1.0) gg.toast("碰撞箱范围自调:" .. custom_val) end function e3()--蹦蹦枪爆炸范围 local ran = gg.prompt({ '蹦蹦枪爆炸范围', '蹦蹦枪子弹大小', '勾选恢复全部原函数' },{ '1.2', '70', false },{ 'number', 'number', 'checkbox' }) if ran == nil then return end local restore = ran[3] local qa = ran[1] -- 你输入的自定义值 local qw = ran[2] -- 你输入的自定义值 local modList = { -- 主地址(固定值) {offset = 0x197D22C, value = 469876744, original = -1119739288, flags = 4},--子弹大小 {offset = 0x197D22C + -0xA18, value = 335601664, original = -1119720864, flags = 4},--爆炸范围 {offset = 0x197D22C + 0x375E8, value = 469762112, original = -113245535, flags = 4}, {offset = 0x197D22C + 0x375EC, value = 402595840, original = 960580648, flags = 4}, {offset = 0x197D22C + 0x3800, value = qw, original = 1426063201, flags = 16, originalFlags = 4}, {offset = 0x197D22C + 0x375F0, value = qa, original = -1749522724, flags = 16, originalFlags = 4} } applyModList('libil2cpp.so', 'r-xp', modList, restore) gg.setVisible(false) gg.toast("蹦蹦枪爆炸范围+子弹大小") end function e35()--蹦蹦枪爆炸范围 fastsearch({ {0.7499999403953552,16,32}, {10, -0xD0, 16}, }, { {1.2, -0xCC, 16}, {70, 0x108, 16}}) gg.toast("蹦蹦枪爆炸范围") end --1C0爆炸延迟 function e33() -- 蹦蹦枪爆炸范围 local ran = gg.prompt({ '爆炸范围(0=不修改)', '子弹大小(0=不修改)' },{ '1.2', '70' },{ 'number', 'number' }) if ran == nil then return end local write = {} if tonumber(ran[1]) ~= 0 then table.insert(write, { tonumber(ran[1]), -0xCC, 16 }) end if tonumber(ran[2]) ~= 0 then table.insert(write, { tonumber(ran[2]), 0x108, 16 }) end if #write == 0 then gg.toast("未修改任何数据") return end fastsearch({ {0.7499999403953552,16,32}, {10,-0xD0,16}, }, write) gg.toast("蹦蹦枪修改完成") end function e4() local addr = GotoPointer( staticstart({"libil2cpp.so", "Cd", 1}), {0x2792B8, 0xB8, 0x8, 0x1D0}) if addr ~= 0 then gg.setValues({{address = addr, flags = 4, value = 16777216}}) gg.setVisible(false) local check = gg.getValues({{address = addr, flags = gg.TYPE_DWORD}}) if check[1].value == 16777216 then gg.toast("💎 除雾亮透已启用") return end end gg.toast("未识别到模块,开启备用方案") qmnb = { {["memory"] = 32}, {["name"] = "除雾透视"}, {["value"] = 0.4000000059604645, ["type"] = 16}, {["lv"] = 2, ["offset"] = 4, ["type"] = 16}, {["lv"] = 25, ["offset"] = 0x54, ["type"] = 4}, } qmxg = { {["value"] = 16777216, ["offset"] = 0x1AC, ["type"] = 4}, } xqmnb(qmnb) end function e5() -- 地图暗透 if e5_dark_state then Modify(Read('libil2cpp.so', 'r-xp') + 0x2F8C090, 505946112, 4)--地图 Modify(Read('libil2cpp.so', 'r-xp') + 0x2665B2C, 505422080, 4)--人物 Modify(Read('libil2cpp.so', 'r-xp') + 0x2F86710, 960811624, 4)--夹子 e5_dark_state = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2F8C090, -721215457, 4) Modify(Read('libil2cpp.so', 'r-xp') + 0x2665B2C, -721215457, 4) Modify(Read('libil2cpp.so', 'r-xp') + 0x2F86710, 960819816, 4) e5_dark_state = true end end function e6() local funcs = { {offset = 0x3240EB4, on = 285999368, off = 1358955784, name = "无限子弹"}, {offset = 0x323BAA4, on = -721215457, off = 505415936, name = "武器间隔"}, {offset = 0x3351758, on = 1384120320, off = 1384120352, name = "锁定子弹"}, {offset = 0x1843F34, on = -721215457, off = 505948160, name = "无后坐力"} } gg.setVisible(false) local choice = gg.multiChoice({ "无限子弹开启", "武器间隔开启", "锁定子弹开启", "无后坐力开启", "无限子弹关闭", "武器间隔关闭", "锁定子弹关闭", "无后坐力关闭" }) if not choice then return end for i = 1, 4 do if choice[i] and choice[i + 4] then gg.alert("“" .. funcs[i].name .. "”不能同时开启和关闭,请重新选择") return end end local base = Read('libil2cpp.so', 'r-xp') local mainOK = false if base then Table = {} for i = 1, 4 do if choice[i] then Modify(base + funcs[i].offset, funcs[i].on, 4) elseif choice[i + 4] then Modify(base + funcs[i].offset, funcs[i].off, 4) end end if #Table > 0 then mainOK = true end end if mainOK then gg.toast("修改完成(主方案)") return end gg.toast("主方案失效,尝试备用特征码...") qmxg = {} for i = 1, 4 do if choice[i] then if i == 1 then -- 无限子弹 qmxg[#qmxg+1] = {["value"] = 1300, ["offset"] = 0x2B8, ["type"] = 4, ["freeze"] = true} elseif i == 2 then -- 武器间隔 qmxg[#qmxg+1] = {["value"] = 0, ["offset"] = 0x290, ["type"] = 4, ["freeze"] = true} elseif i == 3 then -- 锁定子弹 qmxg[#qmxg+1] = {["value"] = 0, ["offset"] = 0x2B4, ["type"] = 4, ["freeze"] = true} qmxg[#qmxg+1] = {["value"] = 0, ["offset"] = 0x2B0, ["type"] = 4, ["freeze"] = true} elseif i == 4 then -- 秒换子弹 qmxg[#qmxg+1] = {["value"] = 0, ["offset"] = 0x28c, ["type"] = 4, ["freeze"] = true} end end end if #qmxg == 0 then gg.toast("未勾选任何开启功能,备用方案未执行") return end local qmnb = { {["memory"] = 32}, {["name"] = "武器"}, {["value"] = 15, ["type"] = 16}, {["lv"] = 1050253722, ["offset"] = -4, ["type"] = 4}, {["lv"] = 1, ["offset"] = 0x274, ["type"] = 16}, } xqmnb(qmnb) -- 注意:xqmnb 函数未定义,请确保它存在 gg.toast("备用方案:已开启勾选功能") end function e11() local ran = gg.prompt({'修改伤害倍率\n恢复原值:1'}, {'1.05'}, {'number'}) if ran == nil then return end local base = Read('libil2cpp.so', 'r-xp') if not base then gg.toast('libil2cpp.so 未找到') return end local mainAddr = base + 0x2672048 Modify(mainAddr, 335601664, 4) Modify(mainAddr + 0x38000, 469762113, 4) Modify(mainAddr + 0x38004, 402595840, 4) Modify(mainAddr + 0x38008, ran[1], 16) end function e12() local ran = gg.prompt({'武器碰撞箱\n恢复原值:0.5'}, {'1.2'}, {'number'}) if ran == nil then return end local base = Read('libunity.so', 'r-xp') if not base then gg.toast('libunity.so 未找到') return end local mainAddr = base + 0x3E5870 Modify(mainAddr, 335601664, 4) Modify(mainAddr + 0x38000, 469762144, 4) Modify(mainAddr + 0x38004, -1124044832, 4) Modify(mainAddr + 0x38008, 402595839, 4) Modify(mainAddr + 0x3800C, ran[1], 16) end function e16() FloatSwitch = not FloatSwitch if FloatSwitch then -- 悬浮窗模式(小窗) gg.showUiButton() gg.toast("已切换:悬浮窗模式") -- 防止UI残留 if gg.isVisible(true) then gg.setVisible(false) Main() end else -- 全屏模式 gg.hideUiButton() gg.toast("已切换:全屏模式") -- 确保关闭UI窗口 if gg.isVisible(true) then gg.setVisible(false) Main() end end end e1_dark_state = false function E() menu1 = gg.multiChoice({ "💎 视角大小 💎", "💎 手雷范围 💎", "💎 酒桶范围 💎", "💎小飞机功能💎", "💎 全屏导弹 💎 | 状态:" .. (e1_dark_state and "开启" or "关闭"), "💎 开物范围 💎", "️💎 💎", "💎💎", "💎💎", "💎💎", "️️💎返回主页💎️️", }, nil, os.date("秒开的都是全局的 搜索的一局一开")) if menu1 == nil then else if menu1[1] == true then x1() end if menu1[2] == true then x2() end if menu1[3] == true then x3() end if menu1[4] == true then x4() end if menu1[5] == true then x5() end if menu1[6] == true then x6() end if menu1[7] == true then x7() end if menu1[8] == true then x8() end if menu1[9] == true then x9() end if menu1[10] == true then x10() end if menu1[11] == true then HOME() end end GLWW=-1 end function x1() local ran = gg.prompt({ "视角大小" }, { '15' }, { 'number' }) if ran == nil then return end -- 主方案:静态指针 local addr = GotoPointer( staticstart({"libil2cpp.so", "Cd", 1}), {0x260768, 0x8C8, 0x20, 0xE0}) if addr ~= 0 then gg.setValues({{address = addr, flags = 16, value = tonumber(ran[1])}}) gg.setVisible(false) local check = gg.getValues({{address = addr, flags = gg.TYPE_DWORD}}) if check[1].value == tonumber(ran[1]) then gg.toast("💎 视角大小已启用") return end end -- 备用方案:特征码修改(直接使用上面的输入值) gg.toast("未识别到模块,开启备用方案") qmnb = { {["memory"] = 32}, {["name"] = "视角范围自调"}, {["value"] = 55.00000762939, ["type"] = 16}, {["lv"] = 100, ["offset"] = 32, ["type"] = 16}, } qmxg = { {["value"] = ran[1], ["offset"] = 36, ["type"] = 16}, } xqmnb(qmnb) end function x2()-- local ran = gg.prompt({ "手雷范围" -- 提示里带默认值和范围,风格一致 }, { '2.08' -- 默认值 }, { 'number' -- 类型 }) if ran == nil then return end fastsearch({ {2.0625,16,32}, {6, 0x2c, 4}, {6, 0x9c, 4} }, { {ran[1], 0x70, 16} }) gg.toast("手雷范围") end function x3()-- ran= gg.prompt({[1]="酒桶范围"}, {[1]="3"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 fastsearch({ {2.96875,16,32}, {6, 0x9c, 4}, }, { {ran[1], 0x70, 16} }) gg.toast("酒桶范围") end end function x4()--小飞机子弹爆炸范围 local ran = gg.prompt({ '爆炸范围', '子弹数量', '0金币消耗', '子弹释放无间隔', '勾选恢复全部函数' },{ '2.5', '2', false, false, false },{ 'number', 'number', 'checkbox', 'checkbox', 'checkbox' }) if ran == nil then return end local restoreAll = ran[5] local mod1 = ran[3] local mod2 = ran[4] local qa1 = ran[1] local qa2 = ran[2] local modList = { {offset = 0x3400988 + 0x38000, value = qa1, original = 0, flags = 16}, {offset = 0x3400988 + 0x38004, value = qa2, original = 0, flags = 4}, {offset = 0x3400988, value = 471597056, original = -1119870304, flags = 4}, {offset = 0x3400988 + -0x3C8, value = 404495969, original = -1186980607, flags = 4}, {offset = 0x3400988 + -0x18FF358, value = mod1 and 310410432 or -1186983680, original = -1186983680, flags = 4}, {offset = 0x3400988 + 0x11C7D8, value = mod2 and 479052168 or -1119869688, original = -1119869688, flags = 4}, {offset = 0x3400988 + 0x38008, value = mod2 and 0 or -1119869688, original = -112950008, flags = 4} } applyModList('libil2cpp.so', 'r-xp', modList, restoreAll) gg.toast("小飞机子弹爆炸范围") end function x5() --导弹范围 if e1_dark_state then Modify(Read('libil2cpp.so', 'r-xp') + 0x16F5C0C, 505552896, 4) e1_dark_state = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x16F5C0C, -721215457, 4) e1_dark_state = true end end function x6()-- qc=gg.alert("没效果就用另一个","第一方案","第二方案","取消") if qc==1 then local ran = gg.prompt({ '人物开物范围', },{ '3.1', },{ 'number', }) if ran == nil then return end fastsearch({ {900,16,32}, {1, 0x8, 16}, {-14, 0x40, 16}, }, { {ran[1], -0x2C, 16} }) gg.toast("人物开物范围") end if qc==2 then ran= gg.prompt({[1]="人物开物范围"}, {[1]="3.1"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 fastsearch({ {900,16,32}, {1, 0x8, 16}, {-14, -0x2C, 16} }, { {ran[1], 0x54, 16} }) gg.toast("人物开物范围") end end end function x588() -- 小飞机功能 local ran = gg.prompt({ "金币消耗 原60", "子弹数量 原2", "子弹范围 原2", "攻击间隔 原0.3" }, { "0", "", "2.5", "" }, { "text", "text", "text", "text" }) if ran == nil then return end local z = tonumber(ran[1]) or nil local x = tonumber(ran[2]) or nil local c = tonumber(ran[3]) or nil local d = tonumber(ran[4]) or nil if z == nil and x == nil and c == nil and d == nil then return end qmnb = { {["memory"] = 32}, {["name"] = "小飞机功能"}, {["value"] = 5.5, ["type"] = 16}, {["lv"] = 0.30000001192092896, ["offset"] = -0x4, ["type"] = 16}, {["lv"] = 1.899999976158142, ["offset"] = -0x8, ["type"] = 16}, {["lv"] = 45, ["offset"] = -0x110, ["type"] = 4}, } qmxg = {} if z ~= nil then table.insert(qmxg, {["value"] = z, ["offset"] = -0x118, ["type"] = 4}) end if x ~= nil then table.insert(qmxg, {["value"] = x, ["offset"] = -0x10C, ["type"] = 4}) end if c ~= nil then table.insert(qmxg, {["value"] = c, ["offset"] = -0x108, ["type"] = 16}) end if d ~= nil then table.insert(qmxg, {["value"] = d, ["offset"] = -0x104, ["type"] = 16}) end xqmnb(qmnb, qmxg) end function gh()-- ran= gg.prompt({[1]="腕炮范围"}, {[1]="3.1"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 fastsearch({ {1068708659,4,32}, {145, -0x1D4c, 4}, }, { {ran[1], -0x1c0, 16} }) gg.toast("腕炮范围") end end function f5()-- ran= gg.prompt({[1]="腕炮灼烧范围"}, {[1]="3.1"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 fastsearch({ {1.70158004761,16,32}, {1, 0x268, 16}, {1041194025, 0x1C4, 4}, }, { {ran[1], 0x15C, 16} }) gg.toast("腕炮灼烧范围") end end function e555()-- ran= gg.prompt({[1]="拳套击退范围"}, {[1]="3.1"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 fastsearch({ {1.64999997616,16,32}, {6, 0x2C, 4}, {6, 0x9C, 4} }, { {ran[1], 0x70, 16} }) gg.toast("拳套击退范围") end end local f_state = {} -- 每个功能的状态,默认 false(关闭) function S() local options = { "💎 移动速度 💎 | 状态: " .. (f_state[1] and "开启" or "关闭"), "💎 超级移速 💎 | 状态: " .. (f_state[1] and "开启" or "关闭"), "跳跃高度+解除伤害限制+医疗箱杀队友[有bug谨慎使用] | 状态: " .. (f_state[3] and "开启" or "关闭"), "💎 灵魂出窍 💎 | 状态: " .. (f_state[4] and "开启" or "关闭"), "💎 开物速度 💎 | 状态: " .. (f_state[5] and "开启" or "关闭"), "💎杀队友[有bug]💎 | 状态: " .. (f_state[6] and "开启" or "关闭"), "💎 无视倒地Pro max 💎 | 状态: " .. (f_state[7] and "开启" or "关闭"), "💎 道具无冷却 💎 | 状态: " .. (f_state[8] and "开启" or "关闭"), "💎 💎 | 状态: " .. (f_state[9] and "开启" or "关闭"), "💎 人机局终极支援 💎 | 状态: " .. (f_state[10] and "开启" or "关闭"), "💎 摸下锁激活逃生门 💎 | 状态: " .. (f_state[11] and "开启" or "关闭"), "💎 火箭筒射程 💎 | 状态: " .. (f_state[12] and "开启" or "关闭"), "🔧 追捕倒地秒复活 🔧 | 状态: " .. (f_state[13] and "开启" or "关闭"), "🔧 秒开箱子夹子 | 状态: " .. (f_state[14] and "开启" or "关闭"), "🔧 不死捐钱残缺版 🔧 | 状态: " .. (f_state[15] and "开启" or "关闭"), "🔧 🔧 | 状态: " .. (f_state[16] and "开启" or "关闭"), "🔧 预留5 🔧 | 状态: " .. (f_state[17] and "开启" or "关闭"), "🔧 预留6 🔧 | 状态: " .. (f_state[18] and "开启" or "关闭"), "🔧 预留7 🔧 | 状态: " .. (f_state[19] and "开启" or "关闭"), "🔧 预留8 🔧 | 状态: " .. (f_state[20] and "开启" or "关闭"), "🔧 预留9 🔧 | 状态: " .. (f_state[21] and "开启" or "关闭"), "🔧 预留10 🔧 | 状态: " .. (f_state[22] and "开启" or "关闭"), " 💎返回主页💎", } -- 用 pcall 捕获 multiChoice 的所有异常 local ok, menu1 = pcall(gg.multiChoice, options, nil, os.date("8.39.0功能")) if not ok then return end -- 如果 menu1 不是表,或者为空表,直接返回 if type(menu1) ~= "table" then return end -- 检查是否为空表 local hasKey = false for _ in pairs(menu1) do hasKey = true break end if not hasKey then return end -- 安全获取键值(使用 rawget 避免元表干扰) local function get(t, k) return rawget(t, k) end -- 用 pcall 包裹所有操作,防止任何未预见错误 pcall(function() if get(menu1, 1) then s1() end if get(menu1, 2) then s2() end if get(menu1, 3) then s3() end if get(menu1, 4) then s4() end if get(menu1, 5) then s5() end if get(menu1, 6) then s6() end if get(menu1, 7) then s7() end if get(menu1, 8) then s8() end if get(menu1, 9) then s9() end if get(menu1, 10) then s10() end if get(menu1, 11) then s11() end if get(menu1, 12) then s12() end if get(menu1, 13) then s13() end if get(menu1, 14) then s14() end if get(menu1, 15) then s15() end if get(menu1, 16) then s16() end if get(menu1, 17) then s17() end if get(menu1, 18) then s18() end if get(menu1, 19) then s19() end if get(menu1, 20) then s20() end if get(menu1, 21) then s21() end if get(menu1, 22) then s22() end if get(menu1, 23) then Main() end GLWW = -1 end) end function s1() -- 移动速度 if f_state[1] then Modify(Read('libil2cpp.so', 'r-xp') + 0x2682BC4, 505957376, 4) f_state[1] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2682BC4, -721215457, 4) f_state[1] = true end end function s2() -- 移动速度 if f_state[1] then Modify(Read('libil2cpp.so', 'r-xp') + 0x2682BC4, 505957376, 4) f_state[1] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2682BC4, 505909248, 4) f_state[1] = true end end function s3() -- 跳跃高度 if f_state[3] then Modify(Read('libil2cpp.so', 'r-xp') + 0x2BE8388, 505873376, 4) f_state[3] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2BE8388, -721215457, 4) f_state[3] = true end end function s4() -- 灵魂出窍(悬浮窗单击切换,0.5秒内双击退出) gg.showUiButton() gg.setVisible(false) local lastClickTime = 0 local threshold = 0.5 -- 双击间隔时间 -- 首次进入自动开启 Modify(Read('libil2cpp.so', 'r-xp') + 0x387EE98, -721215457, 4) for i, v in ipairs(Table) do v.freeze = false end gg.addListItems(Table) f_state[4] = true Table = {} gg.toast("灵魂出窍:已开启\n单击切换,0.5秒内双击退出") while true do if gg.isClickedUiButton() then local now = os.clock() if now - lastClickTime <= threshold then -- 双击:先关闭功能,再退出 Modify(Read('libil2cpp.so', 'r-xp') + 0x387EE98, 505487360, 4) f_state[4] = false Table = {} gg.toast("灵魂出窍:已退出") return else -- 单击:切换开关 if f_state[4] then Modify(Read('libil2cpp.so', 'r-xp') + 0x387EE98, 505487360, 4) f_state[4] = false Table = {} gg.setVisible(false) gg.toast("灵魂出窍:已关闭") else Modify(Read('libil2cpp.so', 'r-xp') + 0x387EE98, -721215457, 4) f_state[4] = true Table = {} gg.setVisible(false) gg.toast("灵魂出窍:已开启") end lastClickTime = now end end gg.sleep(50) end end function s5() -- 开物速度 if f_state[5] then Modify(Read('libil2cpp.so', 'r-xp') + 0x1D75690, 505422080, 4) f_state[5] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x1D75690, -721215457, 4) f_state[5] = true end end function s6() -- 杀队友 if f_state[6] then Modify(Read('libil2cpp.so', 'r-xp') + 0x2675500, 1796407967, 4) f_state[6] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2675500, -721215457, 4) f_state[6] = true end end function s7() -- 无视倒地 if f_state[7] then Modify(Read('libil2cpp.so', 'r-xp') + 0xC34A98, 505487360, 4) f_state[7] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0xC34A98, -721215457, 4) f_state[7] = true end end function s8() -- 道具无冷却 if f_state[8] then local base = Read('libil2cpp.so', 'r-xp') local mainAddr = base + 0x2F5B848 Modify(mainAddr, 505487360, 4) Modify(mainAddr + 0x148, 505421832, 4) Modify(mainAddr + 0x1B54, 505421832, 4) Modify(mainAddr + 0x1F1C, 505421832, 4) Modify(mainAddr + 0x2754, 505421832, 4) Modify(mainAddr + 0x3338, 505421832, 4) Modify(mainAddr + 0x3A74, 505421832, 4) Modify(mainAddr + 0x6960, 505421832, 4) f_state[8] = false else local base = Read('libil2cpp.so', 'r-xp') local mainAddr = base + 0x2F5B848 Modify(mainAddr, -721215457, 4) Modify(mainAddr + 0x148, -721215457, 4) Modify(mainAddr + 0x1B54, -721215457, 4) Modify(mainAddr + 0x1F1C, -721215457, 4) Modify(mainAddr + 0x2754, -721215457, 4) Modify(mainAddr + 0x3338, -721215457, 4) Modify(mainAddr + 0x3A74, -721215457, 4) Modify(mainAddr + 0x6960, -721215457, 4) f_state[8] = true end end function s9() -- 支援金币(2个偏移) if f_state[9] then Modify(Read('libil2cpp.so', 'r-xp') + 0x57228B8, 505946112, 4) Modify(Read('libil2cpp.so', 'r-xp') + 0x5721750, 505487360, 4) f_state[9] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x57228B8, -721215457, 4) Modify(Read('libil2cpp.so', 'r-xp') + 0x5721750, -721215457, 4) f_state[9] = true end end function s10() -- 终极支援(2个偏移) if f_state[10] then local base = Read('libil2cpp.so', 'r-xp') local mainAddr = base + 0x59F38B8 Modify(mainAddr, 505946112, 4) Modify(mainAddr + -0x85C, 505487360, 4) Modify(mainAddr + 0x314, -1191170424, 4) f_state[10] = false else local base = Read('libil2cpp.so', 'r-xp') local mainAddr = base + 0x59F38B8 Modify(mainAddr, -721215457, 4) Modify(mainAddr + -0x85C, -721215457, 4) Modify(mainAddr + 0x314, -721215457, 4) f_state[10] = true end gg.setVisible(false) end function s11() -- 激活逃生门(5个偏移) if f_state[11] then Modify(Read('libil2cpp.so', 'r-xp') + 0x1D6D2D0, 505422080, 4) f_state[11] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x1D6D2D0, -721215457, 4) f_state[11] = true end end function s12() -- 火箭筒射程 if f_state[12] then Modify(Read('libil2cpp.so', 'r-xp') + 0x169C0D0, 505873376, 4) f_state[12] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x169C0D0, -721215457, 4) f_state[12] = true end end function s13() -- 追捕倒地秒复活 if f_state[13] then Modify(Read('libil2cpp.so', 'r-xp') + 0x2A65980, 505424160, 4) f_state[13] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x2A65980, -721215457, 4) f_state[13] = true end end function s14() -- 秒开箱子夹子 if f_state[14] then Modify(Read('libil2cpp.so', 'r-xp') + 0x1D72830, 505957376, 4) f_state[14] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x1D72830, -721215457, 4) f_state[14] = true end end function s15() -- 不死捐钱 if f_state[15] then Modify(Read('libil2cpp.so', 'r-xp') + 0x567D768, 960545048, 4) f_state[15] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0x567D768, 960496920, 4) f_state[15] = true end end e1_dark_state = false function T() menu1 = gg.multiChoice({ "💎 移动速度 💎", "💎 跳跃高度 💎", "💎改道具等级(大厅开)💎", "💎 穿透墙体 💎", "💎 体型大小 💎", "💎 视角大小 💎", "💎 视角基址 💎", "💎 人物坐标 💎", "💎进入ai托管💎 | 状态: " .. (f_state[1] and "开启" or "关闭"), "💎手雷改道具💎", "💎拳套改道具💎", "💎 范围回血 💎", " 💎返回主页💎", }, nil, os.date("结束此局自身必须100血")) if menu1 == nil then else if menu1[1] == true then t1() end if menu1[2] == true then t2() end if menu1[3] == true then t3() end if menu1[4] == true then t4() end if menu1[5] == true then t5() end if menu1[6] == true then t6() end if menu1[7] == true then t7() end if menu1[8] == true then t8() end if menu1[9] == true then t9() end if menu1[10] == true then t10() end if menu1[11] == true then t11() end if menu1[12] == true then t12() end if menu1[13] == true then MENU = 1 HOME() end end GLWW=-1 end function t1()-- ran= gg.prompt({[1]="人物移速自调\n恢复原值:1"}, {[1]="3"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 32}, {["name"] = "移速自调"}, {["value"] = -14, ["type"] = 16}, {["lv"] = 20,["offset"] = -12, ["type"] = 16}, {["lv"] = 1,["offset"] = 0x64, ["type"] = 16}, } qmxg = { {["value"] = ran[1],["offset"] = -8, ["type"] = 16}, } xqmnb(qmnb) end end function t2()-- local ran = gg.prompt({ '人物跳跃高度\n恢复原值:1', },{ '3' },{ 'number', }) if ran == nil then return end fastsearch({ {900,16,32}, {1, 0x8, 16}, {-14, 0x40, 16}, }, { {ran[1], 0x94, 16} }) gg.toast("人物跳跃高度") end function t3()--道具等级 gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("501900;1~30;1~13;1~13;1~13;1~13;1~13;1~13::400", gg.TYPE_DWORD) gg.getResults(100000) zm = gg.prompt({ i = "输入你想要改的等级" }, {i = ""}) gg.editAll(zm.i, gg.TYPE_DWORD) gg.toast("道具等级修改成功") end function t4() local ran = gg.prompt({ '子弹飞爪可穿透墙体改0\n仅人物穿透墙体改10\n改0卡脚 改10可丝滑穿墙', },{ '10', },{ 'number', }) if ran == nil then return end qmnb = { {["memory"] = 32}, {["name"] = "穿透墙体"}, {["value"] = 8.88423226381934E-43, ["type"] = 16}, {["lv"] = 683, ["offset"] = 0x78, ["type"] = 4}, {["lv"] = 2049, ["offset"] = 0x1F0, ["type"] = 4}, } qmxg = { {["value"] = ran[1],["offset"] = 0x70, ["type"] = 4}, } xqmnb(qmnb) end function t5()-- local ran = gg.prompt({ '体型大小', },{ '5', },{ 'number', }) if ran == nil then return end fastsearch({ {0.5,16,32}, {-0.5, 8, 16}, {1, -24, 16}, {1017040560, -8, 4}, {0.8, 460, 16} }, { {ran[1], -0x50, 16}, {ran[1], -0x4C, 16}, {ran[1], -0x48, 16} }) end function t6()--视角范围 ran= gg.prompt({[1]="视角范围自调"}, {[1]="12"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 32}, {["name"] = "视角范围自调"}, {["value"] = 55.00000762939, ["type"] = 16}, {["lv"] = 100, ["offset"] = 32, ["type"] = 16}, } qmxg = { {["value"] = ran[1],["offset"] = 36, ["type"] = 16}, } xqmnb(qmnb) end end function t8() -- 人物坐标 local ran = gg.prompt({ "上下(z)", "左右(x)", "高度(c)" }, { "", "", "" }, { "text", "text", "text" }) if ran == nil then return end local z = tonumber(ran[1]) or nil local x = tonumber(ran[2]) or nil local c = tonumber(ran[3]) or nil if z == nil and x == nil and c == nil then return end qmnb = { {["memory"] = 32}, {["name"] = "人物坐标"}, {["value"] = 0.15000000596, ["type"] = 16}, {["lv"] = -10, ["offset"] = 0x10, ["type"] = 16}, {["lv"] = 49, ["offset"] = 0x24, ["type"] = 16}, } qmxg = {} if z ~= nil then table.insert(qmxg, {["value"] = z, ["offset"] = -0x24, ["type"] = 16}) end if x ~= nil then table.insert(qmxg, {["value"] = x, ["offset"] = -0x2C, ["type"] = 16}) end if c ~= nil then table.insert(qmxg, {["value"] = c, ["offset"] = -0x28, ["type"] = 16}) end xqmnb(qmnb, qmxg) gg.toast("坐标修改完成") end function t9()--Ai托管 if f_state[1] then Modify(Read('libil2cpp.so', 'r-xp') + 0xC33D48, 2034237704, 4) f_state[1] = false else Modify(Read('libil2cpp.so', 'r-xp') + 0xC33D48, -721215457, 4) f_state[1] = true end for i, v in ipairs(Table) do v.freeze = false end gg.addListItems(Table) end function t10()-- ran= gg.prompt({[1]="ㅤ\nㅤ 皮卡111 毒液1000 飞爪801\n 疾跑200 滑板1001 自走球901\n 跳高201 魔法墙1002 拳套1012\n侦查眼300 引力场1003 不明1013\n阻挡箱301 治疗球1004 吼吼号1016\n手榴弹400 充气垫1005 浮游炮10006\n医疗箱401 导弹1006 幻影爪10007\n 雷达600 追踪雷1007 导弹70001\n巡逻犬700 震荡波1008 夹子70002\n 针701 小飞机1009 时光机70003\n 酒桶800 时光机1010 皮卡70004\n传送门900 跳跳杆1011\n铁拳虎爪9008001火焰鹤扇9080002冰封鹿炮9008003神木猿镖9008004石甲熊锺9008005"}, {[1]=""}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 32}, {["name"] = "手雷改道具"}, {["value"] = 127, ["type"] = 4}, {["lv"] = 12,["offset"] =8, ["type"] = 4}, {["lv"] = 477,["offset"] =-4, ["type"] = 4}, {["lv"] = 8,["offset"] =0x2C, ["type"] = 16}, {["lv"] = 7,["offset"] =0x28, ["type"] = 4}, } qmxg = { {["value"] = 1,["offset"] =-0x39E8, ["type"] = 4}, {["value"] = ran[1],["offset"] =-0x39E0, ["type"] = 4}, } xqmnb(qmnb) end end function t11()--拳套改道具 ran= gg.prompt({[1]="ㅤ\nㅤ 皮卡111 毒液1000 飞爪801\n 疾跑200 滑板1001 自走球901\n 跳高201 魔法墙1002 拳套1012\n侦查眼300 引力场1003 不明1013\n阻挡箱301 治疗球1004 吼吼号1016\n手榴弹400 充气垫1005 浮游炮10006\n医疗箱401 导弹1006 幻影爪10007\n 雷达600 追踪雷1007 导弹70001\n巡逻犬700 震荡波1008 夹子70002\n 针701 小飞机1009 时光机70003\n 酒桶800 时光机1010 皮卡70004\n传送门900 跳跳杆1011"}, {[1]=""}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 32}, {["name"] = "拳套改道具"}, {["value"] = 127, ["type"] = 4}, {["lv"] = 12,["offset"] =8, ["type"] = 4}, {["lv"] = 477,["offset"] =-4, ["type"] = 4}, {["lv"] = 8,["offset"] =0x2C, ["type"] = 16}, {["lv"] = 7,["offset"] =0x28, ["type"] = 4}, } qmxg = { {["value"] = 1,["offset"] =0x18, ["type"] = 4}, {["value"] = ran[1],["offset"] =0x20, ["type"] = 4}, } xqmnb(qmnb) end end function t12() -- 范围回血 local ran = gg.prompt({ "人物回血范围 原2", "回血冷却时长 原1.5", "一次回多少血 原10" }, { "777", "0", "888" }, { "text", "text", "text" }) if ran == nil then return end local z = tonumber(ran[1]) or nil local x = tonumber(ran[2]) or nil local c = tonumber(ran[3]) or nil if z == nil and x == nil and c == nil then return end qmnb = { {["memory"] = 32}, {["name"] = "回血范围"}, {["value"] = -1, ["type"] = 16}, {["lv"] = 6, ["offset"] = -0x210, ["type"] = 4}, {["lv"] = 7, ["offset"] = -0x204, ["type"] = 4}, {["lv"] = 29, ["offset"] = -0x3E4, ["type"] = 4}, } qmxg = {} if z ~= nil then table.insert(qmxg, {["value"] = z, ["offset"] = -0x28, ["type"] = 16}) end if x ~= nil then table.insert(qmxg, {["value"] = x, ["offset"] = -0x24, ["type"] = 16}) end if c ~= nil then table.insert(qmxg, {["value"] = c, ["offset"] = -0x20, ["type"] = 16}) end xqmnb(qmnb, qmxg) end function t7() -- 自己获取脚本目录,不依赖外部的 ScriptDir local ScriptDir = debug.getinfo(1, 'S').source:sub(2):match('(.*/).+') or './' local configFile = ScriptDir .. "t7_value.txt" -- 尝试读取上次保存的数值 local lastValue = 15 local f = io.open(configFile, "r") if f then local content = f:read("*a") f:close() local num = tonumber(content) if num then lastValue = num end end local ran = gg.prompt({ '视角大小 (默认' .. lastValue .. '):[1;180]', }, { tostring(lastValue), }, { 'number', }) if ran == nil then return end local newValue = tonumber(ran[1]) if newValue then -- 保存本次数值 local f = io.open(configFile, "w") if f then f:write(tostring(newValue)) f:close() end end gg.setValues({{ address = GotoPointer(staticstart({"libil2cpp.so", "Cd", 1}), {0x260768, 0x8C8, 0x20, 0xE0}), flags = 16, value = ran[1] }}) end -- ========================= -- 单入口函数 -- ========================= function t77() local function getPkg() return gg.getTargetInfo().packageName end -- ========================= -- 公共 float 转 hex -- ========================= local function floatToHex(num) local sign = 0 if num < 0 then sign = 1 num = -num end local mantissa, exponent = math.frexp(num) if num == 0 then return "00000000" end exponent = exponent + 126 mantissa = mantissa * 2 - 1 local hex = sign * 0x80000000 hex = hex + exponent * 0x00800000 for i = 1, 23 do mantissa = mantissa * 2 if mantissa >= 1 then hex = hex + 2^(23 - i) mantissa = mantissa - 1 end end return string.format("%08X", hex) end -- ========================= -- 包名1逻辑 -- ========================= local function run_app1()--4399 local fy=[=[ 16942 Var #7A36BC87A8|7a36bc87a8|4|1400e000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3fba7a8 Var #7A36C007A8|7a36c007a8|4|1c000040|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27a8 Var #7A36C007AC|7a36c007ac|4|17ff2000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27ac Var #7A36C007B0|7a36c007b0|10|41700000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27b0 ]=] local v = gg.prompt({"输入视角大小"},{"12"},{"number"}) if not v then return end local newValue = floatToHex(tonumber(v[1])) local out = {} for line in fy:gmatch("[^\n]+") do if line:find("|") then local t = {} for x in line:gmatch("[^|]+") do table.insert(t, x) end if t[4] == "41700000" then t[4] = newValue end table.insert(out, table.concat(t, "|")) else table.insert(out, line) end end io.open("/sdcard/gg.txt","w"):write(table.concat(out,"\n")) gg.loadList("/sdcard/gg.txt", gg.LOAD_VALUES) gg.setVisible(false) gg.toast("APP1 执行完成") end -- ========================= -- 包名2逻辑 -- ========================= local function run_app2()--好游快爆。vivo local fy=[=[ 19427 Var #77F55C27A8|77f55c27a8|4|1400e000|0|0|0|0|r-xp|/data/app/~~ZyQQ2ASO3s-WLAW4DhZ1wg==/com.bairimeng.dmmdzz-Ah_VFuxMaOwmXjLos2iBgA==/lib/arm64/libil2cpp.so|3fba7a8 Var #77F55FA7A8|77f55fa7a8|4|1c000040|0|0|0|0|r-xp|/data/app/~~ZyQQ2ASO3s-WLAW4DhZ1wg==/com.bairimeng.dmmdzz-Ah_VFuxMaOwmXjLos2iBgA==/lib/arm64/libil2cpp.so|3ff27a8 Var #77F55FA7AC|77f55fa7ac|4|17ff2000|0|0|0|0|r-xp|/data/app/~~ZyQQ2ASO3s-WLAW4DhZ1wg==/com.bairimeng.dmmdzz-Ah_VFuxMaOwmXjLos2iBgA==/lib/arm64/libil2cpp.so|3ff27ac Var #77F55FA7B0|77f55fa7b0|10|41700000|0|0|0|0|r-xp|/data/app/~~ZyQQ2ASO3s-WLAW4DhZ1wg==/com.bairimeng.dmmdzz-Ah_VFuxMaOwmXjLos2iBgA==/lib/arm64/libil2cpp.so|3ff27b0 ]=] local v = gg.prompt({"输入视角大小"},{"12"},{"number"}) if not v then return end local newValue = floatToHex(tonumber(v[1])) local out = {} for line in fy:gmatch("[^\n]+") do if line:find("|") then local t = {} for x in line:gmatch("[^|]+") do table.insert(t, x) end if t[4] == "41700000" then t[4] = newValue end table.insert(out, table.concat(t, "|")) else table.insert(out, line) end end io.open("/sdcard/gg.txt","w"):write(table.concat(out,"\n")) gg.loadList("/sdcard/gg.txt", gg.LOAD_VALUES) gg.setVisible(false) gg.toast("APP2 执行完成") end -- ========================= -- 自动分流核心 -- ========================= local function run_auto() local pkg = getPkg() if pkg == "com.bairimeng.dmmdzz.m4399" then run_app1() elseif pkg == "com.bairimeng.dmmdzz" then run_app2() elseif pkg == "com.bairimeng.dmmdzz.vivo" then run_app2() else gg.alert("未匹配包名:\n" .. tostring(pkg)) end end run_auto() end function t77() fy=[=[ 16942 Var #7A36BC87A8|7a36bc87a8|4|1400e000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3fba7a8 Var #7A36C007A8|7a36c007a8|4|1c000040|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27a8 Var #7A36C007AC|7a36c007ac|4|17ff2000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27ac Var #7A36C007B0|7a36c007b0|10|41700000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27b0 ]=] local function floatToHex(num) local sign = 0 if num < 0 then sign = 1 num = -num end local mantissa, exponent = math.frexp(num) if num == 0 then return "00000000" end exponent = exponent + 126 mantissa = mantissa * 2 - 1 local hex = sign * 0x80000000 hex = hex + exponent * 0x00800000 for i = 1, 23 do mantissa = mantissa * 2 if mantissa >= 1 then hex = hex + 2^(23 - i) mantissa = mantissa - 1 end end return string.format("%08X", hex) end local input = gg.prompt({ '输入你想要修改的视角大小', },{ '12', },{ 'number', }) if not input or not input[1] then return end local v = tonumber(input[1]) if not v then gg.alert("输入错误") return end local newValue = floatToHex(v) local result = {} for line in fy:gmatch("[^\n]+") do if line:find("|") then local t = {} for v in line:gmatch("[^|]+") do table.insert(t, v) end if t[4] == "41700000" then t[4] = newValue end table.insert(result, table.concat(t, "|")) else table.insert(result, line) end end local out = table.concat(result, "\n") io.open('/sdcard/gg.txt','w'):write(out) gg.loadList('/sdcard/gg.txt', gg.LOAD_VALUES) gg.setVisible(false)--运行后自动关闭gg悬浮窗 end --[[ function t7() fy=[=[ 16942 Var #7A36BC87A8|7a36bc87a8|4|1400e000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3fba7a8 Var #7A36C007A8|7a36c007a8|4|1c000040|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27a8 Var #7A36C007AC|7a36c007ac|4|17ff2000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27ac Var #7A36C007B0|7a36c007b0|10|41700000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27b0 ]=] -- ===== 新增:float转hex(关键加的)===== local function floatToHex(f) return string.format("%08X", string.unpack("I4", string.pack("f", f))) end -- ===== 输入 ===== local input = gg.prompt({ '输入你想要修改的视角大小', },{ '12', },{ 'number', }) if not input then return end -- 👉 这里新增:转换 local newValue = floatToHex(tonumber(input[1])) local result = {} for line in fy:gmatch("[^\n]+") do if line:find("|") then local t = {} for v in line:gmatch("[^|]+") do table.insert(t, v) end -- ✔ 原逻辑不变,只替换41700000 if t[4] == "41700000" then t[4] = newValue end table.insert(result, table.concat(t, "|")) else table.insert(result, line) end end local out = table.concat(result, "\n") io.open('/storage/emulated/0/可导入内存文本.txt','w'):write(out) gg.loadList('/storage/emulated/0/可导入内存文本.txt', gg.LOAD_VALUES) end ]] --[[ fy=[=[ 16942 Var #7A36BC87A8|7a36bc87a8|4|1400e000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3fba7a8 Var #7A36C007A8|7a36c007a8|4|1c000040|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27a8 Var #7A36C007AC|7a36c007ac|4|17ff2000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27ac Var #7A36C007B0|7a36c007b0|10|41700000|0|0|0|0|r-xp|/data/app/~~b2SBO6svtoaxPubUMIyFqg==/com.bairimeng.dmmdzz.m4399-KZvR-XUO70619qn0O5r6MA==/base.apk|3ff27b0 ]=] io.open('/storage/emulated/0/可导入内存文本.txt','w'):write(fy) gg.loadList('/storage/emulated/0/可导入内存文本.txt', gg.LOAD_VALUES) end ]] ----------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- function Exit() os.exit() end function HOME() MENU = 1 end MENU = 1 FloatSwitch = true gg.showUiButton() while true do if FloatSwitch then if gg.isClickedUiButton() then if MENU == 1 then Main() else T() end end else if gg.isVisible(true) then gg.setVisible(false) if MENU == 1 then Main() else T() end end end end --[[ function e66() ran= gg.prompt({[1]="蹦蹦枪爆炸范围自调"}, {[1]="1.1"}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 32}, {["name"] = "蹦蹦枪爆炸范围"}, {["value"] = 10, ["type"] = 16}, {["lv"] = 99999, ["offset"] = 12, ["type"] = 4}, } qmxg = { {["value"] = ran[1],["offset"] = 4, ["type"] = 16},--爆炸范围 {["value"] = 0.715,["offset"] = -0x1D0, ["type"] = 16},--子弹射速 {["value"] = 0.715,["offset"] = 0xD0, ["type"] = 16},--子弹射速 {["value"] = 50,["offset"] = 0x1D8, ["type"] = 16},--子弹大小 } xqmnb(qmnb) end end function e78()--能量炮范围 ran= gg.prompt({[1]="输入你想要改的范围"}, {[1]=""}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 gg.clearResults() gg.setRanges(32) gg.searchNumber("0.3;0.14;1.3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("1.3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll(ran[1], gg.TYPE_FLOAT) gg.toast("") gg.clearResults() end end function e99()-- ran= gg.prompt({[1]="碰撞箱范围自调"}, {[1]=""}, {[1]="txet"})--输入框 if ran == nil then else--取消返回 qmnb = { {["memory"] = 16384}, {["name"] = "碰撞箱范围自调"}, {["value"] = 985592528, ["type"] = 4}, {["lv"] = 925353388, ["offset"] = 0x44, ["type"] = 4}, } qmxg = { {["value"] = ran[1],["offset"] = 0x4, ["type"] = 16}, {["value"] = ran[1],["offset"] = 0x18, ["type"] = 16}, {["value"] = ran[1],["offset"] = 0x2c, ["type"] = 16}, {["value"] = ran[1],["offset"] = 0x40, ["type"] = 16}, } xqmnb(qmnb) end end function e3()-- qmnb = { {["memory"] = 16384}, {["name"] = "蹦蹦枪爆炸范围自调"}, {["value"] = 905970048, ["type"] = 4}, {["lv"] = 505428224, ["offset"] = 0x48, ["type"] = 4}, } qmxg = { {["value"] = -1119837592,["offset"] = 0x30, ["type"] = 4}, } xqmnb(qmnb) end qmnb = { {["memory"] = 32}, {["name"]= "武器"}, {["value"] = 15, ["type"] = 16}, {["lv"] = 1050253722, ["offset"] = -4, ["type"] = 4}, {["lv"] = 1, ["offset"] = 0x274, ["type"] = 16}, } qmxg = { {["value"] = 1300,["offset"] = 0x2B8, ["type"] = 4}, -- 子弹数量 {["value"] = 0, ["offset"] = 0x2B4, ["type"] = 4, freeze = true}, -- 子弹 {["value"] = 0, ["offset"] = 0x2B0, ["type"] = 4, freeze = true}, -- 锁子弹 {["value"] = 0, ["offset"] = 0x290, ["type"] = 4, freeze = true}, -- 间隔 {["value"] = 0, ["offset"] = 0x28C, ["type"] = 4, freeze = true}, -- 换子弹 } xqmnb(qmnb) ]] --[[ function t4() qmnb = { {["memory"] = 32}, {["name"] = "穿透墙体"}, {["value"] = 8.88423226381934E-43, ["type"] = 16}, {["lv"] = 683, ["offset"] = 0x78, ["type"] = 4}, {["lv"] = 2049, ["offset"] = 0x1F0, ["type"] = 4}, } qmxg = { {["value"] = 0,["offset"] = 0x70, ["type"] = 4}, } xqmnb(qmnb) end qmnb = { {["memory"] = 32}, {["name"] = "体型大小"}, {["value"] = 0.5, ["type"] = 16}, {["lv"] = -0.5, ["offset"] = 4, ["type"] = 16}, {["lv"] = -0.5, ["offset"] = 8, ["type"] = 16}, {["lv"] = 1, ["offset"] = -24, ["type"] = 16}, {["lv"] = 1017040560, ["offset"] = -8, ["type"] = 4}, {["lv"] = 0.8, ["offset"] = 460, ["type"] = 16}, } qmxg = { {["value"] = ran[1], ["offset"] = -0x50, ["type"] = 16}, {["value"] = ran[1], ["offset"] = -0x4C, ["type"] = 16}, {["value"] = ran[1], ["offset"] = -0x48, ["type"] = 16}, } xqmnb(qmnb) end function t111()-- qmnb = { {["memory"] = 32}, {["name"] = "穿墙"}, {["value"] = -77, ["type"] = 16}, {["lv"] = -143, ["offset"] = 4, ["type"] = 16}, {["lv"] = 826277887, ["offset"] = 16, ["type"] = 4}, {["lv"] = 5, ["offset"] = -476, ["type"] = 16}, } qmxg = { {["value"] = -10, ["offset"] = 420, ["type"] = 16}, } xqmnb(qmnb) end function t5()-- local ran = gg.prompt({ '体型大小', },{ '1.6', },{ 'number', }) if ran == nil then return end qmnb = { {["memory"] = 32}, {["name"] = "体型大小"}, {["value"] = 0.7071068286895752, ["type"] = 16}, {["lv"] = 0.02500000037252903, ["offset"] = 20, ["type"] = 16}, {["lv"] = 0.5, ["offset"] = 612, ["type"] = 16}, {["lv"] = 61.5, ["offset"] = -1556, ["type"] = 16}, } qmxg = { {["value"] = ran[1], ["offset"] = 388, ["type"] = 16}, {["value"] = ran[1], ["offset"] = 392, ["type"] = 16}, {["value"] = ran[1], ["offset"] = 396, ["type"] = 16}, } xqmnb(qmnb) end ]]