wilmans2m

Stickmanlegends

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