wilmans2m

JackalRetro

Mar 28th, 2024 (edited)
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 29.90 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. GLabel = 'Jackal Retro'
  3. GProcess = 'com.falcon.dx3.jackal.arcade.shooter'
  4. GVersion = '(vAU.02)'
  5. xbit = 64
  6. LibResult = 1
  7. xlib = 'libil2cpp.so'
  8. xREV = 1  I={}
  9. xCNE = 0
  10. xSSE = 0
  11. XbitX = 2
  12. printx = '---------------------------------------------------------------'
  13. expire='free'
  14. game = gg.getTargetInfo()
  15. P=game.processName
  16. FP=game.name
  17. L=gg.getTargetInfo().label
  18. M=gg.getTargetInfo()["label"]
  19. V=game.versionName
  20. TP=gg.getTargetPackage()
  21. xTAGx="Have fun"
  22. xLINKx="https://t.me/HxE_Chat"
  23. xLINK1x="https://www.tiktok.com/@hxesq"
  24. APEXSN=gg.getFile():match('[^/]+$')
  25. printx="---------------------------------------------------------------"
  26. print(printx)
  27. print(xTAGx)
  28. print("Telegram = "..xLINKx)
  29. print("TikTok = "..xLINK1x)
  30. print(printx)  
  31. print("Script = "..GLabel.."  "..GVersion)
  32. --███████████████████████
  33. --███████████████████████
  34. --███████████████████████
  35. -- APEX[GG]v2
  36. apex=1
  37. gg.setVisible(false)
  38. v=gg.getTargetInfo()
  39.     if v==nil then
  40.         print("×× ERROR ××\n×× INVALID PROCESS SELECTED / OR NO ROOT ACCESS")
  41.         gg.setVisible(true) os.exit()
  42.         return
  43.     end
  44.    
  45. HxEmenu = ('            ⚡HxE Menu by wils2m⚡\
  46.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  47.                     ⛥🇮‌🇳‌🇫‌🇴‌⛥\
  48.  🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
  49.  🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
  50.    🎰🅐🅡🅜🎰   : '..xbit..'\
  51. \
  52. ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
  53. 🎁 Encryption 🎁 :  '..expire..'\
  54.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
  55.            
  56. gg.alert(HxEmenu)
  57.  
  58. gg.alert("                           Patch Note\
  59.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  60. - HxE script menu\
  61. - Huge thanks to (Apex[GG])\
  62. - Auto update implemented\
  63. - Anti ban (soft)\
  64. - God mode\
  65. - Infinite energy\
  66. - Battlepass premium\
  67. - Money, Cash never decrease\
  68. - Parts never decrease\
  69.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  70. ")
  71.  
  72. ------------------------------------------------------------------------------
  73. A={} for i =1,100 do A[i]={} end
  74. ------------------------------------------------------------------------------
  75. OFF="× " ON="√ "
  76. GM=OFF UE=OFF UM=OFF UP=OFF MI=OFF DR=OFF
  77.     if v.x64 then x1="hC0BEA0D2" x2='h006A98D2'
  78.     else x1="h990040E3" x2='h640000E3'
  79.     end
  80.  
  81. function menu()
  82. apex=0
  83. gg.toast(xTAGx)  
  84. mc=gg.multiChoice({
  85.     GM.."God mode",
  86.     UE.."Unlimited energy",
  87.     UM.."Money never decrease",
  88.     UP.."Parts never decrease",
  89.     MI.."Ticket Mission hack",
  90.     "[ EXIT ]"},
  91.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  92.    
  93.     if mc==nil then cancel() return end
  94.     if mc[1] then god() end
  95.     if mc[2] then energy() end
  96.     if mc[3] then money() end
  97.     if mc[4] then parts() end
  98.     if mc[5] then ticket() end
  99.    
  100. xhaX={
  101.     GM.."God mode",
  102.     UE.."Unlimited energy",
  103.     UM.."Money never decrease",
  104.     UP.."Parts never decrease",
  105.     MI.."Ticket Mission hack",
  106.     }
  107. xhaX=table.concat(xhaX, "\n")
  108. xhaX=tostring(xhaX)
  109.  
  110.     if mc[6] then exit() return end
  111.  
  112. gg.toast("[√] Complete")
  113. gg.alert(GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)  
  114.  
  115. end
  116.  
  117. --███████████████████████
  118.  
  119. --// Namespace: CodeStage.AntiCheat.Storage
  120. --public struct ObscuredFileReadResult
  121. --public bool get_CheatingDetected()
  122.     A[1].name="CodeStage.AntiCheat.Storage"    
  123.     A[1].class="ObscuredFileReadResult"
  124.     A[1].method="get_CheatingDetected"
  125.  
  126. --//Namespace: CodeStage.AntiCheat.Time
  127. --public class SpeedHackProofTime : KeepAliveBehaviour<SpeedHackProofTime>
  128. --private static bool speedHackDetected; // 0x1
  129. --private void OnSpeedHackDetected()
  130.     A[2].name="CodeStage.AntiCheat.Time"    
  131.     A[2].class="SpeedHackProofTime"
  132.     A[2].method="OnSpeedHackDetected"
  133.  
  134.     function anticheat()
  135.     for i =A[1].start, A[2].finish do
  136.     o=I[i] x=0 arm() end
  137.     end
  138.  
  139. --███████████████████████
  140.        
  141. --███████████████████████      
  142. --// Namespace: Jackal.Combat
  143. --public class PlayerCombat : MonoBehaviour, ICombat
  144. --public void TakeDamage(float trueDamage)
  145. --public void TakeDamage(DamageInfo damageInfo)
  146.     A[3].name="Jackal.Combat"    
  147.     A[3].class="PlayerCombat"
  148.     A[3].method="TakeDamage"
  149.    
  150.     function god()
  151.     for i = A[3].start, A[3].finish do o=I[i]
  152.     if GM==OFF then x=0  arm() else revert() end
  153.     end
  154.  
  155.     if GM==OFF then GM=ON else GM=OFF end
  156.     end
  157.  
  158. --███████████████████████
  159.  
  160. --// Namespace: Core.Data
  161. --public class UserRecordManager : IInitializable, IDisposable
  162. --public bool MinusEnergy(int number, string where, string details)
  163.     A[4].name="Core.Data"    
  164.     A[4].class="UserRecordManager"
  165.     A[4].method="MinusEnergy"
  166.  
  167.     function energy()
  168.     for i = A[4].start, A[4].finish do o=I[i]
  169.     if UE==OFF then x=0  arm() else revert() end
  170.     end
  171.  
  172.     if UE==OFF then UE=ON else UE=OFF end
  173.     end
  174.    
  175. --███████████████████████
  176.  
  177. --// Namespace: Core.Data
  178. --public class UserRecordManager : IInitializable, IDisposable
  179. --public bool MinusCoin(int number, string where, string details)
  180.     A[5].name="Core.Data"    
  181.     A[5].class="UserRecordManager"
  182.     A[5].method="MinusCoin"
  183. --public bool MinusCash(int number, string where, string details)
  184.     A[6].name="Core.Data"    
  185.     A[6].class="UserRecordManager"
  186.     A[6].method="MinusCash"
  187.  
  188.     function money()
  189.     for i = 5, 6 do if A[i].error == 1 then error() return end end
  190.     for i = A[5].start, A[6].finish do o=I[i]
  191.     if UM==OFF then x=0  arm() else revert() end
  192.     end
  193.  
  194.     if UM==OFF then UM=ON else UM=OFF end
  195.     end
  196.  
  197.  --███████████████████████
  198.  
  199. --// Namespace: Core.Data
  200. --public class UserRecordManager : IInitializable, IDisposable
  201. --public bool MinusFuel(float number, string where, string details)
  202.     A[7].name="Core.Data"    
  203.     A[7].class="UserRecordManager"
  204.     A[7].method="MinusFuel"
  205. --public bool MinusCMetal(float number, string where, string details)
  206.     A[8].name="Core.Data"    
  207.     A[8].class="UserRecordManager"
  208.     A[8].method="MinusCMetal"
  209. --public bool MinusPMetal(float number, string where, string details)
  210.     A[9].name="Core.Data"    
  211.     A[9].class="UserRecordManager"
  212.     A[9].method="MinusPMetal"
  213. --public bool MinusRawFuel(float number, string where, string details)
  214.     A[10].name="Core.Data"    
  215.     A[10].class="UserRecordManager"
  216.     A[10].method="MinusRawFuel"
  217. --public bool MinusRawCMetal(float number, string where, string details)
  218.     A[11].name="Core.Data"    
  219.     A[11].class="UserRecordManager"
  220.     A[11].method="MinusRawCMetal"
  221. --public bool MinusRawPMetal(float number, string where, string details)
  222.     A[12].name="Core.Data"    
  223.     A[12].class="UserRecordManager"
  224.     A[12].method="MinusRawPMetal"
  225. --public bool MinusTuningResetShard(int number, string where, string details)
  226.     A[13].name="Core.Data"    
  227.     A[13].class="UserRecordManager"
  228.     A[13].method="MinusTuningResetShard"
  229. --public bool MinusPowerCell(int number, string where, string details)
  230.     A[14].name="Core.Data"    
  231.     A[14].class="UserRecordManager"
  232.     A[14].method="MinusPowerCell"
  233. --public bool MinusUpgradeCircuit(int number, string where, string details)
  234.     A[15].name="Core.Data"    
  235.     A[15].class="UserRecordManager"
  236.     A[15].method="MinusUpgradeCircuit"
  237. --public bool MinusBattleMedal(int number, string where, string details)
  238.     A[16].name="Core.Data"    
  239.     A[16].class="UserRecordManager"
  240.     A[16].method="MinusBattleMedal"
  241. --public bool MinusEvoEngine(int number, int ID, string where, string details)
  242.     A[17].name="Core.Data"    
  243.     A[17].class="UserRecordManager"
  244.     A[17].method="MinusEvoEngine"
  245. --public bool MinusLimitBreakHammer(int number, int ID, string where, string details)
  246.     A[18].name="Core.Data"    
  247.     A[18].class="UserRecordManager"
  248.     A[18].method="MinusLimitBreakHammer"
  249. --public bool MinusOptionChangePart(int number, string where, string details)
  250.     A[19].name="Core.Data"    
  251.     A[19].class="UserRecordManager"
  252.     A[19].method="MinusOptionChangePart"
  253. --public bool MinusOptionLockPart(int number, string where, string details)
  254.     A[20].name="Core.Data"    
  255.     A[20].class="UserRecordManager"
  256.     A[20].method="MinusOptionLockPart"
  257. --public bool MinusEvoGear(int number, string where, string details)
  258.     A[21].name="Core.Data"    
  259.     A[21].class="UserRecordManager"
  260.     A[21].method="MinusEvoGear"
  261. --public bool MinusDogTag(int number, string where, string details)
  262.     A[22].name="Core.Data"    
  263.     A[22].class="UserRecordManager"
  264.     A[22].method="MinusDogTag"
  265. --public bool MinusScratchedNote(int number, string where, string details)
  266.     A[23].name="Core.Data"    
  267.     A[23].class="UserRecordManager"
  268.     A[23].method="MinusScratchedNote"
  269. --public bool MinusBrokenShard(int number, string where, string details)
  270.     A[24].name="Core.Data"    
  271.     A[24].class="UserRecordManager"
  272.     A[24].method="MinusBrokenShard"
  273. --public bool MinusTuningKit(int number, int ID, string where, string details)
  274.     A[25].name="Core.Data"    
  275.     A[25].class="UserRecordManager"
  276.     A[25].method="MinusTuningKit"
  277. --public bool MinusMetalAlloy(int number, int ID, string where, string details)
  278.     A[26].name="Core.Data"    
  279.     A[26].class="UserRecordManager"
  280.     A[26].method="MinusMetalAlloy"
  281. --public bool MinusWeaponShard(int number, int ID, string where, string details)
  282.     A[27].name="Core.Data"    
  283.     A[27].class="UserRecordManager"
  284.     A[27].method="MinusRawFuel"
  285. --public bool MinusDroneShard(int number, int ID, string where, string details)
  286.     A[28].name="Core.Data"    
  287.     A[28].class="UserRecordManager"
  288.     A[28].method="MinusDroneShard"
  289. --public bool MinusAttachmentShard(int number, int ID, string where, string details)
  290.     A[29].name="Core.Data"    
  291.     A[29].class="UserRecordManager"
  292.     A[29].method="MinusAttachmentShard"
  293. --public bool MinusBlueprint(int number, int ID, string where, string details)
  294.     A[30].name="Core.Data"    
  295.     A[30].class="UserRecordManager"
  296.     A[30].method="MinusBlueprint"
  297. --public void MinusResources(ResourceRecord item, string where, string detail)
  298.     A[31].name="Core.Data"    
  299.     A[31].class="UserRecordManager"
  300.     A[31].method="MinusResources"
  301.    
  302.     function parts()
  303.     for i = 7, 31 do if A[i].error == 1 then error() return end end
  304.     for i = A[7].start, A[31].finish do o=I[i]
  305.     if UP==OFF then x=0  arm() else revert() end
  306.     end
  307.  
  308.     if UP==OFF then UP=ON else UP=OFF end
  309.     end
  310.  
  311.  --███████████████████████
  312.  
  313. --//Namespace: Jackal.Models.Data
  314. --public class Mission
  315. --public void MinusTicket()
  316.     A[32].name="Jackal.Models.Data"    
  317.     A[32].class="Mission"
  318.     A[32].method="MinusTicket"
  319. --// Namespace: Core.Data
  320. --public class UserRecordManager : IInitializable, IDisposable
  321. --public bool MinusSupplyTicket(int number, string where, string details)
  322.     A[33].name="Core.Data"    
  323.     A[33].class="UserRecordManager"
  324.     A[33].method="MinusSupplyTicket"
  325.  
  326.     function ticket()
  327.     for i = 32, 33 do if A[i].error == 1 then error() return end end
  328.     for i = A[32].start, A[33].finish do o=I[i]
  329.     if MI==OFF then x=0  arm() else revert() end
  330.     end
  331.  
  332.     if MI==OFF then MI=ON else MI=OFF end
  333.     end
  334.  
  335. --███████████████████████
  336. --// Namespace: Core.Data
  337. --public class UserRecordManager : IInitializable, IDisposable
  338.  --public bool IsBoughtStarterPack()
  339.     A[34].name="Core.Data"    
  340.     A[34].class="UserRecordManager"
  341.     A[34].method="IsBoughtStarterPack"
  342. --public bool IsBoughtStarterPack2()
  343.     A[35].name="Core.Data"    
  344.     A[35].class="UserRecordManager"
  345.     A[35].method="IsBoughtStarterPack2"
  346. --public bool IsBoughtBaseExpansionPack()
  347.     A[36].name="Core.Data"    
  348.     A[36].class="UserRecordManager"
  349.     A[36].method="IsBoughtBaseExpansionPack"
  350. --public bool IsBoughtTuningKitPack()
  351.     A[37].name="Core.Data"    
  352.     A[37].class="UserRecordManager"
  353.     A[37].method="IsBoughtTuningKitPack"
  354.    
  355.     function noads()
  356.     for i = 34, 37 do if A[i].error == 1 then error() return end end
  357.     for i =A[34].start, A[37].finish do
  358.     o=I[i] x=1 arm() end
  359.     end
  360.  
  361. --███████████████████████
  362.  
  363. --// Namespace: Core.Data
  364. --public class UserRecordManager : IInitializable, IDisposable
  365. --public bool CanAccessBattlePass(int battlePassID)
  366.     A[38].name="Core.Data"    
  367.     A[38].class="UserRecordManager"
  368.     A[38].method="CanAccessBattlePass"
  369. --public bool IsUpgradeBattlePass(int battlePassID)
  370.     A[39].name="Core.Data"    
  371.     A[39].class="UserRecordManager"
  372.     A[39].method="IsUpgradeBattlePass"
  373.  
  374. --//Namespace: Core.Data
  375. --public class UserRecordManager : IInitializable, IDisposable
  376. --public ObscuredInt GetVipPoint()
  377.  
  378. --//Namespace: Jackal.Models
  379. --public class VIPBlueprint : GenericBlueprintByRow
  380. --public int GetVipLevel(int vipPoint) { }
  381. --public int GetVipPointToReachLevel(int vipLevel)
  382.    
  383.     function pass()
  384.     for i = 38, 39 do if A[i].error == 1 then error() return end end
  385.     for i =A[38].start, A[39].finish do
  386.     o=I[i] x=1 arm() end
  387.     end
  388.  
  389. --███████████████████████
  390.     if v.processName~=GProcess then
  391.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  392.         gg.setVisible (true) os.exit()
  393.         return
  394.     end
  395. ------------------------------------------------------------------------------
  396.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  397.         print(xBITx)  
  398.         print(printx)  
  399. ------------------------------------------------------------------------------
  400.  
  401. isrdy=gg.alert("Jackal Retro\nThis Script is Auto-Updating. \nInitial Calibration May Take A While.\n\nYOU MUST NOT CURRENTLY BE IN ANY GAMEPLAY (MISSION/BATTLE/ETC). Otherwise, Calibration will Fail and Hacks Not Work\n\n(All hacks must be activated from lobby)","EXIT","START",xTAGx)  
  402. if isrdy~=2 then gg.setVisible(true) os.exit() return end
  403.  
  404. --███████████████████████
  405.     if LibResult==1 then
  406.     xAPEXx={} xXx=0
  407.     xLibRes=0
  408.     libx=gg.getRangesList()
  409.         if #(libx)==0 then
  410.         print("×× LIB ERROR #01 ××\nNo Libs Found\nTry a Different Virtual Environment \nor Try a Better Game Installation Method\nor Download Game From 'apkcombo.com' ")
  411.         gg.setVisible(true)
  412.         os.exit()
  413.         end
  414.     libx=gg.getRangesList(xlib)
  415.         if #(libx)==0 then  
  416.         print("×× No "..xlib.." Found")
  417.         xLibRes=2
  418.         goto APEX_SPLIT
  419.         end
  420.     xlibn=0
  421.         for i, v in ipairs(libx) do
  422.             if libx[i].state=="Xa" then
  423.             xXx=xXx+1
  424.             xAPEXx[xXx]=libx[i].start
  425.             xLibRes=1
  426.             end
  427.         end
  428.         if xLibRes==0 then
  429.         print("×× LIB ERROR #03 ××\nNo "..xlib.." Found in Xa\nTry a Different Virtual Environment \nor Try a Better Game Installation Method\nor Download Game From 'apkcombo.com' ")
  430.         gg.setVisible(true)
  431.         os.exit()    
  432.         end    
  433.                  
  434.         ::APEX_SPLIT::    
  435.         if xLibRes==2 then
  436.         splitapk=0
  437.         libx=gg.getRangesList()
  438.             for i, v in ipairs(libx) do
  439.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  440.                 splitapk=1
  441.                 end
  442.             end
  443.             if splitapk==1 then
  444.             xsapk={} xsapkx=0
  445.                 for i, v in ipairs(libx) do
  446.                     if libx[i].state=="Xa" then
  447.                     xsapkx=xsapkx+1
  448.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  449.                     end
  450.                 end
  451.                 if xsapkx~=0 then                
  452.                 APEXQ=math.max(table.unpack(xsapk))
  453.                     for i, v in ipairs(libx) do              
  454.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  455.                         xXx=xXx+1            
  456.                        xAPEXx[xXx]=libx[i].start
  457.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  458.                         xLibRes=1                      
  459.                         end
  460.                     end
  461.                 end
  462.             end
  463.          
  464.              if splitapk==0 and xLibRes~=1 then
  465.              print("×× No split_config Lib Found")  
  466.              xc=1 xt={}
  467.              libx=gg.getRangesList()
  468.                  for i, v in ipairs(libx) do
  469.                      if libx[i].state=="Xa" then
  470.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  471.                      xc=xc+1
  472.                      end
  473.                  end
  474.              APEXQ=math.max(table.unpack(xt))
  475.                  for i, v in ipairs(libx) do              
  476.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  477.                      xXx=xXx+1      
  478.                      xAPEXx[xXx]=libx[i].start
  479.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  480.                      xLibRes=1  
  481.                      end
  482.                  end
  483.             end                        
  484.  
  485.             if xLibRes~=1 then
  486.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  487.             gg.setVisible(true)
  488.             os.exit()
  489.              return
  490.             end
  491.         end
  492.     end
  493. --███████████████████████
  494. function arm()
  495. o=tonumber(o)
  496.     for XxX=1,#(xAPEXx) do
  497.     xdump=nil xdump={}
  498.     xdump[1]={} xdump[2]={}
  499.     xdump[1].address=xAPEXx[XxX] + o
  500.     xdump[1].flags=4
  501.         if x==0 then xdump[1].value=xfalse end
  502.         if x==1 then xdump[1].value=xtrue end
  503.         if x~=0 and x~=1 then xdump[1].value=x end
  504.     xdump[2].address=xAPEXx[XxX]+(o+4)
  505.     xdump[2].flags=4
  506.     xdump[2].value=xEND
  507.     gg.setValues(xdump)
  508.     end
  509. end
  510. ------------------------------------------------------------------------------  
  511. function revert()
  512.     for XxX=1,#(xAPEXx) do
  513.     REVERT=nil REVERT={} xRx=nil xRx=1
  514.         for i, v in ipairs(ORIG) do
  515.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  516.             REVERT[xRx]={}
  517.             REVERT[xRx].address=xAPEXx[XxX]+o
  518.             REVERT[xRx].flags=4
  519.             REVERT[xRx].value=ORIG[i].value
  520.             xRx=xRx+1
  521.             REVERT[xRx]={}
  522.             REVERT[xRx].address=xAPEXx[XxX]+o+4
  523.             REVERT[xRx].flags=4
  524.             REVERT[xRx].value=ORIG[i+1].value
  525.             gg.setValues(REVERT)
  526.             break
  527.             end
  528.         xRx=xRx+1
  529.         end
  530.     end
  531. end
  532.  
  533. --███████████████████████
  534.  
  535. function sort()
  536. SORT1={} apexsort=0
  537.      for sorti = A[s].start, A[s].finish do
  538.          apexsort=apexsort+1
  539.          SORT1[apexsort] = I[sorti]
  540.      end
  541. SORT2={} table.sort(SORT1)
  542.     for sort2, v in pairs(SORT1) do
  543.         SORT2[sort2]=v
  544.     end
  545. r=SORT2[r]
  546. end
  547.  
  548. --███████████████████████
  549. if v.x64 then
  550. xtrue="h200080D2" -- MOV X0, #0x1
  551. xfalse="h000080D2" -- MOV X0, #0x0
  552. xEND="hC0035FD6" -- RET
  553. else
  554. xtrue="h0100A0E3" -- MOVW R0, #1
  555. xfalse="h0000A0E3" -- MOVW R0, #0
  556. xEND="h1EFF2FE1" -- BX LR
  557. end
  558.  
  559. --███████████████████████
  560. -- APEX[GG]v2
  561. function clear()
  562. gg.getResults(gg.getResultsCount())
  563. gg.clearResults()
  564. end
  565. ------------------------------------------------------------------------------  
  566. function get()
  567. gg.getResults(gg.getResultsCount())
  568. end
  569. ------------------------------------------------------------------------------  
  570. function search()
  571. gg.getResults(gg.getResultsCount())
  572. gg.clearResults()
  573. gg.searchNumber(x,t)
  574. end
  575. ------------------------------------------------------------------------------  
  576. function refine()
  577. gg.refineNumber(x,t)
  578. end
  579. ------------------------------------------------------------------------------  
  580. function refinenot()
  581. gg.refineNumber(x,t,false,gg.SIGN_NOT_EQUAL)
  582. end
  583. ------------------------------------------------------------------------------  
  584. function edit()
  585. gg.getResults(gg.getResultsCount())
  586. gg.editAll(x,t)
  587. end
  588. ------------------------------------------------------------------------------  
  589. function check()
  590. E=nil E=gg.getResultsCount()
  591. end
  592. ------------------------------------------------------------------------------  
  593. function offset()
  594. o=tonumber(o) addoff=nil
  595. addoff=gg.getResults(gg.getResultsCount())
  596.     for i, v in ipairs(addoff) do
  597.         addoff[i].address=addoff[i].address+o
  598.         addoff[i].flags=t
  599.     end
  600. gg.loadResults(addoff)
  601. end
  602.  
  603. --███████████████████████
  604. function cancel()
  605. gg.toast("CANCELLED")
  606. end
  607. ------------------------------------------------------------------------------  
  608. function wait()
  609. gg.toast("Please Wait..")
  610. end
  611. ------------------------------------------------------------------------------  
  612. function error()
  613. gg.toast("× ERROR ×")
  614. gg.sleep(1000)
  615. end
  616. ------------------------------------------------------------------------------  
  617. function exit()
  618. gg.getListItems()
  619. gg.clearList()
  620. gg.getResults(gg.getResultsCount())
  621. gg.clearResults()
  622. gg.toast("[ EXIT ]")  
  623.     if xhaX~=nil then
  624.         print(printx)
  625.         print(xhaX)
  626.         print(printx)  
  627.     end
  628. gg.setVisible(true)
  629. os.exit()
  630. return
  631. end
  632. --███████████████████████
  633. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  634. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  635. gmdx=gg.getRangesList("global-metadata.dat")
  636.     if #(gmdx)~=0 then        
  637.     gmds=gg.getRangesList("global-metadata.dat")[1].start
  638.     gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
  639.     else gmds=nil gmde=nil
  640.     end
  641. ATOTAL=0
  642. for i = 1,100 do
  643.     if A[i].class==nil then break end
  644.     ATOTAL=ATOTAL+1
  645. end
  646.  
  647. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  648. S=0
  649.     while ATAB<=ATOTAL do
  650.     ::AUTOSTART::
  651.         if ATAB>ATOTAL then break goto FINISHED end
  652.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  653.     A[ATAB].error=1
  654.     ANAME=nil ANAME={}
  655.     if A[ATAB].name~=nil then
  656.         for i = 1,#(tostring(A[ATAB].name)) do
  657.             ANAME[i]=string.byte(A[ATAB].name,i)
  658.         end
  659.     else
  660.         ANAME[1]=0
  661.     end
  662.     ACLASS=nil ACLASS={}
  663.     if A[ATAB].class~=nil then
  664.         for i = 1,#(tostring(A[ATAB].class)) do
  665.             ACLASS[i]=string.byte(A[ATAB].class,i)
  666.         end
  667.     else
  668.         A[ATAB].class=0
  669.     end
  670.    
  671.                 ASTART=AEND+1
  672.                 clear() t=1
  673.                 gg.searchNumber(":"..tostring(A[ATAB].method),1,false,gg.SIGN_EQUAL,gmds, gmde)
  674.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  675.                 check()
  676.                     if E==0 then ATAB=ATAB+1
  677.                         if ATAB>ATOTAL then break return end
  678.                     goto AUTOSTART return
  679.                     end
  680.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  681.                 x=xm[1].value refine()
  682.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  683.                 o=oo+1 offset() refine() o=-oo offset()
  684.                 check()
  685.                     if E==0 then ATAB=ATAB+1
  686.                         if ATAB>ATOTAL then break return end
  687.                     goto AUTOSTART return
  688.                     end
  689.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  690.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  691.                     if #(xpoint)==0 then ATAB=ATAB+1
  692.                         if ATAB>ATOTAL then break return end
  693.                     goto AUTOSTART return
  694.                     end
  695.                 clear()
  696.                     for xp=1,#(xpoint) do
  697.                     xpoint[xp].address=xpoint[xp].address+off1
  698.                     xpoint[xp].flags=typ
  699.                     end
  700.                 gg.loadResults(xpoint)
  701.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  702.                     if #(xoff)==0 then ATAB=ATAB+1
  703.                         if ATAB>ATOTAL then break return end
  704.                     goto AUTOSTART return
  705.                     end
  706.                     xfin=1
  707.                     while xfin<=#(xoff) do
  708.                     ::XFIN::
  709.                         if xfin>#(xoff) then ATAB=ATAB+1
  710.                             if ATAB>ATOTAL then break return end
  711.                         goto AUTOSTART return
  712.                         end
  713.                         if gg.getTargetInfo().x64 then
  714.                             xadd=tonumber(xoff[xfin].value)  
  715.                         else
  716.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  717.                             xadd=string.sub(tostring(xadd), -8,-1)
  718.                             xadd=tonumber("0x"..xadd)
  719.                         end    
  720.                     gval1=nil gval1={} gval1[1]={}
  721.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  722.                     gval1[1].address=xoff[xfin].address+gvo
  723.                     gval1[1].flags=typ
  724.                     gval1=gg.getValues(gval1)
  725.                         if gg.getTargetInfo().x64 then
  726.                             gval=tonumber(gval1[1].value)  
  727.                         else
  728.                             gval=string.format("%X",tonumber(gval1[1].value))
  729.                             gval=string.sub(tostring(gval), -8,-1)
  730.                             gval=tonumber("0x"..gval)
  731.                         end    
  732.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  733.                     gval2[1].address=gval+gvo1
  734.                     gval2[1].flags=typ
  735.                     gval2[2].address=gval+gvo2
  736.                     gval2[2].flags=typ
  737.                     gval2=gg.getValues(gval2)
  738.                         if gg.getTargetInfo().x64 then
  739.                             gval21=tonumber(gval2[1].value)  
  740.                             gval22=tonumber(gval2[2].value)
  741.                         else
  742.                             gval21=string.format("%X",tonumber(gval2[1].value))
  743.                             gval21=string.sub(tostring(gval21), -8,-1)
  744.                             gval21=tonumber("0x"..gval21)
  745.                             gval22=string.format("%X",tonumber(gval2[2].value))
  746.                             gval22=string.sub(tostring(gval22), -8,-1)
  747.                             gval22=tonumber("0x"..gval22)
  748.                         end    
  749.                          xrefine=0
  750.                          if A[ATAB].class~=0 then
  751.                             for xyz=1,#(ACLASS) do
  752.                                 gvalc={} gvalc[1]={}
  753.                                 gvalc[1].address=gval21+(xyz-1)
  754.                                 gvalc[1].flags=1                        
  755.                                 gvalc=gg.getValues(gvalc)
  756.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  757.                             end
  758.                         end
  759.                        
  760.                         if A[ATAB].name~=0 then
  761.                             for xyz=1,#(ANAME) do
  762.                                 gvalc={} gvalc[1]={}
  763.                                 gvalc[1].address=gval22+(xyz-1)
  764.                                 gvalc[1].flags=1                        
  765.                                 gvalc=gg.getValues(gvalc)
  766.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  767.                             end
  768.                         end
  769.                          
  770.                          if xrefine==0 then
  771.                         A[ATAB].start=ASTART AEND=AEND+1
  772.                         A[ATAB].finish=AEND
  773.                         A[ATAB].error=0
  774.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  775.                         end
  776.                     xfin=xfin+1            
  777.                     end -- xfin
  778.     ATAB=ATAB+1
  779.     end -- ATAB
  780.    
  781. ---------------------------------------------------
  782.  
  783. ::FINISHED::
  784.  xBAR=0
  785.     for i = 1, ATOTAL do
  786.         if A[i].error~=0 then xBAR=xBAR+1 end
  787.     end
  788.     if xBAR==ATOTAL  then
  789.         gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  790.         exit()
  791.         return
  792.     end
  793.     if xBAR>=1 then gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  794.     else gg.alert("√ Auto Update Success","OK",nil, xTAGx)
  795.     end
  796.  --███████████████████████
  797. anticheat()
  798. noads()
  799. pass()
  800. --███████████████████████
  801. if xREV==1 then
  802. xRx=1 ORIG={} xREV={}
  803.     for XxX=1,#(xAPEXx) do  
  804.         for i, v in ipairs(I) do
  805.         ORIG[xRx]={}
  806.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
  807.         ORIG[xRx].flags=4
  808.         xRx=xRx+1
  809.         ORIG[xRx]={}
  810.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
  811.         ORIG[xRx].flags=4
  812.         xRx=xRx+1
  813.         end    
  814.     end
  815. ORIG=gg.getValues(ORIG)
  816. end
  817. --███████████████████████
  818.  
  819.  
  820. --███████████████████████
  821. while true do
  822.     if gg.isVisible() then
  823.         gg.setVisible(false)
  824.         menu()
  825.     else
  826.         if apex==1 then
  827.             gg.setVisible(false)
  828.             menu()
  829.         end
  830.     end
  831. end
  832.  
Add Comment
Please, Sign In to add comment