--v2.0 完整版 --[[ 在最后一个循环函数中 放入 expiredExit() 可以确保卡密在运行过程中到期之后强制结束脚本 ]] --需要修改以下配置 local app_id = 104227 --应用ID* local code = "FxsDwFQ65FCtoA8K" --应用code* local first = true --===========修改以上信息为自己应用===========-- function trim(s) return (s:gsub("^%s*(.-)%s*$", "%1")) end function dataToTimeStamp(dataStr) local result = -1 local tempTable = {} if dataStr == nil then error("传递进来的日期时间参数不合法") elseif type(dataStr) == "string" then dataStr = trim(dataStr) for v in string.gmatch(dataStr, "%d+") do tempTable[#tempTable + 1] = v end elseif type(dataStr) == "table" then tempTable = dataStr else error("传递进来的日期时间参数不合法") end result = os.time({day = tonumber(tempTable[3]), month = tonumber(tempTable[2]), year = tonumber(tempTable[1]), hour = tonumber(tempTable[4]), min = tonumber(tempTable[5]), sec = tonumber(tempTable[6])}) return result end fuhao = "\"" local function json2true(str, from, to) return true, from + 3 end local function json2false(str, from, to) return false, from + 4 end local function json2null(str, from, to) return nil, from + 3 end local function json2nan(str, from, to) return nul, from + 2 end local numberchars = {["-"] = true, ["+"] = true, ["."] = true, ["0"] = true, ["1"] = true, ["2"] = true, ["3"] = true, ["4"] = true, ["5"] = true, ["6"] = true, ["7"] = true, ["8"] = true, ["9"] = true} local function json2number(str, from, to) local i = from + 1 while (i <= to) do local char = string.sub(str, i, i) if not numberchars[char] then break end i = i + 1 end local num = tonumber(string.sub(str, from, i - 1)) if not num then error(_format("json格式错误,不正确的数字, 错误位置:{from}", from)) end return num, i - 1 end local function json2string(str, from, to) local ignor = false for i = from + 1, to do local char = string.sub(str, i, i) if not ignor then if char == fuhao then return string.sub(str, from + 1, i - 1), i elseif char == "\\" then ignor = true end else ignor = false end end error(_format("json格式错误,字符串没有找到结尾, 错误位置:{from}", from)) end local function json2array(str, from, to) local result = {} from = from or 1 local pos = from + 1 local to = to or string.len(str) while (pos <= to) do local char = string.sub(str, pos, pos) if char == fuhao then result[#result + 1], pos = json2string(str, pos, to) elseif char == "[" then result[#result + 1], pos = json2array(str, pos, to) elseif char == "{" then result[#result + 1], pos = json2table(str, pos, to) elseif char == "]" then return result, pos elseif (char == "f" or char == "F") then result[#result + 1], pos = json2false(str, pos, to) elseif (char == "t" or char == "T") then result[#result + 1], pos = json2true(str, pos, to) elseif (char == "n") then result[#result + 1], pos = json2null(str, pos, to) elseif (char == "N") then result[#result + 1], pos = json2nan(str, pos, to) elseif numberchars[char] then result[#result + 1], pos = json2number(str, pos, to) end pos = pos + 1 end error(_format("json格式错误,表没有找到结尾, 错误位置:{from}", from)) end function _G.json2table(str, from, to) local result = {} from = from or 1 local pos = from + 1 local to = to or string.len(str) local key while (pos <= to) do local char = string.sub(str, pos, pos) if char == fuhao then if not key then key, pos = json2string(str, pos, to) else result[key], pos = json2string(str, pos, to) key = nil end elseif char == "[" then if not key then key, pos = json2array(str, pos, to) else result[key], pos = json2array(str, pos, to) key = nil end elseif char == "{" then if not key then key, pos = json2table(str, pos, to) else result[key], pos = json2table(str, pos, to) key = nil end elseif char == "}" then return result, pos elseif (char == "f" or char == "F") then result[key], pos = json2false(str, pos, to) key = nil elseif (char == "t" or char == "T") then result[key], pos = json2true(str, pos, to) key = nil elseif (char == "n") then result[key], pos = json2null(str, pos, to) key = nil elseif (char == "N") then result[key], pos = json2nan(str, pos, to) key = nil elseif numberchars[char] then if not key then key, pos = json2number(str, pos, to) else result[key], pos = json2number(str, pos, to) key = nil end end pos = pos + 1 end error(_format("格式错误,表没有找到结尾, 错误位置:{from}", from)) end local jsonfuncs = {[fuhao] = json2string, ["["] = json2array, ["{"] = json2table, ["f"] = json2false, ["F"] = json2false, ["t"] = json2true, ["T"] = json2true} function json2lua(str) if str == nil then gg.alert("错误json") else local char = string.sub(str, 1, 1) local func = jsonfuncs[char] if func then return func(str, 1, string.len(str)) end if numberchars[char] then return json2number(str, 1, string.len(str)) end end end local md5 = { } local char, byte, format, rep, sub = string.char, string.byte, string.format, string.rep, string.sub local bit_or, bit_and, bit_not, bit_xor, bit_rshift, bit_lshift local ok, bit = pcall(require, 'bit') if ok then bit_or, bit_and, bit_not, bit_xor, bit_rshift, bit_lshift = bit.bor, bit.band, bit.bnot, bit.bxor, bit.rshift, bit.lshift else ok, bit = pcall(require, 'bit32') if ok then bit_not = bit.bnot local tobit = function(n) return n <= 0x7fffffff and n or -(bit_not(n) + 1) end local normalize = function(f) return function(a, b) return tobit(f(tobit(a), tobit(b))) end end bit_or, bit_and, bit_xor = normalize(bit.bor), normalize(bit.band), normalize(bit.bxor) bit_rshift, bit_lshift = normalize(bit.rshift), normalize(bit.lshift) else local function tbl2number(tbl) local result = 0 local power = 1 for i = 1, #tbl do result = result + tbl[i] * power power = power * 2 end return result end local function expand(t1, t2) local big, small = t1, t2 if (#big < #small) then big, small = small, big end for i = #small + 1, #big do small[i] = 0 end end local to_bits bit_not = function(n) local tbl = to_bits(n) local size = math.max(#tbl, 32) for i = 1, size do if (tbl[i] == 1) then tbl[i] = 0 else tbl[i] = 1 end end return tbl2number(tbl) end to_bits = function(n) if (n < 0) then return to_bits(bit_not(math.abs(n)) + 1) end local tbl = {} local cnt = 1 local last while n > 0 do last = n % 2 tbl[cnt] = last n = (n - last) / 2 cnt = cnt + 1 end return tbl end bit_or = function(m, n) local tbl_m = to_bits(m) local tbl_n = to_bits(n) expand(tbl_m, tbl_n) local tbl = {} for i = 1, #tbl_m do if (tbl_m[i] == 0 and tbl_n[i] == 0) then tbl[i] = 0 else tbl[i] = 1 end end return tbl2number(tbl) end bit_and = function(m, n) local tbl_m = to_bits(m) local tbl_n = to_bits(n) expand(tbl_m, tbl_n) local tbl = {} for i = 1, #tbl_m do if (tbl_m[i] == 0 or tbl_n[i] == 0) then tbl[i] = 0 else tbl[i] = 1 end end return tbl2number(tbl) end bit_xor = function(m, n) local tbl_m = to_bits(m) local tbl_n = to_bits(n) expand(tbl_m, tbl_n) local tbl = {} for i = 1, #tbl_m do if (tbl_m[i] ~= tbl_n[i]) then tbl[i] = 1 else tbl[i] = 0 end end return tbl2number(tbl) end bit_rshift = function(n, bits) local high_bit = 0 if (n < 0) then n = bit_not(math.abs(n)) + 1 high_bit = 0x80000000 end local floor = math.floor for i = 1, bits do n = n / 2 n = bit_or(floor(n), high_bit) end return floor(n) end bit_lshift = function(n, bits) if (n < 0) then n = bit_not(math.abs(n)) + 1 end for i = 1, bits do n = n * 2 end return bit_and(n, 0xFFFFFFFF) end end end local function lei2str(i) local f = function(s) return char(bit_and(bit_rshift(i, s), 255)) end return f(0) .. f(8) .. f(16) .. f(24) end local function str2bei(s) local v = 0 for i = 1, #s do v = v * 256 + byte(s, i) end return v end local function str2lei(s) local v = 0 for i = #s, 1, -1 do v = v * 256 + byte(s, i) end return v end local function cut_le_str(s, ...) local o, r = 1, {} local args = {...} for i = 1, #args do table.insert(r, str2lei(sub(s, o, o + args[i] - 1))) o = o + args[i] end return r end local swap = function(w) return str2bei(lei2str(w)) end local CONSTS = { 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821, 0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8, 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a, 0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70, 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391, 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 } local f = function(x, y, z) return bit_or(bit_and(x, y), bit_and(-x - 1, z)) end local g = function(x, y, z) return bit_or(bit_and(x, z), bit_and(y, -z - 1)) end local h = function(x, y, z) return bit_xor(x, bit_xor(y, z)) end local i = function(x, y, z) return bit_xor(y, bit_or(x, -z - 1)) end local z = function(ff, a, b, c, d, x, s, ac) a = bit_and(a + ff(b, c, d) + x + ac, 0xFFFFFFFF) return bit_or(bit_lshift(bit_and(a, bit_rshift(0xFFFFFFFF, s)), s), bit_rshift(a, 32 - s)) + b end local function transform(A, B, C, D, X) local a, b, c, d = A, B, C, D local t = CONSTS a = z(f, a, b, c, d, X[0], 7, t[1]) d = z(f, d, a, b, c, X[1], 12, t[2]) c = z(f, c, d, a, b, X[2], 17, t[3]) b = z(f, b, c, d, a, X[3], 22, t[4]) a = z(f, a, b, c, d, X[4], 7, t[5]) d = z(f, d, a, b, c, X[5], 12, t[6]) c = z(f, c, d, a, b, X[6], 17, t[7]) b = z(f, b, c, d, a, X[7], 22, t[8]) a = z(f, a, b, c, d, X[8], 7, t[9]) d = z(f, d, a, b, c, X[9], 12, t[10]) c = z(f, c, d, a, b, X[10], 17, t[11]) b = z(f, b, c, d, a, X[11], 22, t[12]) a = z(f, a, b, c, d, X[12], 7, t[13]) d = z(f, d, a, b, c, X[13], 12, t[14]) c = z(f, c, d, a, b, X[14], 17, t[15]) b = z(f, b, c, d, a, X[15], 22, t[16]) a = z(g, a, b, c, d, X[1], 5, t[17]) d = z(g, d, a, b, c, X[6], 9, t[18]) c = z(g, c, d, a, b, X[11], 14, t[19]) b = z(g, b, c, d, a, X[0], 20, t[20]) a = z(g, a, b, c, d, X[5], 5, t[21]) d = z(g, d, a, b, c, X[10], 9, t[22]) c = z(g, c, d, a, b, X[15], 14, t[23]) b = z(g, b, c, d, a, X[4], 20, t[24]) a = z(g, a, b, c, d, X[9], 5, t[25]) d = z(g, d, a, b, c, X[14], 9, t[26]) c = z(g, c, d, a, b, X[3], 14, t[27]) b = z(g, b, c, d, a, X[8], 20, t[28]) a = z(g, a, b, c, d, X[13], 5, t[29]) d = z(g, d, a, b, c, X[2], 9, t[30]) c = z(g, c, d, a, b, X[7], 14, t[31]) b = z(g, b, c, d, a, X[12], 20, t[32]) a = z(h, a, b, c, d, X[5], 4, t[33]) d = z(h, d, a, b, c, X[8], 11, t[34]) c = z(h, c, d, a, b, X[11], 16, t[35]) b = z(h, b, c, d, a, X[14], 23, t[36]) a = z(h, a, b, c, d, X[1], 4, t[37]) d = z(h, d, a, b, c, X[4], 11, t[38]) c = z(h, c, d, a, b, X[7], 16, t[39]) b = z(h, b, c, d, a, X[10], 23, t[40]) a = z(h, a, b, c, d, X[13], 4, t[41]) d = z(h, d, a, b, c, X[0], 11, t[42]) c = z(h, c, d, a, b, X[3], 16, t[43]) b = z(h, b, c, d, a, X[6], 23, t[44]) a = z(h, a, b, c, d, X[9], 4, t[45]) d = z(h, d, a, b, c, X[12], 11, t[46]) c = z(h, c, d, a, b, X[15], 16, t[47]) b = z(h, b, c, d, a, X[2], 23, t[48]) a = z(i, a, b, c, d, X[0], 6, t[49]) d = z(i, d, a, b, c, X[7], 10, t[50]) c = z(i, c, d, a, b, X[14], 15, t[51]) b = z(i, b, c, d, a, X[5], 21, t[52]) a = z(i, a, b, c, d, X[12], 6, t[53]) d = z(i, d, a, b, c, X[3], 10, t[54]) c = z(i, c, d, a, b, X[10], 15, t[55]) b = z(i, b, c, d, a, X[1], 21, t[56]) a = z(i, a, b, c, d, X[8], 6, t[57]) d = z(i, d, a, b, c, X[15], 10, t[58]) c = z(i, c, d, a, b, X[6], 15, t[59]) b = z(i, b, c, d, a, X[13], 21, t[60]) a = z(i, a, b, c, d, X[4], 6, t[61]) d = z(i, d, a, b, c, X[11], 10, t[62]) c = z(i, c, d, a, b, X[2], 15, t[63]) b = z(i, b, c, d, a, X[9], 21, t[64]) return bit_and(A + a, 0xFFFFFFFF), bit_and(B + b, 0xFFFFFFFF), bit_and(C + c, 0xFFFFFFFF), bit_and(D + d, 0xFFFFFFFF) end local function md5_update(self, s) self.pos = self.pos + #s s = self.buf .. s for ii = 1, #s - 63, 64 do local X = cut_le_str(sub(s, ii, ii + 63), 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4) assert(#X == 16) X[0] = table.remove(X, 1) self.a, self.b, self.c, self.d = transform(self.a, self.b, self.c, self.d, X) end self.buf = sub(s, math.floor(#s / 64) * 64 + 1, #s) return self end local function md5_finish(self) local msgLen = self.pos local padLen = 56 - msgLen % 64 if msgLen % 64 > 56 then padLen = padLen + 64 end if padLen == 0 then padLen = 64 end local s = char(128) .. rep(char(0), padLen - 1) .. lei2str(bit_and(8 * msgLen, 0xFFFFFFFF)) .. lei2str(math.floor(msgLen / 0x20000000)) md5_update(self, s) assert(self.pos % 64 == 0) return lei2str(self.a) .. lei2str(self.b) .. lei2str(self.c) .. lei2str(self.d) end function md5.new() return {a = CONSTS[65], b = CONSTS[66], c = CONSTS[67], d = CONSTS[68], pos = 0, buf = '', update = md5_update, finish = md5_finish} end function md5.tohex(s) return format("%08x%08x%08x%08x", str2bei(sub(s, 1, 4)), str2bei(sub(s, 5, 8)), str2bei(sub(s, 9, 12)), str2bei(sub(s, 13, 16))) end function md5.sum(s) return md5.new():update(s):finish() end function string.md5(s) return md5.tohex(md5.sum(s)) end function getRandom(n) local t = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", } local s = {} for i = 1, n do s[i] = t[math.random(#t)] end ; return table.concat(s) end; local login_url = table.concat({"http://admin.gglua.com/api/login/", app_id, "/"}) --登录卡密接口 local announcement_url = table.concat({"http://admin.gglua.com/api/announcement/", app_id, "/"}) --查询公告接口 local unbind_url = table.concat({"http://admin.gglua.com/api/unbind/", app_id, "/"}) --解绑卡密接口 local f = tostring((app_id + 9995555) * 3296680833):sub(2, 8) local carmi_file = table.concat({gg.EXT_FILES_DIR, "/carmi.cfg"}) --卡密存放路径 local imei_file = table.concat({gg.FILES_DIR, "/_i", f, ".cfg"}) --设备码存放路径 local carmi, f, jl_t = "", io.open(carmi_file), 0 if f then carmi = f:read("*a") end local imei f = io.open(imei_file) if f then imei = f:read("*a") else imei = getRandom(15) io.open(imei_file, "w"):write(imei) end function expiredExit() if jl_t <= os.time() then while true do os.exit(gg.alert("卡密已过期,强制退出")) end end gg.sleep(300) end function makeRequest(url, data) local post_data, data = {}, data or {} for i, v in pairs(data) do table.insert(post_data, table.concat({i, v}, "=")) end post_data = table.concat(post_data, "&") local ret = gg.makeRequest(url, nil, post_data) if ret.code == "200" then return ret.content end return nil end local results = json2lua(makeRequest(announcement_url)) function EXIT() while true do gg.setVisible(true) print("感谢使用柒墨验证系统") os.exit() end end function unbind(carmi) if #carmi == 0 then return false end local t = os.time() local ret = makeRequest(unbind_url, { carmi = carmi, imei = imei, time = t, verify = string.md5(table.concat({carmi, imei, t, code})) }) ret = json2lua(ret) gg.alert(ret.msg) end function login(carmi) if #carmi == 0 then return false end local t = os.time() local ret = makeRequest(login_url, { carmi = carmi, imei = imei, time = t, verify = string.md5(table.concat({carmi, imei, t, code})) }) ret = json2lua(ret) if ret.code == 200 then if math.abs(ret.time - t) <= 15 then if ret.data.verify == string.md5(table.concat({carmi, ret.data.imei, ret.data.time, code})) then jl_t = tonumber(dataToTimeStamp(ret.data.time2)) if gg.alert("登录成功\n卡密有效期:" .. ret.data.time2, "确定", "返回") == 2 then return false end return true else gg.alert("签名验证失败") end else gg.alert("时间检验异常") end else gg.alert(ret.msg) end return false end function announcement(results) local results = string.gsub(results, "\\\"", "\"") results = string.gsub(results, "\\n", "\n") results = string.gsub(results, "\\'", "'") return results end if type(results) ~= "table" or results.code == nil then while true do gg.alert("无法连接至服务器") EXIT() end elseif results.toll == 0 then if results.verify == string.md5(results.time .. code) then if math.abs(results.time - os.time()) <= 10 then gg.alert(table.concat({"公告:", announcement(results.announcement)}, "\n")) else while true do gg.alert("免密登陆时间验证失败") EXIT() end end else while true do gg.alert("免密登陆签名验证失败") EXIT() end end else while true do if gg.isVisible() then gg.setVisible(false) if not results or results.code ~= 200 then gg.alert(results.msg or "应用异常") EXIT() end if carmi and first then if login(carmi) then break end first = false end local choice = gg.prompt({ table.concat({ table.concat({"公告:", announcement(results.announcement)}, "\n"), table.concat({"解绑模式:", results.punish}), "请输入卡密:" }, "\n\n"), "自动登录", (function() if results.punish == "不允许解绑" then return nil end return "解绑卡密" end)(), "退出" }, {carmi}, {"text", "checkbox", "checkbox", "checkbox"}) if choice then if choice[4] then EXIT() end carmi = choice[1] if choice[2] then io.open(carmi_file, "w"):write(carmi) end if choice[3] then unbind(choice[1]) elseif login(choice[1]) then break end end end end end --===========以下存放脚本即可===========-- gg.alert("小奉国际服全防脚本作者QQ2532517925") function Main0() SN = gg.choice({ "小奉内部PUBG防封菜单", "退出", }, nil, "") if SN==1 then Main1() end if SN==2 then HS9() end FX1=0 end function Main1() SN = gg.multiChoice({ "大厅过检测1[64][己忧化]", "大厅过检测2[64][己忧化]", "全局离线【无法关闭】", "登录过检测[64]", " 独家LOGO防", "返回", }, nil, "小奉自用全防\n请勿泛滥\n国际服功能\nQQ2532517925") if SN[1]==true then HS2() end if SN[2]==true then HS3() end if SN[3]==true then HS4() end if SN[4]==true then HS5() end if SN[5]==true then HS6() end if SN[6]==true then HS7() end FX1=0 end function HS2() gg.clearResults() gg.setRanges(16384) gg.searchNumber("17,039,360", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() if sl>100 then sl=100 end for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("开") gg.clearResults() end function HS3() gg.clearResults() gg.setRanges(16384) gg.searchNumber("77,070,336", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() if sl>100 then sl=100 end for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("开") gg.clearResults() end function HS4() gg.setVisible(false) gg.clearResults() gg.setRanges(16384) gg.searchNumber("1;2;3;4;5;6;7;8;9;10;11;12;13", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.refineNumber("13", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) revert = gg.getResults(10000, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(10000, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "0" v.freeze = true end end gg.addListItems(t) t = nil so=gg.getRangesList('libUE4.so')[1].start py=0x4 setvalue(so+py,4,0) end function HS5() gg.clearResults() gg.setRanges(16384) gg.searchNumber("206,848", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() if sl>100 then sl=100 end for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("开") gg.clearResults() end function HS6() gg.clearResults() gg.setRanges(16384) gg.searchNumber("73,728", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() if sl>100 then sl=100 end for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("开") gg.clearResults() end function HS7() Main0() end function HS9() os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main0() end end