Advertisement
Guest User

Script Lineranger 6.0.0 V2

a guest
Aug 7th, 2019
1,016
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.78 KB | None | 0 0
  1. gg.alert(" !! คำเตือน !!\n\n-สคริปต์ตัวนี้เป็นโค๊ตขั้นสูง\n-เราได้ทำการใส่โทรจันในสคริปเพื่อป้องกันการแกะสคริปต์\n-ถ้าทำการแกะสคริปต์เราไม่รับรองความปลอดภัยของมือถือคุณ " , "OK")
  2. _File = gg.getFile() Hey = gg.toast
  3. local _ = gg.prompt Msg = gg.alert gg.setVisible(false)
  4. 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)()
  5. gg.alert("! คำแนะนำ-ฟังชั่นศัตรูไม่ออก\n-เข้าเล่นแล้วค่อย 🔵 เปิด\n-บางฟังชั่นอาจมีบัค" , "OK")
  6. local MemRange = gg.REGION_C_BSS
  7. local ScriptSpeed = 0
  8. local Hack = true Hack = 0 Hack = {} Hack = 0xC + 0x5EC Hack_Float = gg.TYPE_FLOAT Hack_Qword = gg.TYPE_QWORD Hack= {
  9. ["GOD"] = {Name = " ติดคริ100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
  10. ["LGG"] = {Name = " สกิลคริ100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
  11. ["DIE"] = {Name = " สกิลไม่คลูดาวน์100% ", Switch = false, ["🔵เปิด"] = 0x9885789492, Type = Hack_Float,},
  12. ["LOG"] = {Name = " ศัตรูไม่ออก ", Switch = false, ["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
  13. ["SPEED_LOG"] = {Name = " ศัตรูยืนนิ่ง+มีผลกับเรนอจอร์ ", Switch = false,["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
  14. ["TOWER"] = {Name = " ป้อมสเตจพิเศษไม่ยิง ", Switch = false, ["🔵เปิด"] = 0x00000000, Type = Hack_Float,},
  15. ["NOPE"] = {Name = " เพิ่มความเร็วขีปนาวุธ+โจมตี ", Switch = false, ["🔵เปิด"] = 0x30, Type = Hack_Float,},}
  16. function ForceExit()
  17. ::force_exit:: os.exit() goto force_exit
  18. end
  19. function PopupBox(Caption, Text)
  20. if Text == nil then Text = "" end
  21. gg.alert(Caption .. '\n' .. Text)
  22. end
  23. function Bool2Switch(Bool)
  24. if not Bool then return "🔴ปิด" end
  25. return "🔵เปิด"
  26. end
  27. function Cheat(Hack)
  28. if Hack.Address ~= nil then
  29. if Hack.Alert ~= nil and Hack.Alert ~= 1 then PopupBox("ข้อความ: ".. Hack.Name, Hack.Alert); Hack.Alert = 1 end
  30. if Hack.Exec ~=nil then Hack.Exec() end
  31. if Hack.Type ~= nil and Hack["🔴ปิด"] == nil then Hack["🔴ปิด"] = rpm(Hack.Address, Hack.Type) end
  32. Hack.Switch = not Hack.Switch
  33. if Hack.Type ~= nil then
  34. wpm(Hack.Address, Hack.Type, Hack[Bool2Switch(Hack.Switch)])
  35. gg.toast("ฟังชั่น: " .. Hack.Name .. " -> " .. Bool2Switch(Hack.Switch))
  36. return true
  37. end
  38. end
  39. PopupBox("อุปมีปัญหา !", Hack.Name.." ไม่พบที่อยู่ Offset ")
  40. return false
  41. end
  42. function isAddrValid(Address)
  43. if Address ~= nil and Address ~= 0 or Address then
  44. return true
  45. end
  46. return false
  47. end
  48. function tohex(Data)
  49. return Data:gsub(".", function(a) return string.format("%02X", (string.byte(a))) end):gsub(" ", "")
  50. end
  51. function wpm(Address, ggtype, data)
  52. if gg.setValues({{address = Address, flags = ggtype, value = data}}) then
  53. return true
  54. else
  55. return false
  56. end
  57. end
  58. function rpm(Address, ggtype)
  59. res = gg.getValues({{address = Address, flags = ggtype}})
  60. if type(res) ~= "string" then
  61. if ggtype == gg.TYPE_BYTE then
  62. result = res[1].value & 0xFF
  63. elseif ggtype == gg.TYPE_WORD then
  64. result = res[1].value & 0xFFFF
  65. elseif ggtype == gg.TYPE_DWORD then
  66. result = res[1].value & 0xFFFFFFFF
  67. elseif ggtype == gg.TYPE_QWORD then
  68. result = res[1].value & 0xFFFFFFFFFFFFFFFF
  69. elseif ggtype == gg.TYPE_XOR then
  70. result = res[1].value & 0xFFFFFFFF
  71. else
  72. result = res[1].value
  73. end
  74. return result
  75. else
  76. return false
  77. end
  78. end
  79. function rwmem(Address, SizeOrBuffer)
  80. _rw = {}
  81. if type(SizeOrBuffer) == "number" then
  82. _ = ""
  83. for _ = 1, SizeOrBuffer do _rw[_] = {address = (Address - 1) + _, flags = gg.TYPE_BYTE} end
  84. for v, __ in ipairs(gg.getValues(_rw)) do _ = _ .. string.format("%02X", __.value & 0xFF) end
  85. return _
  86. end
  87. Byte = {} SizeOrBuffer:gsub("..", function(x)
  88. Byte[#Byte + 1] = x _rw[#Byte] = {address = (Address - 1) + #Byte, flags = gg.TYPE_BYTE, value = x .. "h"}
  89. end)
  90. gg.setValues(_rw)
  91. end
  92. SPEED_LOG=function() gg.setVisible(false) end
  93. function reverseAddress(address)
  94. return (address & 0x000000FF) << 24 | (address & 0x0000FF00) << 8 | (address & 0x00FF0000) >> 8 | (address & 0xFF000000) >> 24
  95. end
  96. function setjmp(address, target)
  97. local o_opsc = rwmem(address, 8)
  98. rwmem(address, "04F01FE5"..string.format("%08x", reverseAddress(target)))
  99. return function() rwmem(address, o_opsc) end
  100. end
  101. function prephook(address, writeoricode)
  102. local _alloc = gg.allocatePage(gg.PROT_READ | gg.PROT_WRITE | gg.PROT_EXEC)
  103. gg.sleep(0)
  104. if writeoricode then rwmem(_alloc, _oriop) end
  105. return _alloc + (writeoricode == true and 0x8 or 0), address + 0x8
  106. end
  107. function getregister(address, reg)
  108. _getregsc, n_address = prephook(address, true)
  109. rwmem(_getregsc, "04"..string.format("%02X", (reg & 0xFF) << 4).."8FE504F01FE50000000000000000")
  110. wpm(_getregsc + 0x8, 4, n_address)
  111. local r_restorereg = setjmp(address, _getregsc - 0x8)
  112. return _getregsc + 0xC, r_restorereg
  113. end
  114. function GetLibraryTextBase(lib)
  115. for _, __ in pairs(gg.getRangesList(lib)) do
  116. if __["state"] == "Xa" then return __["start"], __["end"] end
  117. end
  118. return nil
  119. end
  120. SPEED_LOG() gg.setRanges(MemRange) sXs = "ปกติ"
  121. gg.toast("📀 กำลังค้นหาไฟล์ libgame.so โปรดรอ...", true) do gg.sleep(1500) end
  122. gg.sleep(1300)
  123. BaseAddress = GetLibraryTextBase("libgame.so")
  124. if not isAddrValid(BaseAddress) then
  125. SPEED_LOG()
  126. PopupBox("สคริปต์มีปัญหา:", "สคริปต์ไม่พบไฟล์\n\n1.libgame.so\n\nลองเข้าเกม Line Rangers เพื่อให้สคริปต์รันได้")
  127. os.exit()
  128. end
  129. function GetLibraryBase(lib)
  130. for _, __ in pairs(gg.getRangesList(lib)) do
  131. if __["state"] == "Xa" or __["state"] == "Xs" then return __["start"], __["end"] end
  132. end
  133. return nil
  134. end
  135. function GetLibInformation(LibName)
  136. local LibBase = GetLibraryBase(LibName)
  137. if LibBase ~= nil then
  138. _ = gg.getValues({
  139. {address = LibBase, flags = gg.TYPE_DWORD },
  140. {address = LibBase + 0x12, flags = gg.TYPE_WORD },
  141. {address = LibBase + 0x1C, flags = gg.TYPE_DWORD },
  142. {address = LibBase + 0x24, flags = gg.TYPE_DWORD },
  143. {address = LibBase + 0x2A, flags = gg.TYPE_WORD },
  144. {address = LibBase + 0x2C, flags = gg.TYPE_WORD },
  145. })
  146. local Elf = {
  147. Magic = _[1].value,
  148. Machine = _[2].value,
  149. PHOffset = _[3].value,
  150. Flags = _[4].value,
  151. PHSize = _[5].value,
  152. PHNum = _[6].value,
  153. pHdr = {},
  154. Dyn = {},
  155. Sym = {},
  156. vAddress = LibBase
  157. }
  158. for _ = 1, Elf.PHNum do
  159. local _pHdr = LibBase + Elf.PHOffset + (_ * Elf.PHSize)
  160. local pHdr = gg.getValues({
  161. { address = _pHdr, flags = gg.TYPE_DWORD },
  162. { address = _pHdr + 4, flags = gg.TYPE_DWORD },
  163. { address = _pHdr + 8, flags = gg.TYPE_DWORD },
  164. { address = _pHdr + 0xC, flags = gg.TYPE_DWORD },
  165. { address = _pHdr + 0x10, flags = gg.TYPE_DWORD },
  166. { address = _pHdr + 0x14, flags = gg.TYPE_DWORD },
  167. { address = _pHdr + 0x18, flags = gg.TYPE_DWORD },
  168. { address = _pHdr + 0x1C, flags = gg.TYPE_DWORD },
  169. })
  170. Elf.pHdr[_] = {
  171. p_type = pHdr[1].value,
  172. p_offset = pHdr[2].value,
  173. p_vaddr = pHdr[3].value,
  174. p_paddr = pHdr[4].value,
  175. p_filesz = pHdr[5].value,
  176. p_memsz = pHdr[6].value,
  177. p_flags = pHdr[7].value,
  178. p_align = pHdr[8].value
  179. }
  180. end
  181. for _ = 1, Elf.PHNum do
  182. if Elf.pHdr[_].p_type == 2 then
  183. local DynCount = 0
  184. while true do
  185. local _Dyn = gg.getValues({
  186. { address = LibBase + Elf.pHdr[_].p_vaddr + (DynCount * 8), flags = gg.TYPE_DWORD },
  187. { address = LibBase + Elf.pHdr[_].p_vaddr + 4 + (DynCount * 8), flags = gg.TYPE_DWORD }
  188. })
  189. if _Dyn[1].value == 0 and _Dyn[2].value == 0 then break end
  190. DynCount = DynCount + 1
  191. Elf.Dyn[DynCount] = {
  192. d_tag = _Dyn[1].value,
  193. d_val = _Dyn[2].value,
  194. d_ptr = _Dyn[2].value
  195. }
  196. end
  197. end
  198. end
  199. return Elf
  200. end
  201. return nil
  202. end
  203. function GetSymbolAddress(ElfData, symName)
  204. for _ = 1, #ElfData.Dyn do
  205. 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
  206. if tonumber(ElfData.Dyn[_].d_tag) == 5 then strtab = ElfData.Dyn[_].d_ptr + ElfData.vAddress end
  207. if tonumber(ElfData.Dyn[_].d_tag) == 6 then symtab = ElfData.Dyn[_].d_ptr + ElfData.vAddress end
  208. end
  209. if nGG ~= nil then
  210. for _ = 1, nGG do
  211. local sym = symtab + (_ * 0x10)
  212. __ = gg.getValues({
  213. { address = sym, flags = gg.TYPE_DWORD },
  214. { address = sym + 0x4, flags = gg.TYPE_DWORD },
  215. })
  216. if rdstr(strtab + __[1].value) == symName then
  217. return ElfData.vAddress + __[2].value
  218. end
  219. end
  220. end
  221. return nil
  222. end
  223. Hack["GOD"].Address = BaseAddress + 0x2d2ff0
  224. Hack["LGG"].Address = BaseAddress + 0x2d3198
  225. Hack["LOG"].Address = BaseAddress + 0x9d6cb0
  226. Hack["DIE"].Address = BaseAddress + 0x65d8e4
  227. Hack["SPEED_LOG"].Address = BaseAddress + 0x2d1310
  228. Hack["TOWER"].Address = BaseAddress + 0x2c0064
  229. Hack["NOPE"].Address = BaseAddress + 0x65d8e4
  230. SPEED_LOG()
  231. Msg("เเนะนำอย่านำไปใช้ใน PvP ระวังถูกเเบน" , "OK") -- คำสั่งเตือน --
  232. gg.setVisible(true)
  233. while(true) do
  234. if gg.isVisible(true)
  235. then SPEED_LOG()
  236. i = gg.prompt({
  237. -- เมนูสคริปต์ต่างๆ --
  238. "💥 Line Rangers 6.0.0 💥 \n เวอร์ชั่นสคริปต์ ทดสอบ ("..sXs..")",
  239. "1.".. Bool2Switch(not Hack["GOD"].Switch) .. " " .. Hack["GOD"].Name,
  240. "2.".. Bool2Switch(not Hack["LGG"].Switch) .. " " .. Hack["LGG"].Name,
  241. "3.".. Bool2Switch(not Hack["DIE"].Switch) .. " " .. Hack["DIE"].Name,
  242. "4.".. Bool2Switch(not Hack["LOG"].Switch) .. " " .. Hack["LOG"].Name,
  243. "5.".. Bool2Switch(not Hack["SPEED_LOG"].Switch) .. " " .. Hack["SPEED_LOG"].Name,
  244. "6.".. Bool2Switch(not Hack["TOWER"].Switch) .. " " .. Hack["TOWER"].Name,
  245. "7.".. Bool2Switch(not Hack["NOPE"].Switch) .. " " .. Hack["NOPE"].Name,
  246. "ลิ้งโหลดต่างๆ", -- ไปหน้าเมนู 2 --
  247. "ปิดสคริปต์"
  248. -- ใส่ชื่อเราจำเป็นต้อง _ เวรวรรคเเทน --
  249. },{"เขียนโดย_TYTLGG_PRO"},{
  250. "number",
  251. "checkbox",
  252. "checkbox",
  253. "checkbox",
  254. "checkbox", -- พอมีฟังชั่นใหม่มาจำเป็นต้องใส่ checkbox --
  255. "checkbox",
  256. "checkbox",
  257. "checkbox",
  258. "checkbox",
  259. "checkbox"
  260. })
  261. -- คำสั่ง --
  262. if i ~= nil then
  263. if i[1] then gg.setVisible(false) gg.toast("หวัดดี") gg.setVisible(true) end
  264. if i[2] then gg.setVisible(false) Cheat(Hack["GOD"]) gg.setVisible(false) end
  265. if i[3] then gg.setVisible(false) Cheat(Hack["LGG"]) gg.setVisible(false) end
  266. if i[4] then gg.setVisible(false) Cheat(Hack["DIE"]) gg.setVisible(false) end
  267. if i[5] then gg.setVisible(false) Cheat(Hack["LOG"]) gg.setVisible(false) end
  268. if i[6] then gg.setVisible(false) Cheat(Hack["SPEED_LOG"]) gg.setVisible(false) end
  269. if i[7] then gg.setVisible(false) Cheat(Hack["TOWER"]) gg.setVisible(false) end
  270. if i[8] then gg.setVisible(false) Cheat(Hack["NOPE"]) gg.setVisible(false) end
  271. -- เมนู 2 เเบบมีลิ้งต่างๆ สคริปต์ --
  272. if i[9] then
  273. SPEED_LOG()
  274. while(true) do
  275. o = gg.prompt({
  276. "ลิ้งโหลด GG", -- สามารถเอาลิ้งมาใส่ใด้
  277. "ลิ้งโหลดเเอพโคลน", -- เหรอจะใส่เป็นลิ้งช่องเราก็ใด้
  278. "ลิ้งโหลดสคริปต์คนอื่น",
  279. "กลับไปหน้าเมนู"
  280. },{
  281. -- ลิ้งอะไรก็ใด้ --
  282. "https://gameguardian.net/",
  283. "https://gameguardian.net/forum/topic/19421-virtual-spaces-to-run-gameguardian-without-root/",
  284. "https://gameguardian.net/forum/files/category/6-lua-scripts/",
  285. -- ต่อไป --
  286. },{
  287. -- คำสั่งเช่น number, text, checkbox --
  288. "number",
  289. "number", -- ถ้าใส่เป็นข้อความก็ใช้คำสั่ง text เหรอ number --
  290. "number",
  291. "checkbox" -- เเต่ถ้าคำสั่งกดเฉยๆก็ใช้ checkbox --
  292. -- จบคำสั่ง --
  293. })
  294. if o ~= nil then
  295. if o[1] then gg.setVisible(false) gg.setVisible(true) gg.setVisible(false) end
  296. if o[2] then gg.setVisible(false) gg.setVisible(true) gg.setVisible(false) end
  297. if o[3] then Hey(" กลับไปหน้าเมนู !") gg.setVisible(true) break end
  298. end
  299. end
  300. end
  301. -- มีเเค่นี้ --
  302. if i[10] then gg.setVisible(false) break gg.setVisible(false) end
  303. end
  304. end
  305. gg.sleep(ScriptSpeed) -- ความเร็วสคริปต์ --
  306. end
  307. -- จบการทำงานสคริปต์ --
  308. if gg.alert("🤯 ต้องการจะออกเหรอ ?\n\nถ้าออกสคริปไปเเล้วโปรยังทำงานอยู่เเต่สามารถปิดใด้ที่กดปิดโปรทุกฟังชั้น.\nต้องการจะปิดโปรก่อนไม่ก่อนออกจากระบบ", "🔔 ปิดทุกฟังชั่น", "⚠️ เปิดฟังชั่นทิ้งไว้") == 2 then
  309. gg.toast("📸 ฟังชั่นยังเปิดใช้งานไว้อยู่ !")
  310. else
  311. for _ in pairs(Hack) do
  312. if Hack[_].Switch ~= nil then Hack[_].Switch = true
  313. if Hack[_].Alert ~= nil then Hack[_].Alert = 1 end -- คำสั่งปิดฟังชั่น --
  314. if Hack[_].Exec ~= nil then Hack[_].Exec = nil end
  315. if Hack[_].Address ~= nil then Cheat(Hack[_]) end
  316. end
  317. end
  318. gg.toast("📷 ปิดทุกฟังชั่นเเล้ว")
  319. end
  320. print([[ขอบคุณที่ใช้งานสคริปต์ !
  321. _________________________________________
  322. ⚙ ขอบคุณที่ใช้สคริปต์ ⚙
  323. 💿💵💵💵💵💵💵💵💵💵💵💵💵💿
  324.  
  325. สร้างโดย-- TYTLGG_PRO
  326. หาค่าโดย-- TYTLGG_PRO & Speed_log
  327. YOUTUBE-- TYTLGG_PRO
  328. 🔜🔜🔜--------😎 บ่ายคับ 😎---------🔙🔙🔙
  329. _________________________________________
  330. ]])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement