local xa = gg.getRangesList("libil2cpp.so")[2].start function getPointer(Address,Flags) return gg.getValues({ { address=Address, flags=Flags } })[1].value end local function getName(addr) local str = "" local t = {} for i=1, 128 do t[i] = {address=addr+(i-1), flags=gg.TYPE_BYTE} end t = gg.getValues(t) for i, v in ipairs(t) do if v.value==0 then break end if v.value<0 then return "" end str = str..string.char(v.value&0xFF) end return str end local function va(address, Type) local result = gg.getValues({{address = address, flags = Type}}) return result[1].value end function void(gx,gn) local bb=xa+gx local cc=xa+gn if bb < cc then local fun=bb-cc gg.addListItems({{address=bb,flags=4,name="更新函数"}}) gg.setValues({{address=bb,flags=4,value="~A8 B [PC,#-0x"..string.format("%X",fun).."]"}}) else fun=bb-cc gg.addListItems({{address=bb,flags=4,value="~A8 B [PC,#0x"..string.format("%X",fun).."]",name="更新函数"}}) gg.setValues({{address=bb,flags=4,value="~A8 B [PC,#-0x"..string.format("%X",fun).."]",name="更新函数"}}) print(string.format("%X",fun)) end end function ssff(lmm,ffmm) gg.clearResults() gg.setRanges(32) gg.searchNumber(":"..ffmm, gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1) local results = gg.getResults(gg.getResultsCount()) if results==nil or #results==0 then return end local add=results[1].address if #results > 0 then gg.setRanges(32) gg.searchPointer(0) local zz = gg.getResults(gg.getResultsCount()) for _, item in ipairs(zz) do local addr = item.address local bddr=addr + 0x8 local sdd=getName(getPointer(getPointer(bddr,32)+0x10,32)) local cddr=addr + 0x10 local na = getPointer(addr, 32) local name = getName(na) local adddr = addr - 0x10 local ff = getPointer(adddr, 32) local off = ff - xa if lmm==sdd then local shenmi1 = { { address = ff, flags = gg.TYPE_DWORD, name = "偏移:0x"..string.format("%X", off) } } print(na) return string.format("0x%X",off) end end end end function shenzhiming(lm,py,lx,xg,dj,jz,jjlx,yz) gg.clearResults() gg.setRanges(32) gg.searchNumber(":"..lm, gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1) local results = gg.getResults(gg.getResultsCount()) local add=results[1].address if #results > 0 then gg.setRanges(32) gg.searchPointer(0) local zz = gg.getResults(gg.getResultsCount()) for k, item in ipairs(zz) do local l1 = item.address local Add = item.address - 0x10 local Value = va(Add, 4) if Value ~= 0 then gg.setRanges(32)--如果是Ca内存自己改4 local z3 = {} for i = 1, #zz do z3[i] = {address = zz[i].address - 0x10, flags = 4} end z3 = gg.getValues(z3) gg.loadResults(z3) if jz==1 then gg.searchPointer(0) gg.searchPointer(0) local ret = gg.getResults(gg.getResultsCount()) if #ret == 0 then gg.alert("无法定位") return end local max = math.min(#ret, 10000) local ToAdd = {} for i = 1, max do local q = ret[i] local ss = q.address local s1 = getPointer(ss, 32) local vc=s1+py local r=gg.getValues({{address=vc,flags=jjlx}})[1].value if yz==0 then table.insert(ToAdd, { address = vc, flags = lx, value = xg, freeze = dj, name = "字段偏移:0x"..string.format("%X",py) }) else if r==yz then table.insert(ToAdd, { address = vc, flags = lx, value = xg, freeze = dj, name = "字段偏移:0x"..string.format("%X",py) }) end end end gg.addListItems(ToAdd) gg.setValues(ToAdd) return else gg.searchPointer(0) local ret = gg.getResults(gg.getResultsCount()) if #ret == 0 then gg.alert("无法定位") return end local max = math.min(#ret, 10000) local ToAdd = {} for i = 1, max do local q = ret[i] local ss = q.address table.insert(ToAdd, { address = ss + py, flags = lx, value = xg, freeze = dj, name = "字段偏移:0x"..string.format("%X",py) }) end gg.addListItems(ToAdd) gg.setValues(ToAdd) return end end end end end local g1=io.open("/storage/emulated/0/Android/DunDunDun.txt","r") if g1==nil then a1=gg.prompt({"输入密码\n\n不知道密码?联系作者低价购买\n作者QQ:3475375971","自动登录"},{"",true},{"text","checkbox"}) if a1==nil or a1[1]~="shen6667" then gg.alert("密码错误,联系作者获取") gg.copyText("3475375971") os.exit(print("密码错误,联系作者获取\nQQ:3475375971")) end end if g1 or a1[1]=="shen6667" then io.open("/storage/emulated/0/Android/DunDunDun.txt","r+") gg.alert("✔️密码正确,欢迎使用辅助") function Main() xz=gg.choice({ "自调加速", "增大重量", "装备等级", "退出" },nil,"") if xz==nil then else if xz==1 then a1() end if xz==2 then a2() end if xz==3 then a3() end if xz==4 then Exit() end end end function a1()--加速 local ss=xa+0x5798c60 cc={ {value="~A8 LDR S0, [PC,#0x8]",flags=4,address=ss}, {value="~A8 B [PC,#-0x8C]",flags=4,address=ss+0x4}, {value=20,flags=16,address=ss+0x8} } gg.setValues(cc) gg.addListItems(cc) --[[ local aa=ssff("Time","set_timeScale") gg.setValues({{address=xa+aa,flags=4,value="~A8 LDR S0, [PC,#0x8]"}}) void(ssff("Time","get_realtimeSinceStartup")+0x4,ssff("Time","set_timeScale")) gg.setValues({{address=xa+aa,flags=4,value=20}}) ]] end function a2()--增大重量 shenzhiming("LevelData", 0x40, 16, "1000000", true, 1, 4, 0) end function a3()--装备等级 shenzhiming("EquipPartData", 0x18, 4, "20", true, 1, 4, 0) end function Exit() os.exit() end while(true) do if gg.isVisible(true) then gg.setVisible(false) Main() end end end