local startTime = os.clock() function cleanOffset(offset) if not offset or offset < 0 then return 0 end return offset end function getTimeText() local h = tonumber(os.date("%H")) if h >= 0 and h < 6 then return "凌晨" elseif h >= 6 and h < 10 then return "早上" elseif h >= 10 and h < 14 then return "中午" elseif h >= 14 and h < 18 then return "下午" elseif h >= 18 and h < 22 then return "晚上" else return "深夜" end end function addToFile(content) local filePath = "/storage/emulated/0/叶天.4.5.3.功能数据输出.h" -- 这里填写你的文件名称文件名是啥输出的文件名就是啥 local file = io.open(filePath, "w") if file then file:write(content) file:close() end end function searchValue(name,searchStr,refineStr,range,dataType) gg.setRanges(range) gg.searchNumber(searchStr,dataType) if refineStr ~= "" then gg.refineNumber(refineStr,dataType) end end function getLibBase(libName) local ranges = gg.getRangesList(libName) if ranges and #ranges > 0 then return ranges[1].start end return nil end local UE4 = getLibBase("libUE4.so") local gameChineseName = "BETA PUBG MOBILE" local packageName = gg.getTargetPackage() local gameInfo = gg.getTargetInfo() local gameVersionName = gameInfo and gameInfo.versionName or "未知" local versionCode = gameInfo and gameInfo.versionCode or "未知" local TB = "脚本已结束:\n" TB = TB .. "/*游戏进程: " .. gameChineseName .. "(" .. packageName .. ")\n" TB = TB .. "ABI架构: 64位 \n" TB = TB .. "版本/UID: " .. gameVersionName .. "/" .. versionCode .. "\n" TB = TB .. "抓取时间: " .. os.date("%Y年%m月%d日").." "..getTimeText().." "..os.date("%H时%M分%S秒").."\n" TB = TB .. "频道: @PUBGMYTNB \n" TB = TB .. "作者: 叶天 */\n\n" function getZZ(address) return gg.getValues({{address=address,flags=32}})[1].value end function getFloat(address) return gg.getValues({{address=address,flags=16}})[1].value end function Dword(address) return gg.getValues({{address=address,flags=4}})[1].value end local function feq(a,b) return math.abs(a - b) < 0.05 end function searchValues(name, searchValue, refineValue, range, type, visible) gg.clearResults() gg.setVisible(visible) gg.toast(name) gg.setRanges(range) gg.searchNumber(searchValue, type, false, gg.SIGN_EQUAL, 0, -1) if refineValue then gg.refineNumber(refineValue, type, false, gg.SIGN_EQUAL, 0, -1) end end function searchNearby(searchValue, refineValue, valueRange, valueType, range, getAddr) gg.clearResults() local startAddr = getAddr - range local endAddr = getAddr + range gg.setRanges(valueRange) gg.searchNumber(searchValue, valueType, false, gg.SIGN_EQUAL, startAddr, endAddr) if refineValue then gg.refineNumber(refineValue, valueType, false, gg.SIGN_EQUAL, startAddr, endAddr) end local res = gg.getResults(500) gg.clearResults() return res end function subOffset(py1, py2, add) if add == nil then add = 0x0 end return string.format(",0x%X", py1 - py2 + add) end local sczz = 0 local mhzz = 0 local d3cpy = 0 local d4cpy = 0 local flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10 = false,false,false,false,false,false,false,false,false,false local flag11,flag12,flag13,flag14,flag15,flag16,flag17,flag18,flag19 = false,false,false,false,false,false,false,false,false local UE4bss = gg.getRangesList('libUE4.so:bss')[1].start searchValues("自身头","16384D;90F","90",16,gg.TYPE_FLOAT,false) local fw = gg.getResults(1) if not fw or #fw == 0 then gg.toast("未找到自身头") return end local zstCb = string.format("0x%X",fw[1].address+0x14-UE4bss) local zstCd = string.format("0x%X",fw[1].address+0x14-UE4) local infoLine = "Cb自身头:"..zstCb.."\nCd自身头:"..zstCd.."\n" TB = TB .. infoLine d2c = getZZ(getZZ(UE4bss+zstCb)+0x30) local Addr = d2c local res320 = searchNearby("320",nil,32,4,2048,Addr) if #res320 > 0 then local v = res320[1] d3cpy = v.address - Addr - 0x40 local line1 = "SX:"..zstCb..",0x30,"..string.format("0x%X",v.address-Addr-0x18).."\n" local line2 = "FOV:"..zstCb..",0x30,"..string.format("0x%X",v.address-Addr-0x14).."\n" local line3 = "自身结构体:"..zstCb..",0x30,"..string.format("0x%X",d3cpy).."\n" TB = TB .. line1 .. line2 .. line3 end if d3cpy == 0 then gg.toast("无d3cpy") return end d3c = getZZ(getZZ(getZZ(UE4bss+zstCb)+0x30)+d3cpy) local res1099 = searchNearby("10.99",nil,32,16,2048,d3c) if #res1099 > 0 then local v = res1099[1] d4cpy = v.address - d3c + 0x28 local line = "运动内存页:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy).."\n" TB = TB .. line end if d4cpy == 0 then gg.toast("无d4cpy") return end local startA = d3c local endA = d3c + 0x3500 local zsA = d3c for ptr = startA, endA, 0x4 do local vF = getFloat(ptr) local vD = Dword(ptr) if feq(vF,-1.0) and Dword(ptr+0x44)==1036831949 and not flag1 then flag1=true local l1 = "流畅爬下1:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" local l2 = "流畅爬下2:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x4).."\n" TB = TB .. l1 .. l2 end if feq(vF,1.0) and Dword(ptr+0x8)==827 and not flag2 then flag2=true local l1 = "全局变速:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" local l2 = "人物灵魂:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x4).."\n" TB = TB .. l1 .. l2 end if vD==1 and feq(getFloat(ptr-0x10),64.0) and not flag3 then flag3=true local l = "人物踏空:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" TB = TB .. l end if vD==8 and feq(getFloat(ptr+0x38),3.0) and not flag4 then flag4=true local l = "8D判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" TB = TB .. l end if feq(vF,1.0) and feq(getFloat(ptr+0x20),10000.0) and not flag5 then flag5=true local l1 = "开镜判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x30).."\n" local l2 = "微加速:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" TB = TB .. l1 .. l2 end if vD==1 and getZZ(ptr-0x4)==4294967296 and Dword(ptr+0x4C)==2 and not flag6 then flag6=true local l1 = "开火判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x30).."\n" local l2 = "趴下判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x20).."\n" TB = TB .. l1 .. l2 end if feq(vF,1.0) and feq(getFloat(ptr+0x28),5.0) and not flag7 then flag7=true local l = "快速趴下:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x10).."\n" TB = TB .. l end if vD==-1 and Dword(ptr+0x14)==3 and not flag8 then flag8=true local l = "人称判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x4).."\n" TB = TB .. l end if feq(vF,-1.0) and feq(getFloat(ptr+0x4),-1.0) and feq(getFloat(ptr+0x30),1.0) and not flag9 then flag9=true local l1 = "轮盘前后:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x38).."\n" local l2 = "轮盘左右:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x34).."\n" TB = TB .. l1 .. l2 end if vD==1060873699 and not flag10 then flag10=true local l1 = "移动判断1:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x28).."\n" local l2 = "移动判断2:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x18).."\n" TB = TB .. l1 .. l2 end if vD==1056964608 and Dword(ptr+0xC)==1028443341 and not flag11 then flag11=true local l1 = "左右探头判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x8).."\n" local l2 = "探头判断:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0-0x4).."\n" TB = TB .. l1 .. l2 end if feq(vF,479.5) and feq(getFloat(ptr+0x4),150.0) and not flag12 then flag12=true local l = "全枪秒切枪:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x8).."\n" TB = TB .. l end if vD==3 and Dword(ptr+0x10)==1 and Dword(ptr+0x64)==4 then sczz = ptr - zsA + 0x28 end if feq(vF,88.0) and feq(getFloat(ptr+0x4),60.0) and not flag13 then flag13=true local l1 = "88:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x0).."\n" local l2 = "60:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x4).."\n" local l3 = "50:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..subOffset(ptr,zsA,0x8).."\n" TB = TB .. l1 .. l2 .. l3 end if vD==65536 and feq(getFloat(ptr+0x4),2.0) then mhzz = ptr - zsA + 0x30 end end d4c = getZZ(getZZ(getZZ(getZZ(UE4bss+zstCb)+0x30)+d3cpy)+d4cpy) local startB = d4c local endB = d4c + 0x1500 local zsB = d4c local b1,b2,b3,b4,b5,b6,b7,b8,b9,b10 = false,false,false,false,false,false,false,false,false,false for ptr = startB, endB, 0x4 do local vF = getFloat(ptr) local vD = Dword(ptr) if vD==512 and feq(getFloat(ptr+0x4),5.0) and not b1 then b1=true local l1 = "冻结加速:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0-0x60).."\n" local l2 = "人物灵魂:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x28).."\n" TB = TB .. l1 .. l2 end if feq(vF,30.0) and feq(getFloat(ptr+0x4),180.0) and not b2 then b2=true local l1 = "X轴(不是坐标):"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0-0x30).."\n" local l2 = "Y轴(不是坐标):"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0-0x2C).."\n" local l3 = "Z轴(不是坐标):"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0-0x28).."\n" TB = TB .. l1 .. l2 .. l3 end if feq(vF,1.0) and feq(getFloat(ptr+0x4),45.0) and not b3 then b3=true local l1 = "重力:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0).."\n" local l2 = "上下坡:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x4).."\n" local l3 = "高跳:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x8).."\n" local l4 = "人物状态:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x18).."\n" TB = TB .. l1 .. l2 .. l3 .. l4 end if feq(vF,60000.0) and feq(getFloat(ptr+0x8),8192.0) and not b4 then b4=true local l1 = "60000:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0).."\n" local l2 = "8192:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x8).."\n" local l3 = "落地后摇:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x10).."\n" local l4 = "2048:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x1C).."\n" local l5 = "0.05:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x2C).."\n" local l6 = "13680:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x58).."\n" local l7 = "7500:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x84).."\n" TB = TB..l1..l2..l3..l4..l5..l6..l7 end if feq(vF,1.0) and Dword(ptr+0x20)==-1 and not b5 then b5=true local l1 = "地形1:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x2C).."\n" local l2 = "地形2:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x30).."\n" local l3 = "地形3:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x34).."\n" local l4 = "地形4:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x38).."\n" TB = TB..l1..l2..l3..l4 end if vD==-1 and feq(getFloat(ptr+0x24),500.0) and not b6 then b6=true local l = "防卡脚:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x10).."\n" TB = TB .. l end if feq(vF,240.0) and not b7 then b7=true local l = "240:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0).."\n" TB = TB .. l end if feq(vF,670.0) and feq(getFloat(ptr+0x10),35.0) and not b8 then b8=true local l = "670:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",d4cpy)..subOffset(ptr,zsB,0x0).."\n" TB = TB .. l end end if sczz ~= 0 then scd4c = getZZ(getZZ(getZZ(getZZ(UE4bss+zstCb)+0x30)+d3cpy)+sczz) local resSc = searchNearby("3F;256D;5F;200F;4D::200","200",32,16,2048,scd4c) if #resSc>0 then local scd5cpy = resSc[1].address - scd4c + 0x1C local startC = getZZ(getZZ(getZZ(getZZ(getZZ(UE4bss+zstCb)+0x30)+d3cpy)+sczz)+scd5cpy) local endC = startC + 0x1500 local zsC = startC local c1,c2,c3,c4,c5 = false,false,false,false,false for ptr = startC, endC, 0x4 do local vF = getFloat(ptr) local vD = Dword(ptr) if feq(vF,18.0) and feq(getFloat(ptr+0x4),3.5) and not c1 then c1=true local l = "手持聚点:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x0-0x18).."\n" TB = TB .. l end if vD==3 and feq(getFloat(ptr-0x28),1.0) and feq(getFloat(ptr-0x54),1.0) and not c2 then c2=true local l1 = "手持瞬击:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x0-0x3C).."\n" local l2 = "手持射速:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x4).."\n" TB = TB .. l1 .. l2 end if feq(vF,1.0) and feq(getFloat(ptr-0x4),70.0) and not c3 then c3=true local l = "手持秒开镜:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x0).."\n" TB = TB .. l end if feq(vF,1.0) and feq(getFloat(ptr+0x14),53.0) and not c4 then c4=true local l1 = "手持无下坠:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x0-0x4).."\n" local l2 = "手持防抖:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x0).."\n" local l3 = "手持X特效:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x4).."\n" TB = TB..l1..l2..l3 end if vD==1 and Dword(ptr-0x28)==100 and not c5 then c5=true local l1 = "手持秒切枪1:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x4).."\n" local l2 = "手持秒切枪2:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",sczz)..","..string.format("0x%X",scd5cpy)..subOffset(ptr,zsC,0x8).."\n" TB = TB..l1..l2 end end end end if mhzz ~= 0 then mhd4c = getZZ(getZZ(getZZ(getZZ(UE4bss+zstCb)+0x30)+d3cpy)+mhzz) local resMh = searchNearby("16;5~10;1::33","16",32,4,2048,mhd4c) if #resMh>0 then local mhd5cpy = resMh[1].address - mhd4c + 0x8 local l = "美化指针:"..zstCb..",0x30,"..string.format("0x%X",d3cpy)..","..string.format("0x%X",mhzz)..","..string.format("0x%X",mhd5cpy).."\n" TB = TB .. l end end gg.setRanges(268435455) searchValue("Cd内存广角1","400;1;200;500;-70::","1",8,16,false) fw = gg.getResults(1) if fw[1] then TB = TB .. "Cd内存广角1: "..string.format("0x%x",fw[1].address-UE4).." //原值1.0 修改2.5\n" end searchValue("Cd内存广角2","2.5;1;200;0.0001::","1",8,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."Cd内存广角2: "..string.format("0x%x",v.address-UE4).." //原值1.0 修改2.5\n" end searchValue("Xa内存广角","8.84113984e-21;8.52492339e-21;8.84111399e-21;8.52823212e-21::18","8.52823212e-21",16384,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\nXa内存广角: "..string.format("0x%x",v.address-UE4).." //原值8.52823212e-21 修改8.47529256e-21\n" end searchValue("聚点","8.84171418e-21;8.52492339e-21;2.74879218e11;-6.13017998e13::","8.52492339e-21",16384,16,false) local a=gg.getResults(1) if a[1] then TB = TB.."\n聚点: "..string.format("0x%x",a[1].address-UE4).." //原值8.52492339e-21 修改8.47963525e-21\n" end searchValue("无后","8.95340295e-21;2.19911815e12:5","8.95340295e-21",16384,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\n无后: "..string.format("0x%x",v.address-UE4).." //原值8.95340295e-21 修改8.47694692e-21\n" end searchValue("腰射防抖","-1275068320;-113245504;-1275068352;-1441594400::150","-1275068320",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do local value1=gg.getValues({{address=v.address+0x4,flags=4}})[1].value TB = TB.."\n腰射防抖: "..string.format("0x%x",v.address+0x4-UE4).." //原值"..value1.." 修改-1119037440\n" end searchValue("手臂防抖","505487360;505519104;505873388;-1441397792::","-1441397792",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do local value1=gg.getValues({{address=v.address+0x8,flags=4}})[1].value local value2=gg.getValues({{address=v.address+0x10,flags=4}})[1].value TB = TB.."\n手臂防抖: "..string.format("0x%x",v.address+0x8-UE4).." //原值"..value1.." 修改-1119036704\n" TB = TB.."开镜防抖: "..string.format("0x%x",v.address+0x10-UE4).." //原值"..value2.." 修改-1119036704\n" end searchValue("瞬击","8.95857929e-21;8.52988648e-21;8.58285189e-21;8.63581729e-21;8.47697277e-21;8.52993818e-21;2.19919129e12:157","8.95857929e-21",16384,16,false) local a=gg.getResults(1) if a[1] then TB = TB.."\n瞬击: "..string.format("0x%x",a[1].address-UE4).." //原值8.95857929e-21 修改8.95671814e-21\n" end searchValue("除雾","8.84111561e-21;8.53906301e-21;8.47226818e-21::","8.47226818e-21",16384,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do local value1=gg.getValues({{address=v.address+0x24,flags=4}})[1].value TB = TB.."\n除雾: "..string.format("0x%x",v.address+0x24-UE4).." //原值"..value1.." 修改-721215457\n" end searchValue("射速","1409286315;505489408;1409286657::","505489408",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\n射速: "..string.format("0x%x",v.address-UE4).." //原值8.53154084e-21 修改8.47963525e-21\n" end searchValue("秒趴","8.47697923e-21;2.19905707e12;3.95003036e11;-6.13017998e13::","2.19905707e12",16384,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\n秒趴: "..string.format("0x%x",v.address-UE4).." //原值2.19905707e12 修改8.95671814e-21\n" end searchValue("加速","2.19909325e12;8.53485602e-21;8.47221648e-21;8.47715371e-21;8.50279631e-21:53","8.50279631e-21",16384,16,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\n加速: "..string.format("0x%x",v.address-UE4).." //原值8.50279631e-21 修改-3.4564993e10\n" end searchValue("NOP加速","-700514048;506149161;-700514048::33","506149161",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\nNOP加速: "..string.format("0x%x",v.address-UE4).." //原值506149161 修改-721215457\n" end searchValue("锁地皮","1409286348;1923088536;-1441135648;-1441397791::","1409286348",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do local value1=gg.getValues({{address=v.address+0x1C,flags=4}})[1].value TB = TB.."\n锁地皮: "..string.format("0x%x",v.address+0x1C-UE4).." //原值"..value1.." 修改-721215457\n" end searchValue("除草除树","505874465;505493504;505678352::","505874465",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do local value1=gg.getValues({{address=v.address+0x18,flags=4}})[1].value TB = TB.."\n除草除树: "..string.format("0x%x",v.address+0x18-UE4).." //原值"..value1.." 修改-721215457\n" end searchValue("弹孔大小","-1441528864;506335235;505485312;505415744;-698416192::150","506335235",16384,4,false) local _G = gg.getResults(gg.getResultsCount()) for _,v in ipairs (_G) do TB = TB.."\n弹孔大小: "..string.format("0x%x",v.address-UE4).." //原值9.21479445e-21 修改8.57951974e-21\n" end TB = TB .. "\n退出." TB = TB .. "\nBy 叶天" TB = TB .. "\nPUBG4.5.3正式服64位输出" TB = TB .. "\n工具购买 @YTNB70" local useTime = string.format("%.4f", os.clock() - startTime) TB = TB .. "\n搜索完成,耗时: "..useTime.." 秒" print(TB) addToFile(TB) gg.clearResults() gg.setVisible(false) gg.toast("✅ 全部功能数据已保存到 叶天.4.4.0.功能数据输出.h")