wilmans2m

Lasthope2

Mar 28th, 2024 (edited)
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 26.60 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. --Last Hope Sniper - Zombie War (2)
  3. --https://play.google.com/store/apps/details?id=com.JESoftware.LastHopeSniperWar&hl=en_US
  4. GLabel = 'Last Hope Sniper'
  5. GProcess = 'com.JESoftware.LastHopeSniperWar'
  6. GVersion = '(vAU.02)'
  7. xbit = 64
  8. LibResult = 1
  9. xlib = 'libil2cpp.so'
  10. xREV = 1  I={}
  11. xCNE = 0
  12. xSSE = 0
  13. XbitX = 2
  14. printx = '---------------------------------------------------------------'
  15. expire='free'
  16. game = gg.getTargetInfo()
  17. P=game.processName
  18. FP=game.name
  19. L=gg.getTargetInfo().label
  20. M=gg.getTargetInfo()["label"]
  21. V=game.versionName
  22. TP=gg.getTargetPackage()
  23. xTAGx="Have fun"
  24. xLINKx="https://t.me/HxE_Chat"
  25. xLINK1x="https://www.tiktok.com/@hxesq"
  26. APEXSN=gg.getFile():match('[^/]+$')
  27. printx="---------------------------------------------------------------"
  28. print(printx)
  29. print(xTAGx)
  30. print("Telegram = "..xLINKx)
  31. print("TikTok = "..xLINK1x)
  32. print(printx)  
  33. print("Script = "..GLabel.."  "..GVersion)
  34. --███████████████████████
  35. --███████████████████████
  36. --███████████████████████
  37. -- APEX[GG]v2
  38. apex=1
  39. gg.setVisible(false)
  40. v=gg.getTargetInfo()
  41.     if v==nil then
  42.         print("×× ERROR ××\n×× INVALID PROCESS SELECTED / OR NO ROOT ACCESS")
  43.         gg.setVisible(true) os.exit()
  44.         return
  45.     end
  46.    
  47. HxEmenu = ('            ⚡HxE Menu by wils2m⚡\
  48.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  49.                     ⛥🇮‌🇳‌🇫‌🇴‌⛥\
  50.  🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
  51.  🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
  52.    🎰🅐🅡🅜🎰   : '..xbit..'\
  53. \
  54. ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
  55. 🎁 Encryption 🎁 :  '..expire..'\
  56.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
  57.            
  58. gg.alert(HxEmenu)
  59.  
  60. gg.alert("                           Patch Note\
  61.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  62. - HxE script menu\
  63. - Huge thanks to Apex[GG]\
  64. - Script auto updated\
  65. - Set player to High XP\
  66. - Unlimited Crystals\
  67. - No reload\
  68. - Free weapons Upgrades\
  69. - No Ads\
  70. - No Chest Wait Time\
  71. - Chest Compartment Unlocked (Premium)\
  72. - Max Zoom\
  73.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  74. ")
  75. ------------------------------------------------------------------------------
  76. A={} for i =1,100 do A[i]={} end
  77. ------------------------------------------------------------------------------
  78. OFF="× " ON="√ "
  79. UG=OFF HL=OFF NR=OFF MZ=OFF FU=OFF WH=OFF PH=OFF
  80.     if v.x64 then x1="hC0BEA0D2" x2='h006A98D2'
  81.     else x1="h990040E3" x2='h640000E3'
  82.     end
  83.  
  84. function menu()
  85. apex=0
  86. gg.toast(xTAGx)  
  87. mc=gg.multiChoice({
  88.     UC.."Unlimited Crystals",
  89.     FU.."Free upgrades",
  90.     HL.."Player to High Level",
  91.     NR.."No Reload",
  92.     MZ.."Max Zoom",
  93.     WH.."Weapons Hacks",
  94.     PH.."Player Hacks",
  95.     "[ EXIT ]"},
  96.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  97.    
  98.     if mc==nil then cancel() return end
  99.     if mc[1] then gold() end
  100.     if mc[2] then upgrade() end
  101.     if mc[3] then xp() end
  102.     if mc[4] then reload() end
  103.     if mc[5] then zoom() end
  104.     if mc[6] then weapon() end
  105.     if mc[7] then player() end
  106.    
  107. xhaX={
  108.     UC.."Unlimited Crystals",
  109.     FU.."Free upgrades",
  110.     HL.."Player to High Level",
  111.     NR.."No Reload",
  112.     MZ.."Max Zoom",
  113.     WH.."Weapons Hacks",
  114.     PH.."Player Hacks",
  115.     }
  116. xhaX=table.concat(xhaX, "\n")
  117. xhaX=tostring(xhaX)
  118.  
  119.     if mc[8] then exit() return end
  120.  
  121. gg.toast("[√] Complete")
  122. gg.alert(GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)  
  123.  
  124. end
  125.  
  126. --█████████████████████████████████████████████
  127.  
  128. --public class JEGameSettings : JESingletonManagerBehaviour<JEGameSettings>
  129. --public static bool get_NoSplashAds
  130.     A[1].class="JEGameSettings"
  131.     A[1].method="get_NoSplashAds"
  132. --public class JEGameSettings : JESingletonManagerBehaviour<JEGameSettings>
  133. --public static bool get_NoWaitTimeOnCrates()
  134.     A[2].class="JEGameSettings"
  135.     A[2].method="get_NoWaitTimeOnCrates"
  136. --public static bool get_NoSecretCompartment()
  137.     A[3].class="JEGameSettings"
  138.     A[3].method="get_NoSecretCompartment"
  139.  
  140.     function adprem()
  141.     for i = 1,3  do if A[i].error == 1 then error() break return end end
  142.     for i = A[1].start, A[3].finish do o=I[i]
  143.     if AP==OFF then x=1 arm() else revert() end
  144.     end
  145.  
  146.     if AP==OFF then AP=ON else AP=OFF end
  147.     end
  148.        
  149. --█████████████████████████████████████████████
  150.  
  151. --public class GlobalStatistics
  152. --public static int get_AllaRubiner
  153. --10M x="h2013A0D2"
  154.     A[4].class="GlobalStatistics"
  155.     A[4].method="get_AllaRubiner"
  156.  
  157. function gold()
  158.     if A[4].error==1 then error() return end
  159.     for i = A[4].start, A[4].finish do o=I[i]
  160.     if UG==OFF then x="h2013A0D2" arm() else revert() end
  161.     end
  162.  
  163.     if UG==OFF then UG=ON else UG=OFF end
  164.     end
  165.  
  166. --█████████████████████████████████████████████
  167.  
  168. --public class GlobalStatistics
  169. --public static int get_PlayerXP()
  170.     A[5].class="GlobalStatistics"
  171.     A[5].method="get_PlayerXP"
  172.  
  173. function xp()
  174.     if A[5].error==1 then error() return end
  175.     for i = A[5].start, A[5].finish do o=I[i]
  176.     if HL==OFF then x="h2013A0D2" arm() else revert() end
  177.     end
  178.  
  179.     if HL==OFF then HL=ON else HL=OFF end
  180. end
  181.  
  182. --█████████████████████████████████████████████
  183.  
  184. --public class Weapon : MonoBehaviour
  185. --public float ReloadTime()
  186.     A[6].class="Weapon"
  187.     A[6].method="ReloadTime"
  188.  
  189. function reload()
  190.     if A[6].error==1 then error() return end
  191.     for i = A[6].start, A[6].finish do o=I[i]
  192.     if NR==OFF then x=0 arm() else revert() end
  193.     end
  194.  
  195.     if NR==OFF then NR=ON else NR=OFF end
  196. end
  197.  
  198. --█████████████████████████████████████████████
  199.  
  200. --public class SniperWeapon : MonoBehaviour
  201. --public int get_MaxZoomLevels()
  202.     A[7].class="SniperWeapon"
  203.     A[7].method="get_MaxZoomLevels"
  204.    
  205. function zoom()
  206.     if A[7].error==1 then error() return end
  207.     for i = A[7].start, A[7].finish do o=I[i]
  208.     if MZ==OFF then x="h800180D2" arm() else revert() end
  209.     end
  210.  
  211.     if MZ==OFF then MZ=ON else MZ=OFF end
  212. end
  213.  
  214. --█████████████████████████████████████████████
  215.  
  216. --public class JEPlayerContainerGUI : MonoBehaviour
  217. --public bool get_FreeUpgrade()
  218.     A[8].class="JEPlayerContainerGUI"
  219.     A[8].method="get_FreeUpgrade"
  220. --public class JESniperWeaponParts.WeaponPart
  221. --public int get_CostCoins()
  222.     A[9].class="WeaponPart"
  223.     A[9].method="get_CostCoins"
  224. --public int get_CostParts()
  225.     A[10].class="WeaponPart"
  226.     A[10].method="get_CostParts"
  227. --public int get_costRubys()
  228.     A[11].class="WeaponPart"
  229.     A[11].method="get_costRubys"
  230. --public bool CheckRequirement(GlobalStatistics.JEWeapon.Weapons weapon)
  231.     A[12].class="WeaponPart"
  232.     A[12].method="CheckRequirement"
  233.  
  234. function upgrade()
  235.     for i = 8,12 do if A[i].error == 1 then error() break return end end
  236.     for i = A[8].start, A[8].finish do o=I[i]
  237.     if FU==OFF then x=1 arm() else revert() end
  238.     end  
  239.     for i = A[9].start, A[12].finish do o=I[i]
  240.     if FU==OFF then x=0 arm() else revert() end
  241.     end
  242.  
  243.     if FU==OFF then FU=ON else FU=OFF end
  244. end
  245.  
  246. --█████████████████████████████████████████████
  247.  
  248. --public class JEMultiplayerHero : MonoBehaviour, ITriggerDataOwner
  249. --public float get_HealthOnCurrentLevel()
  250.     A[13].class="JEMultiplayerHero"
  251.     A[13].method="get_HealthOnCurrentLevel"
  252. --public bool get_HeroLocked()
  253.     A[14].class="JEMultiplayerHero"
  254.     A[14].method="get_HeroLocked"
  255.  
  256. function player()
  257.     for i = 13,14 do if A[i].error == 1 then error() break return end end
  258.     for i = A[13].start, A[13].finish do o=I[i]
  259.     if PH==OFF then x="h2013A0D2" arm() else revert() end
  260.     end  
  261.     for i = A[14].start, A[14].finish do o=I[i]
  262.     if PH==OFF then x=1 arm() else revert() end
  263.     end
  264.  
  265.     if PH==OFF then PH=ON else PH=OFF end
  266. end
  267.    
  268. --█████████████████████████████████████████████
  269.  
  270. --public class Weapon : MonoBehaviour
  271. --public float get_GetWeaponRange()
  272.     A[15].class="Weapon"
  273.     A[15].method="get_GetWeaponRange"
  274. --public float get_CalculatedDamage()
  275.     A[16].class="Weapon"
  276.     A[16].method="get_CalculatedDamage"
  277. --public bool FireBullet(bool force = False, bool consumeAmmo = True)
  278.     A[17].class="Weapon"
  279.     A[17].method="FireBullet"
  280.  
  281. function weapon()
  282.     for i = 15,17 do if A[i].error == 1 then error() break return end end
  283.     for i = A[15].start, A[15].finish do o=I[i]
  284.     if WH==OFF then x="h00F0AFD2" arm() else revert() end
  285.     end
  286.     for i = A[16].start, A[16].finish do o=I[i]
  287.     if WH==OFF then x="h00F0AFD2" arm() else revert() end
  288.     end
  289.     for i = A[17].start, A[17].finish do o=I[i]
  290.     if WH==OFF then x=1 arm() else revert() end
  291.     end
  292.  
  293.     if WH==OFF then WH=ON else WH=OFF end
  294. end
  295.  
  296. --█████████████████████████████████████████████
  297. --█████████████████████████████████████████████
  298. --█████████████████████████████████████████████
  299.     if v.processName~=GProcess then
  300.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  301.         gg.setVisible (true) os.exit()
  302.         return
  303.     end
  304. ------------------------------------------------------------------------------
  305.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  306.         print(xBITx)  
  307.         print(printx)  
  308. ------------------------------------------------------------------------------
  309.  
  310. isrdy=gg.alert("Last Hope 2\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)  
  311. if isrdy~=2 then gg.setVisible(true) os.exit() return end
  312.  
  313. --█████████████████████████████████████████████
  314.     if LibResult==1 then
  315.     xAPEXx={} xXx=0
  316.     xLibRes=0
  317.     libx=gg.getRangesList()
  318.         if #(libx)==0 then
  319.         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' ")
  320.         gg.setVisible(true)
  321.         os.exit()
  322.         end
  323.     libx=gg.getRangesList(xlib)
  324.         if #(libx)==0 then  
  325.         print("×× No "..xlib.." Found")
  326.         xLibRes=2
  327.         goto APEX_SPLIT
  328.         end
  329.     xlibn=0
  330.         for i, v in ipairs(libx) do
  331.             if libx[i].state=="Xa" then
  332.             xXx=xXx+1
  333.             xAPEXx[xXx]=libx[i].start
  334.             xLibRes=1
  335.             end
  336.         end
  337.         if xLibRes==0 then
  338.         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' ")
  339.         gg.setVisible(true)
  340.         os.exit()    
  341.         end    
  342.                  
  343.         ::APEX_SPLIT::    
  344.         if xLibRes==2 then
  345.         splitapk=0
  346.         libx=gg.getRangesList()
  347.             for i, v in ipairs(libx) do
  348.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  349.                 splitapk=1
  350.                 end
  351.             end
  352.             if splitapk==1 then
  353.             xsapk={} xsapkx=0
  354.                 for i, v in ipairs(libx) do
  355.                     if libx[i].state=="Xa" then
  356.                     xsapkx=xsapkx+1
  357.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  358.                     end
  359.                 end
  360.                 if xsapkx~=0 then                
  361.                 APEXQ=math.max(table.unpack(xsapk))
  362.                     for i, v in ipairs(libx) do              
  363.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  364.                         xXx=xXx+1            
  365.                        xAPEXx[xXx]=libx[i].start
  366.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  367.                         xLibRes=1                      
  368.                         end
  369.                     end
  370.                 end
  371.             end
  372.          
  373.              if splitapk==0 and xLibRes~=1 then
  374.              print("×× No split_config Lib Found")  
  375.              xc=1 xt={}
  376.              libx=gg.getRangesList()
  377.                  for i, v in ipairs(libx) do
  378.                      if libx[i].state=="Xa" then
  379.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  380.                      xc=xc+1
  381.                      end
  382.                  end
  383.              APEXQ=math.max(table.unpack(xt))
  384.                  for i, v in ipairs(libx) do              
  385.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  386.                      xXx=xXx+1      
  387.                      xAPEXx[xXx]=libx[i].start
  388.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  389.                      xLibRes=1  
  390.                      end
  391.                  end
  392.             end                        
  393.  
  394.             if xLibRes~=1 then
  395.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  396.             gg.setVisible(true)
  397.             os.exit()
  398.              return
  399.             end
  400.         end
  401.     end
  402. --█████████████████████████████████████████████
  403. function arm()
  404. o=tonumber(o)
  405.     for XxX=1,#(xAPEXx) do
  406.     xdump=nil xdump={}
  407.     xdump[1]={} xdump[2]={}
  408.     xdump[1].address=xAPEXx[XxX] + o
  409.     xdump[1].flags=4
  410.         if x==0 then xdump[1].value=xfalse end
  411.         if x==1 then xdump[1].value=xtrue end
  412.         if x~=0 and x~=1 then xdump[1].value=x end
  413.     xdump[2].address=xAPEXx[XxX]+(o+4)
  414.     xdump[2].flags=4
  415.     xdump[2].value=xEND
  416.     gg.setValues(xdump)
  417.     end
  418. end
  419. ------------------------------------------------------------------------------  
  420. function revert()
  421.     for XxX=1,#(xAPEXx) do
  422.     REVERT=nil REVERT={} xRx=nil xRx=1
  423.         for i, v in ipairs(ORIG) do
  424.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  425.             REVERT[xRx]={}
  426.             REVERT[xRx].address=xAPEXx[XxX]+o
  427.             REVERT[xRx].flags=4
  428.             REVERT[xRx].value=ORIG[i].value
  429.             xRx=xRx+1
  430.             REVERT[xRx]={}
  431.             REVERT[xRx].address=xAPEXx[XxX]+o+4
  432.             REVERT[xRx].flags=4
  433.             REVERT[xRx].value=ORIG[i+1].value
  434.             gg.setValues(REVERT)
  435.             break
  436.             end
  437.         xRx=xRx+1
  438.         end
  439.     end
  440. end
  441.  
  442. --█████████████████████████████████████████████
  443.  
  444. function sort()
  445. SORT1={} apexsort=0
  446.      for sorti = A[s].start, A[s].finish do
  447.          apexsort=apexsort+1
  448.          SORT1[apexsort] = I[sorti]
  449.      end
  450. SORT2={} table.sort(SORT1)
  451.     for sort2, v in pairs(SORT1) do
  452.         SORT2[sort2]=v
  453.     end
  454. r=SORT2[r]
  455. end
  456.  
  457. --█████████████████████████████████████████████
  458. if v.x64 then
  459. xtrue="h200080D2" -- MOV X0, #0x1
  460. xfalse="h000080D2" -- MOV X0, #0x0
  461. xEND="hC0035FD6" -- RET
  462. else
  463. xtrue="h0100A0E3" -- MOVW R0, #1
  464. xfalse="h0000A0E3" -- MOVW R0, #0
  465. xEND="h1EFF2FE1" -- BX LR
  466. end
  467.  
  468. --█████████████████████████████████████████████
  469. -- APEX[GG]v2
  470. function clear()
  471. gg.getResults(gg.getResultsCount())
  472. gg.clearResults()
  473. end
  474. ------------------------------------------------------------------------------  
  475. function get()
  476. gg.getResults(gg.getResultsCount())
  477. end
  478. ------------------------------------------------------------------------------  
  479. function search()
  480. gg.getResults(gg.getResultsCount())
  481. gg.clearResults()
  482. gg.searchNumber(x,t)
  483. end
  484. ------------------------------------------------------------------------------  
  485. function refine()
  486. gg.refineNumber(x,t)
  487. end
  488. ------------------------------------------------------------------------------  
  489. function refinenot()
  490. gg.refineNumber(x,t,false,gg.SIGN_NOT_EQUAL)
  491. end
  492. ------------------------------------------------------------------------------  
  493. function edit()
  494. gg.getResults(gg.getResultsCount())
  495. gg.editAll(x,t)
  496. end
  497. ------------------------------------------------------------------------------  
  498. function check()
  499. E=nil E=gg.getResultsCount()
  500. end
  501. ------------------------------------------------------------------------------  
  502. function offset()
  503. o=tonumber(o) addoff=nil
  504. addoff=gg.getResults(gg.getResultsCount())
  505.     for i, v in ipairs(addoff) do
  506.         addoff[i].address=addoff[i].address+o
  507.         addoff[i].flags=t
  508.     end
  509. gg.loadResults(addoff)
  510. end
  511.  
  512. --█████████████████████████████████████████████
  513. function cancel()
  514. gg.toast("CANCELLED")
  515. end
  516. ------------------------------------------------------------------------------  
  517. function wait()
  518. gg.toast("Please Wait..")
  519. end
  520. ------------------------------------------------------------------------------  
  521. function error()
  522. gg.toast("× ERROR ×")
  523. gg.sleep(1000)
  524. end
  525. ------------------------------------------------------------------------------  
  526. function exit()
  527. gg.getListItems()
  528. gg.clearList()
  529. gg.getResults(gg.getResultsCount())
  530. gg.clearResults()
  531. gg.toast("[ EXIT ]")  
  532.     if xhaX~=nil then
  533.         print(printx)
  534.         print(xhaX)
  535.         print(printx)  
  536.     end
  537. gg.setVisible(true)
  538. os.exit()
  539. return
  540. end
  541. --█████████████████████████████████████████████
  542. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  543. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  544. gmdx=gg.getRangesList("global-metadata.dat")
  545.     if #(gmdx)~=0 then        
  546.     gmds=gg.getRangesList("global-metadata.dat")[1].start
  547.     gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
  548.     else gmds=nil gmde=nil
  549.     end
  550. ATOTAL=0
  551. for i = 1,100 do
  552.     if A[i].class==nil then break end
  553.     ATOTAL=ATOTAL+1
  554. end
  555.  
  556. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  557. S=0
  558.     while ATAB<=ATOTAL do
  559.     ::AUTOSTART::
  560.         if ATAB>ATOTAL then break goto FINISHED end
  561.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  562.     A[ATAB].error=1
  563.     ANAME=nil ANAME={}
  564.     if A[ATAB].name~=nil then
  565.         for i = 1,#(tostring(A[ATAB].name)) do
  566.             ANAME[i]=string.byte(A[ATAB].name,i)
  567.         end
  568.     else
  569.         ANAME[1]=0
  570.     end
  571.     ACLASS=nil ACLASS={}
  572.     if A[ATAB].class~=nil then
  573.         for i = 1,#(tostring(A[ATAB].class)) do
  574.             ACLASS[i]=string.byte(A[ATAB].class,i)
  575.         end
  576.     else
  577.         A[ATAB].class=0
  578.     end
  579.    
  580.                 ASTART=AEND+1
  581.                 clear() t=1
  582.                 gg.searchNumber(":"..tostring(A[ATAB].method),1,false,gg.SIGN_EQUAL,gmds, gmde)
  583.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  584.                 check()
  585.                     if E==0 then ATAB=ATAB+1
  586.                         if ATAB>ATOTAL then break return end
  587.                     goto AUTOSTART return
  588.                     end
  589.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  590.                 x=xm[1].value refine()
  591.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  592.                 o=oo+1 offset() refine() o=-oo offset()
  593.                 check()
  594.                     if E==0 then ATAB=ATAB+1
  595.                         if ATAB>ATOTAL then break return end
  596.                     goto AUTOSTART return
  597.                     end
  598.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  599.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  600.                     if #(xpoint)==0 then ATAB=ATAB+1
  601.                         if ATAB>ATOTAL then break return end
  602.                     goto AUTOSTART return
  603.                     end
  604.                 clear()
  605.                     for xp=1,#(xpoint) do
  606.                     xpoint[xp].address=xpoint[xp].address+off1
  607.                     xpoint[xp].flags=typ
  608.                     end
  609.                 gg.loadResults(xpoint)
  610.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  611.                     if #(xoff)==0 then ATAB=ATAB+1
  612.                         if ATAB>ATOTAL then break return end
  613.                     goto AUTOSTART return
  614.                     end
  615.                     xfin=1
  616.                     while xfin<=#(xoff) do
  617.                     ::XFIN::
  618.                         if xfin>#(xoff) then ATAB=ATAB+1
  619.                             if ATAB>ATOTAL then break return end
  620.                         goto AUTOSTART return
  621.                         end
  622.                         if gg.getTargetInfo().x64 then
  623.                             xadd=tonumber(xoff[xfin].value)  
  624.                         else
  625.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  626.                             xadd=string.sub(tostring(xadd), -8,-1)
  627.                             xadd=tonumber("0x"..xadd)
  628.                         end    
  629.                     gval1=nil gval1={} gval1[1]={}
  630.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  631.                     gval1[1].address=xoff[xfin].address+gvo
  632.                     gval1[1].flags=typ
  633.                     gval1=gg.getValues(gval1)
  634.                         if gg.getTargetInfo().x64 then
  635.                             gval=tonumber(gval1[1].value)  
  636.                         else
  637.                             gval=string.format("%X",tonumber(gval1[1].value))
  638.                             gval=string.sub(tostring(gval), -8,-1)
  639.                             gval=tonumber("0x"..gval)
  640.                         end    
  641.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  642.                     gval2[1].address=gval+gvo1
  643.                     gval2[1].flags=typ
  644.                     gval2[2].address=gval+gvo2
  645.                     gval2[2].flags=typ
  646.                     gval2=gg.getValues(gval2)
  647.                         if gg.getTargetInfo().x64 then
  648.                             gval21=tonumber(gval2[1].value)  
  649.                             gval22=tonumber(gval2[2].value)
  650.                         else
  651.                             gval21=string.format("%X",tonumber(gval2[1].value))
  652.                             gval21=string.sub(tostring(gval21), -8,-1)
  653.                             gval21=tonumber("0x"..gval21)
  654.                             gval22=string.format("%X",tonumber(gval2[2].value))
  655.                             gval22=string.sub(tostring(gval22), -8,-1)
  656.                             gval22=tonumber("0x"..gval22)
  657.                         end    
  658.                          xrefine=0
  659.                          if A[ATAB].class~=0 then
  660.                             for xyz=1,#(ACLASS) do
  661.                                 gvalc={} gvalc[1]={}
  662.                                 gvalc[1].address=gval21+(xyz-1)
  663.                                 gvalc[1].flags=1                        
  664.                                 gvalc=gg.getValues(gvalc)
  665.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  666.                             end
  667.                         end
  668.                        
  669.                         if A[ATAB].name~=0 then
  670.                             for xyz=1,#(ANAME) do
  671.                                 gvalc={} gvalc[1]={}
  672.                                 gvalc[1].address=gval22+(xyz-1)
  673.                                 gvalc[1].flags=1                        
  674.                                 gvalc=gg.getValues(gvalc)
  675.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  676.                             end
  677.                         end
  678.                          
  679.                          if xrefine==0 then
  680.                         A[ATAB].start=ASTART AEND=AEND+1
  681.                         A[ATAB].finish=AEND
  682.                         A[ATAB].error=0
  683.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  684.                         end
  685.                     xfin=xfin+1            
  686.                     end -- xfin
  687.     ATAB=ATAB+1
  688.     end -- ATAB
  689.    
  690. ---------------------------------------------------
  691.  
  692. ::FINISHED::
  693.  xBAR=0
  694.     for i = 1, ATOTAL do
  695.         if A[i].error~=0 then xBAR=xBAR+1 end
  696.     end
  697.     if xBAR==ATOTAL  then
  698.         gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  699.         exit()
  700.         return
  701.     end
  702.     if xBAR>=1 then gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  703.     else gg.alert("√ Auto Update Success","OK",nil, xTAGx)
  704.     end
  705. --------------------------------
  706. adprem()
  707.  
  708. --█████████████████████████████████████████████
  709. if xREV==1 then
  710. xRx=1 ORIG={} xREV={}
  711.     for XxX=1,#(xAPEXx) do  
  712.         for i, v in ipairs(I) do
  713.         ORIG[xRx]={}
  714.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
  715.         ORIG[xRx].flags=4
  716.         xRx=xRx+1
  717.         ORIG[xRx]={}
  718.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
  719.         ORIG[xRx].flags=4
  720.         xRx=xRx+1
  721.         end    
  722.     end
  723. ORIG=gg.getValues(ORIG)
  724. end
  725. --█████████████████████████████████████████████
  726. while true do
  727.     if gg.isVisible() then
  728.         gg.setVisible(false)
  729.         menu()
  730.     else
  731.         if apex==1 then
  732.             gg.setVisible(false)
  733.             menu()
  734.         end
  735.     end
  736. end
  737.  
Add Comment
Please, Sign In to add comment