---[=[ ]=]------------------------------------------------------------------------------------------------------------------- -- 三合一整合脚本(悬浮窗菜单版) -- 功能:过检测 + 内透 + 美化 -- 交互:悬浮窗勾选选择功能,按需执行 --==================================================== --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 基础函数库 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function setvalue(address, flags, value, freeze) if address == 0 or address == nil then return end local tt = {} tt[1] = { address = address, flags = flags, value = value, freeze = freeze or false } if freeze then gg.addListItems(tt) else gg.setValues(tt) end end function S_Pointer(t_So, t_Offset, _bit) local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local t = {} local _t if ti_bit then _t = 32 else _t = 4 end local _S = gg.getRangesList(N_So[1])[1] if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF else S[_].value = S[_].value & 0xFFFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local ttt = Get_Address(t_So, t_Offset, _bit) if ttt ~= nil then local _A = string.format('0x%X', ttt) return _A end return 0 end --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 模块一:过检测 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function AntiDetect() gg.toast("正在初始化过检测...") local t = {"libgcloud.so"} local tt = {0x1682B0} local ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 B\t [PC,#0x2C]", false) end tt = {0x1682DC} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV W0, WZR", false) end tt = {0x1682A4} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x21E96C} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "h 0E 00 00 14", false) end t = {"libTDataMaster.so"} tt = {0x4DF40} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x4CFF4} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x6EAF8} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end t = {"libil2cpp.so"} tt = {0x341D91} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "2", false) end local safe = {"libtersafe.so"} tt = {0x1347F6C0} ttt = S_Pointer(safe, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOVz W0, #0x0", false) end tt = {0x1347F6C4} ttt = S_Pointer(safe, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x134806D4} ttt = S_Pointer(safe, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 NOP", false) end t = {"libtersafe.so"} tt = {0x2F3938} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x31C644} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x3FA2B8} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 NOP", false) end tt = {0x468994} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 NOP", false) end tt = {0x3233B8} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 LDRB W15, [X0]", false) end tt = {0x28DDF4} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x2C5674} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x2A95C0} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x325BD0} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 LDRB W13, [X1]", false) end tt = {0x3110CC} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 NOP", false) end tt = {0x50E370} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x20D858} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x271D40} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV W0, WZR", false) end tt = {0x2705B8} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV W0, WZR", false) end tt = {0x294EC0} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV W0, WZR", false) end tt = {0x299FFC} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV W0, WZR", false) end tt = {0x29A000} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 RET", false) end tt = {0x2234E8} ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then setvalue(ttt, 4, "~A8 MOV X0, XZR", false) end gg.toast("过检测加载完成") end --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 模块二:内透 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function NeiTou() gg.toast("正在初始化内透...") local ranges = gg.getRangesList("libGameCore.so") if not ranges or #ranges == 0 then gg.alert("错误:未找到 libGameCore.so") return end local libbase = ranges[1].start local whaddr1 = libbase + 0x40A1D38 gg.setValues({{ address = whaddr1, flags = 4, value = 1384120373 }}) gg.toast("内透加载完成") end --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 模块三:美化 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function MeiHua() gg.toast("正在初始化美化...") local ranges = gg.getRangesList("libGameCore.so") if not ranges or #ranges == 0 then gg.alert("错误:未找到 libGameCore.so") return end local base = ranges[1].start local batch = { {address = base + 0x3D4C930, flags = 4, value = 1384120488}, {address = base + 0x3D4CA6C, flags = 4, value = 338264089}, {address = base + 0x3D4CC64, flags = 4, value = 1384120501}, {address = base + 0x47ACAD0, flags = 4, value = 1019527874}, {address = base + 0x47ACAD4, flags = 4, value = 1384120489}, {address = base + 0x47ACAD8, flags = 4, value = -1191172407}, {address = base + 0x47ACADC, flags = 4, value = 399933413}, } gg.setValues(batch) gg.toast("美化加载完成") end --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 悬浮窗菜单核心逻辑 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function FloatingMenu() -- 功能选项列表 local menuList = { "✅ 开启过检测(腾讯界面或者加载界面开)", "✅ 开启内透(局内开)", "✅ 开启美化(局内开)", "🚀 运行选中功能", "🔄 重置勾选状态", "❌ 退出脚本" } -- 存储勾选状态 local selectState = {false, false, false} while true do -- 悬浮窗多选菜单 local choose = gg.choice(menuList,nil,"三合一功能菜单\n点击勾选需要开启的功能") if choose == nil then break end if choose == 1 then selectState[1] = not selectState[1] gg.toast(selectState[1] and "已勾选过检测" or "取消勾选过检测") elseif choose == 2 then selectState[2] = not selectState[2] gg.toast(selectState[2] and "已勾选内透" or "取消勾选内透") elseif choose == 3 then selectState[3] = not selectState[3] gg.toast(selectState[3] and "已勾选美化" or "取消勾选美化") elseif choose == 4 then -- 执行选中功能 if selectState[1] then AntiDetect() gg.sleep(500) end if selectState[2] then NeiTou() gg.sleep(500) end if selectState[3] then MeiHua() gg.sleep(500) end gg.alert("选中功能全部执行完毕") elseif choose == 5 then -- 重置所有勾选 selectState = {false, false, false} gg.toast("已清空所有勾选") elseif choose == 6 then -- 退出脚本 gg.toast("脚本已终止运行") break end gg.sleep(200) end end --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -- 主入口函数 --━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ function main() local targetInfo = gg.getTargetInfo() if not targetInfo or targetInfo.packageName == "" then gg.alert("请先在GG修改器选择游戏进程后再运行脚本") return end gg.alert(string.format("三合一悬浮脚本加载成功\n目标进程:%s\n可自由勾选功能执行",targetInfo.packageName)) FloatingMenu() end -- 启动脚本 main() ---[=[ ]=]-------------------------------------------------------------------------------------------------------------------