wilmans2m

SonicForces

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