Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- gg.alert(" !! คำเตือน !!\n\n-สคริปต์ตัวนี้เป็นโค๊ตขั้นสูง\n-เราได้ทำการใส่โทรจันในสคริปเพื่อป้องกันการแกะสคริปต์\n-ถ้าทำการแกะสคริปต์เราไม่รับรองความปลอดภัยของมือถือคุณ " , "OK")
- _File = gg.getFile() Hey = gg.toast
- local _ = gg.prompt Msg = gg.alert gg.setVisible(false)
- Infinite = _({"⚠รหัสผ่านสคริปต์⚠\nรหัสผ่านคือ: TYTLGG_PRO\nPassword: TYTLGG_PRO"},nil,{"text"}) or (function() while true do os.exit() end end)();Power = Infinite[1] == "TYTLGG_PRO" or (function() gg.alert("⚠อุป⚠\n➡รหัสผ่านผิดลองใหม่"); while true do os.exit() end end)()
- gg.alert("! คำแนะนำ-ฟังชั่นศัตรูไม่ออก\n-เข้าเล่นแล้วค่อย 🔵 เปิด\n-บางฟังชั่นอาจมีบัค" , "OK")
- local MemRange = gg.REGION_C_BSS
- local ScriptSpeed = 0
- local Hack = true Hack = 0 Hack = {} Hack = 0xC + 0x5EC Hack_Float = gg.TYPE_FLOAT Hack_Qword = gg.TYPE_QWORD Hack= {
- ["GOD"] = {Name = " ติดคริ100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
- ["LGG"] = {Name = " สกิลคริ100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
- ["DIE"] = {Name = " สกิลไม่คลูดาวน์100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
- ["LOG"] = {Name = " ศัตรูไม่ออก ", Switch = false, ["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
- ["SPEED_LOG"] = {Name = " ศัตรูยืนนิ่ง+มีผลกับเรนอจอร์ ", Switch = false,["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
- ["TOWER"] = {Name = " ป้อมสเตจพิเศษไม่ยิง ", Switch = false, ["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
- ["NOPE"] = {Name = " เพิ่มความเร็วขีปนาวุธ+โจมตี ", Switch = false, ["🔵เปิด"] = 0x30, Type = Hack_Float,},}
- function ForceExit()
- ::force_exit:: os.exit() goto force_exit
- end
- function PopupBox(Caption, Text)
- if Text == nil then Text = "" end
- gg.alert(Caption .. '\n' .. Text)
- end
- function Bool2Switch(Bool)
- if not Bool then return "🔴ปิด" end
- return "🔵เปิด"
- end
- function Cheat(Hack)
- if Hack.Address ~= nil then
- if Hack.Alert ~= nil and Hack.Alert ~= 1 then PopupBox("ข้อความ: ".. Hack.Name, Hack.Alert); Hack.Alert = 1 end
- if Hack.Exec ~=nil then Hack.Exec() end
- if Hack.Type ~= nil and Hack["🔴ปิด"] == nil then Hack["🔴ปิด"] = rpm(Hack.Address, Hack.Type) end
- Hack.Switch = not Hack.Switch
- if Hack.Type ~= nil then
- wpm(Hack.Address, Hack.Type, Hack[Bool2Switch(Hack.Switch)])
- gg.toast("ฟังชั่น: " .. Hack.Name .. " -> " .. Bool2Switch(Hack.Switch))
- return true
- end
- end
- PopupBox("อุปมีปัญหา !", Hack.Name.." ไม่พบที่อยู่ Offset ")
- return false
- end
- function isAddrValid(Address)
- if Address ~= nil and Address ~= 0 or Address then
- return true
- end
- return false
- end
- function tohex(Data)
- return Data:gsub(".", function(a) return string.format("%02X", (string.byte(a))) end):gsub(" ", "")
- end
- function wpm(Address, ggtype, data)
- if gg.setValues({{address = Address, flags = ggtype, value = data}}) then
- return true
- else
- return false
- end
- end
- function rpm(Address, ggtype)
- res = gg.getValues({{address = Address, flags = ggtype}})
- if type(res) ~= "string" then
- if ggtype == gg.TYPE_BYTE then
- result = res[1].value & 0xFF
- elseif ggtype == gg.TYPE_WORD then
- result = res[1].value & 0xFFFF
- elseif ggtype == gg.TYPE_DWORD then
- result = res[1].value & 0xFFFFFFFF
- elseif ggtype == gg.TYPE_QWORD then
- result = res[1].value & 0xFFFFFFFFFFFFFFFF
- elseif ggtype == gg.TYPE_XOR then
- result = res[1].value & 0xFFFFFFFF
- else
- result = res[1].value
- end
- return result
- else
- return false
- end
- end
- function rwmem(Address, SizeOrBuffer)
- _rw = {}
- if type(SizeOrBuffer) == "number" then
- _ = ""
- for _ = 1, SizeOrBuffer do _rw[_] = {address = (Address - 1) + _, flags = gg.TYPE_BYTE} end
- for v, __ in ipairs(gg.getValues(_rw)) do _ = _ .. string.format("%02X", __.value & 0xFF) end
- return _
- end
- Byte = {} SizeOrBuffer:gsub("..", function(x)
- Byte[#Byte + 1] = x _rw[#Byte] = {address = (Address - 1) + #Byte, flags = gg.TYPE_BYTE, value = x .. "h"}
- end)
- gg.setValues(_rw)
- end
- SPEED_LOG=function() gg.setVisible(false) end
- function reverseAddress(address)
- return (address & 0x000000FF) << 24 | (address & 0x0000FF00) << 8 | (address & 0x00FF0000) >> 8 | (address & 0xFF000000) >> 24
- end
- function setjmp(address, target)
- local o_opsc = rwmem(address, 8)
- rwmem(address, "04F01FE5"..string.format("%08x", reverseAddress(target)))
- return function() rwmem(address, o_opsc) end
- end
- function prephook(address, writeoricode)
- local _alloc = gg.allocatePage(gg.PROT_READ | gg.PROT_WRITE | gg.PROT_EXEC)
- gg.sleep(0)
- if writeoricode then rwmem(_alloc, _oriop) end
- return _alloc + (writeoricode == true and 0x8 or 0), address + 0x8
- end
- function getregister(address, reg)
- _getregsc, n_address = prephook(address, true)
- rwmem(_getregsc, "04"..string.format("%02X", (reg & 0xFF) << 4).."8FE504F01FE50000000000000000")
- wpm(_getregsc + 0x8, 4, n_address)
- local r_restorereg = setjmp(address, _getregsc - 0x8)
- return _getregsc + 0xC, r_restorereg
- end
- function GetLibraryTextBase(lib)
- for _, __ in pairs(gg.getRangesList(lib)) do
- if __["state"] == "Xa" then return __["start"], __["end"] end
- end
- return nil
- end
- SPEED_LOG() gg.setRanges(MemRange) sXs = "ปกติ"
- gg.toast("📀 กำลังค้นหาไฟล์ libgame.so โปรดรอ...", true) do gg.sleep(1500) end
- gg.sleep(1300)
- BaseAddress = GetLibraryTextBase("libgame.so")
- if not isAddrValid(BaseAddress) then
- SPEED_LOG()
- PopupBox("สคริปต์มีปัญหา:", "สคริปต์ไม่พบไฟล์\n\n1.libgame.so\n\nลองเข้าเกม Line Rangers เพื่อให้สคริปต์รันได้")
- os.exit()
- end
- function GetLibraryBase(lib)
- for _, __ in pairs(gg.getRangesList(lib)) do
- if __["state"] == "Xa" or __["state"] == "Xs" then return __["start"], __["end"] end
- end
- return nil
- end
- function GetLibInformation(LibName)
- local LibBase = GetLibraryBase(LibName)
- if LibBase ~= nil then
- _ = gg.getValues({
- {address = LibBase, flags = gg.TYPE_DWORD },
- {address = LibBase + 0x12, flags = gg.TYPE_WORD },
- {address = LibBase + 0x1C, flags = gg.TYPE_DWORD },
- {address = LibBase + 0x24, flags = gg.TYPE_DWORD },
- {address = LibBase + 0x2A, flags = gg.TYPE_WORD },
- {address = LibBase + 0x2C, flags = gg.TYPE_WORD },
- })
- local Elf = {
- Magic = _[1].value,
- Machine = _[2].value,
- PHOffset = _[3].value,
- Flags = _[4].value,
- PHSize = _[5].value,
- PHNum = _[6].value,
- pHdr = {},
- Dyn = {},
- Sym = {},
- vAddress = LibBase
- }
- for _ = 1, Elf.PHNum do
- local _pHdr = LibBase + Elf.PHOffset + (_ * Elf.PHSize)
- local pHdr = gg.getValues({
- { address = _pHdr, flags = gg.TYPE_DWORD },
- { address = _pHdr + 4, flags = gg.TYPE_DWORD },
- { address = _pHdr + 8, flags = gg.TYPE_DWORD },
- { address = _pHdr + 0xC, flags = gg.TYPE_DWORD },
- { address = _pHdr + 0x10, flags = gg.TYPE_DWORD },
- { address = _pHdr + 0x14, flags = gg.TYPE_DWORD },
- { address = _pHdr + 0x18, flags = gg.TYPE_DWORD },
- { address = _pHdr + 0x1C, flags = gg.TYPE_DWORD },
- })
- Elf.pHdr[_] = {
- p_type = pHdr[1].value,
- p_offset = pHdr[2].value,
- p_vaddr = pHdr[3].value,
- p_paddr = pHdr[4].value,
- p_filesz = pHdr[5].value,
- p_memsz = pHdr[6].value,
- p_flags = pHdr[7].value,
- p_align = pHdr[8].value
- }
- end
- for _ = 1, Elf.PHNum do
- if Elf.pHdr[_].p_type == 2 then
- local DynCount = 0
- while true do
- local _Dyn = gg.getValues({
- { address = LibBase + Elf.pHdr[_].p_vaddr + (DynCount * 8), flags = gg.TYPE_DWORD },
- { address = LibBase + Elf.pHdr[_].p_vaddr + 4 + (DynCount * 8), flags = gg.TYPE_DWORD }
- })
- if _Dyn[1].value == 0 and _Dyn[2].value == 0 then break end
- DynCount = DynCount + 1
- Elf.Dyn[DynCount] = {
- d_tag = _Dyn[1].value,
- d_val = _Dyn[2].value,
- d_ptr = _Dyn[2].value
- }
- end
- end
- end
- return Elf
- end
- return nil
- end
- function GetSymbolAddress(ElfData, symName)
- for _ = 1, #ElfData.Dyn do
- if tonumber(ElfData.Dyn[_].d_tag) == 4 then nGG = gg.getValues({{address = (ElfData.Dyn[_].d_ptr + 4) + ElfData.vAddress, flags = gg.TYPE_DWORD}})[1].value end
- if tonumber(ElfData.Dyn[_].d_tag) == 5 then strtab = ElfData.Dyn[_].d_ptr + ElfData.vAddress end
- if tonumber(ElfData.Dyn[_].d_tag) == 6 then symtab = ElfData.Dyn[_].d_ptr + ElfData.vAddress end
- end
- if nGG ~= nil then
- for _ = 1, nGG do
- local sym = symtab + (_ * 0x10)
- __ = gg.getValues({
- { address = sym, flags = gg.TYPE_DWORD },
- { address = sym + 0x4, flags = gg.TYPE_DWORD },
- })
- if rdstr(strtab + __[1].value) == symName then
- return ElfData.vAddress + __[2].value
- end
- end
- end
- return nil
- end
- Hack["GOD"].Address = BaseAddress + 0x2d2ff0
- Hack["LGG"].Address = BaseAddress + 0x2d3198
- Hack["LOG"].Address = BaseAddress + 0x9d6cb0
- Hack["DIE"].Address = BaseAddress + 0x65d8e4
- Hack["SPEED_LOG"].Address = BaseAddress + 0x2d1310
- Hack["TOWER"].Address = BaseAddress + 0x2c0064
- Hack["NOPE"].Address = BaseAddress + 0x65d8e4
- SPEED_LOG()
- Msg("เเนะนำอย่านำไปใช้ใน PvP ระวังถูกเเบน" , "OK") -- คำสั่งเตือน --
- gg.setVisible(true)
- while(true) do
- if gg.isVisible(true)
- then SPEED_LOG()
- i = gg.prompt({
- -- เมนูสคริปต์ต่างๆ --
- "💥 Line Rangers 6.0.0 💥 \n เวอร์ชั่นสคริปต์ ทดสอบ ("..sXs..")",
- "1.".. Bool2Switch(not Hack["GOD"].Switch) .. " " .. Hack["GOD"].Name,
- "2.".. Bool2Switch(not Hack["LGG"].Switch) .. " " .. Hack["LGG"].Name,
- "3.".. Bool2Switch(not Hack["DIE"].Switch) .. " " .. Hack["DIE"].Name,
- "4.".. Bool2Switch(not Hack["LOG"].Switch) .. " " .. Hack["LOG"].Name,
- "5.".. Bool2Switch(not Hack["SPEED_LOG"].Switch) .. " " .. Hack["SPEED_LOG"].Name,
- "6.".. Bool2Switch(not Hack["TOWER"].Switch) .. " " .. Hack["TOWER"].Name,
- "7.".. Bool2Switch(not Hack["NOPE"].Switch) .. " " .. Hack["NOPE"].Name,
- "ลิ้งโหลดต่างๆ", -- ไปหน้าเมนู 2 --
- "ปิดสคริปต์"
- -- ใส่ชื่อเราจำเป็นต้อง _ เวรวรรคเเทน --
- },{"เขียนโดย_TYTLGG_PRO"},{
- "number",
- "checkbox",
- "checkbox",
- "checkbox",
- "checkbox", -- พอมีฟังชั่นใหม่มาจำเป็นต้องใส่ checkbox --
- "checkbox",
- "checkbox",
- "checkbox",
- "checkbox",
- "checkbox"
- })
- -- คำสั่ง --
- if i ~= nil then
- if i[1] then gg.setVisible(false) gg.toast("หวัดดี") gg.setVisible(true) end
- if i[2] then gg.setVisible(false) Cheat(Hack["GOD"]) gg.setVisible(false) end
- if i[3] then gg.setVisible(false) Cheat(Hack["LGG"]) gg.setVisible(false) end
- if i[4] then gg.setVisible(false) Cheat(Hack["DIE"]) gg.setVisible(false) end
- if i[5] then gg.setVisible(false) Cheat(Hack["LOG"]) gg.setVisible(false) end
- if i[6] then gg.setVisible(false) Cheat(Hack["SPEED_LOG"]) gg.setVisible(false) end
- if i[7] then gg.setVisible(false) Cheat(Hack["TOWER"]) gg.setVisible(false) end
- if i[8] then gg.setVisible(false) Cheat(Hack["NOPE"]) gg.setVisible(false) end
- -- เมนู 2 เเบบมีลิ้งต่างๆ สคริปต์ --
- if i[9] then
- SPEED_LOG()
- while(true) do
- o = gg.prompt({
- "ลิ้งโหลด GG", -- สามารถเอาลิ้งมาใส่ใด้
- "ลิ้งโหลดเเอพโคลน", -- เหรอจะใส่เป็นลิ้งช่องเราก็ใด้
- "ลิ้งโหลดสคริปต์คนอื่น",
- "กลับไปหน้าเมนู"
- },{
- -- ลิ้งอะไรก็ใด้ --
- "https://gameguardian.net/",
- "https://gameguardian.net/forum/topic/19421-virtual-spaces-to-run-gameguardian-without-root/",
- "https://gameguardian.net/forum/files/category/6-lua-scripts/",
- -- ต่อไป --
- },{
- -- คำสั่งเช่น number, text, checkbox --
- "number",
- "number", -- ถ้าใส่เป็นข้อความก็ใช้คำสั่ง text เหรอ number --
- "number",
- "checkbox" -- เเต่ถ้าคำสั่งกดเฉยๆก็ใช้ checkbox --
- -- จบคำสั่ง --
- })
- if o ~= nil then
- if o[1] then gg.setVisible(false) gg.setVisible(true) gg.setVisible(false) end
- if o[2] then gg.setVisible(false) gg.setVisible(true) gg.setVisible(false) end
- if o[3] then Hey(" กลับไปหน้าเมนู !") gg.setVisible(true) break end
- end
- end
- end
- -- มีเเค่นี้ --
- if i[10] then gg.setVisible(false) break gg.setVisible(false) end
- end
- end
- gg.sleep(ScriptSpeed) -- ความเร็วสคริปต์ --
- end
- -- จบการทำงานสคริปต์ --
- if gg.alert("🤯 ต้องการจะออกเหรอ ?\n\nถ้าออกสคริปไปเเล้วโปรยังทำงานอยู่เเต่สามารถปิดใด้ที่กดปิดโปรทุกฟังชั้น.\nต้องการจะปิดโปรก่อนไม่ก่อนออกจากระบบ", "🔔 ปิดทุกฟังชั่น", "⚠️ เปิดฟังชั่นทิ้งไว้") == 2 then
- gg.toast("📸 ฟังชั่นยังเปิดใช้งานไว้อยู่ !")
- else
- for _ in pairs(Hack) do
- if Hack[_].Switch ~= nil then Hack[_].Switch = true
- if Hack[_].Alert ~= nil then Hack[_].Alert = 1 end -- คำสั่งปิดฟังชั่น --
- if Hack[_].Exec ~= nil then Hack[_].Exec = nil end
- if Hack[_].Address ~= nil then Cheat(Hack[_]) end
- end
- end
- gg.toast("📷 ปิดทุกฟังชั่นเเล้ว")
- end
- print([[ขอบคุณที่ใช้งานสคริปต์ !
- _________________________________________
- ⚙ ขอบคุณที่ใช้สคริปต์ ⚙
- 💿💵💵💵💵💵💵💵💵💵💵💵💵💿
- สร้างโดย-- TYTLGG_PRO
- หาค่าโดย-- TYTLGG_PRO & Speed_log
- YOUTUBE-- TYTLGG_PRO
- 🔜🔜🔜--------😎 บ่ายคับ 😎---------🔙🔙🔙
- _________________________________________
- ]])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement