wilmans2m

GrimSoul

Mar 29th, 2024 (edited)
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 28.53 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. GLabel = 'Grim Soul'
  3. GProcess = 'fantasy.survival.game.rpg'
  4. GVersion = '(vAU.02)'
  5. SVersion= '6.0.0'
  6. xbit = 64
  7. LibResult = 1
  8. xlib = 'libil2cpp.so'
  9. xREV = 1  I={}
  10. xCNE = 0
  11. xSSE = 0
  12. XbitX = 2
  13. printx = '---------------------------------------------------------------'
  14. expire='free'
  15. game = gg.getTargetInfo()
  16. P=game.processName
  17. FP=game.name
  18. L=gg.getTargetInfo().label
  19. M=gg.getTargetInfo()["label"]
  20. V=game.versionName
  21. TP=gg.getTargetPackage()
  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("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. print("Telegram = "..xLINKx)
  59.  
  60. gg.alert("                           Patch Note\
  61.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  62. - HxE script menu\
  63. - Huge thanks to (Apex[GG])\
  64. - Script Auto-Updating\
  65. - NEW:\
  66. - Script adjustments\
  67. - One Hit Kill\
  68. - Max VIP\
  69. - Max Durability\
  70. - Free Craft and unlock blueprint\
  71. - Free upgrades & Free buildings\
  72. - Split Single Items\
  73. - Duplicate Items when Split\
  74. - Assembly without materials\
  75.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  76. ")
  77. ------------------------------------------------------------------------------
  78. A={} for i =1,100 do A[i]={} end
  79. ------------------------------------------------------------------------------
  80. OFF="× " ON="√ "
  81. KO=OFF VP=OFF FC=OFF FB=OFF SI=OFF DI=OFF AM=OFF ML=OFF MV=OFF SP=OFF DU=OFF
  82. o64={}
  83.  
  84. function menu()
  85. apex=0
  86. gg.toast(xTAGx)  
  87. mc=gg.multiChoice({
  88. ML.."Max XP",
  89. VP.."Max VIP",
  90. FC.."Free Craft and unlock blueprint",
  91. FB.."Free upgrades & Free buildings",
  92. SI.."Split Single Items/weapons",
  93. DI.."Duplicate Items when Split",
  94. AM.."Assembly without materials",
  95. SP.."Speed",
  96. KO.."One Hit Kill",
  97. MV.."Visible on map",
  98. DU.."Max Durability",
  99.     "[ EXIT ]"},
  100.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  101.    
  102.     if mc==nil then cancel() return end
  103.     if mc[1] then level() end
  104.     if mc[2] then vip() end
  105.     if mc[3] then freecraft() end
  106.     if mc[4] then upgrades() end
  107.     if mc[5] then split() end
  108.     if mc[6] then duplicate() end
  109.     if mc[7] then assemble() end
  110.     if mc[8] then speed() end  
  111.     if mc[9] then ko() end
  112.     if mc[10] then map() end
  113.     if mc[11] then dura() end
  114.    
  115. xhaX={
  116. ML.."Max XP",
  117. VP.."Max VIP",
  118. FC.."Free Craft and unlock blueprint",
  119. FB.."Free upgrades & Free buildings",
  120. SI.."Split Single Items/weapons",
  121. DI.."Duplicate Items when Split",
  122. AM.."Assembly without materials",
  123. SP.."Speed",
  124. KO.."One Hit Kill",
  125. MV.."Visible on map",
  126. DU.."Max Durability",
  127.     }
  128. xhaX=table.concat(xhaX, "\n")
  129. xhaX=tostring(xhaX)
  130.  
  131.     if mc[12] then exit() return end
  132.  
  133. gg.toast("[√] Complete")
  134.  
  135. gg.alert("Hacks "..GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)
  136.  
  137. end
  138.  
  139. --███████████████████████
  140.  
  141. --//Namespace: App.Core.Resources
  142. --public class ExperienceResource : DoubleResource
  143. --0x1DF9900
  144. --public override double get_amount()
  145.     A[1].name="App.Core.Resources"
  146.     A[1].class="ExperienceResource"
  147.     A[1].method="get_amount"
  148.  
  149. function level()
  150.     if A[1].error==1 then error() return end
  151.     for i = A[1].start, A[1].finish do o=I[i]
  152.     if ML==OFF then x=9999999999999 arm() else revert() end
  153.     end
  154.  
  155.     if ML==OFF then ML=ON else ML=OFF end
  156.     end
  157.  
  158. --███████████████████████
  159.  
  160. --public class VipController : DarkController
  161. --public int get_level()
  162.     A[2].class="VipController"
  163.     A[2].method="get_level"
  164. --public bool get_isActive()
  165.     A[3].class="VipController"
  166.     A[3].method="get_isActive"
  167.    
  168.     function vip()
  169.     if A[3].error==1 then error() return end
  170.     for i = A[2].start, A[2].finish do o=I[i]
  171.     if VP==OFF then x="h00BEA0D2"  arm() else revert() end
  172.     end
  173.     for i = A[3].start, A[3].finish do o=I[i]
  174.     if VP==OFF then x=1 arm() else revert() end
  175.     end
  176.  
  177.     if VP==OFF then VP=ON else VP=OFF end
  178.     end
  179.    
  180.   --███████████████████████
  181.  
  182. --// Namespace: App.Core.Researches
  183. --public class Research : KBScheme.Object, IResearch, IModel
  184. --public bool get_isLocked()
  185.     A[4].name="App.Core.Researches"
  186.     A[4].class="Research"
  187.     A[4].method="get_isLocked"
  188. --public bool get_canCraft()
  189.     A[5].name="App.Core.Researches"
  190.     A[5].class="Research"
  191.     A[5].method="get_canCraft"
  192. --public int get_level()
  193.     A[6].name="App.Core.Researches"
  194.     A[6].class="Research"
  195.     A[6].method="get_level"
  196.  
  197. function freecraft()
  198.     for i = 4,6 do if A[i].error == 1 then error() break return end end
  199.     for i = A[4].start, A[4].finish do o=I[i]
  200.     if FC==OFF then x=0 arm() else revert() end
  201.     end
  202.     for i = A[5].start, A[5].finish do o=I[i]
  203.     if FC==OFF then x=1 arm() else revert() end
  204.     end
  205.     for i = A[6].start, A[6].finish do o=I[i]
  206.     if FC==OFF then x=0 arm() else revert() end
  207.     end
  208.  
  209.     if FC==OFF then FC=ON else FC=OFF end
  210.     end
  211.  
  212. --███████████████████████
  213.  
  214. --// Namespace: App.Core.Inventories
  215. --public static class InventoryExtensions
  216. --public static int StackAmount(IInventorySet inventories, string stackId)
  217.     A[7].name="App.Core.Inventories"
  218.     A[7].class="InventoryExtensions"
  219.     A[7].method="StackAmount"
  220. --//Namespace: App.Core.Constructions
  221. --public class ConstructionTierModel : KBScheme.Map<KBScheme.GuardedInt>, IUpgradeableMode
  222. --public bool CanUpgrade()
  223.     A[8].name="App.Core.Constructions"    
  224.     A[8].class="ConstructionTierModel"
  225.     A[8].method="CanUpgrade"
  226.  
  227. function upgrades()
  228.     for i = 7,8 do if A[i].error == 1 then error() break return end end
  229.     for i = A[7].start, A[7].finish do o=I[i]
  230.     if FB==OFF then x="h007182D2" arm() else revert() end
  231.     end
  232.     for i = A[8].start, A[8].finish do o=I[i]
  233.     if FB==OFF then x=1 arm() else revert() end
  234.     end
  235.  
  236.     if FB==OFF then FB=ON else FB=OFF end
  237.     end
  238.  
  239. --███████████████████████
  240.  
  241. --// Namespace: App.Core.Inventories
  242. --public static class InventoryExtensions
  243. --public static bool CanSplit(IInventoryCell cell)
  244.     A[9].name="App.Core.Inventories"
  245.     A[9].class="InventoryExtensions"
  246.     A[9].method="CanSplit"
  247. --// Namespace: App.Core.Inventories
  248. --public class InventorySet : KBScheme.Container<Inventory>, IInventorySet, IModel, IEnumerable<IInventory>, IEnumerable
  249. --public bool CanSplit(IInventoryCell cell)
  250.     A[10].name="App.Core.Inventories"
  251.     A[10].class="InventorySet"
  252.     A[10].method="CanSplit"
  253.  
  254. function split()
  255.     for i = 9,10 do if A[i].error == 1 then error() break return end end
  256.     for i = A[9].start, A[10].finish do o=I[i]
  257.     if SI==OFF then x=1 arm() else revert() end
  258.     end
  259.  
  260.     if SI==OFF then SI=ON else SI=OFF end
  261.     end
  262.    
  263. --███████████████████████
  264.  
  265. --// Namespace: App.Core.Inventories.Stacks
  266. --public class LimitedInventoryStack : InventoryStack
  267. --private int get__amount()
  268.     A[11].name="App.Core.Inventories.Stacks"
  269.     A[11].class="LimitedInventoryStack"
  270.     A[11].method="get__amount"
  271.  
  272. function duplicate()
  273.     if A[11].error==1 then error() return end
  274.     for i = A[11].start, A[11].finish do o=I[i]
  275.     if DI==OFF then x="h007182D2" arm() else revert() end
  276.     end
  277.  
  278.     if DI==OFF then DI=ON else DI=OFF end
  279.     end
  280.  
  281. --███████████████████████
  282.  
  283. --// Namespace: App.Core.Builder.Collections
  284. --public class BuildingCollection : KBScheme.Object, IBuildingCollection, IModel
  285. --public bool CanComplete()
  286.     A[12].name="App.Core.Builder.Collections"
  287.     A[12].class="BuildingCollection"
  288.     A[12].method="CanComplete"
  289.  
  290. function assemble()
  291.     if A[12].error==1 then error() return end
  292.     for i = A[12].start, A[12].finish do o=I[i]
  293.     if AM==OFF then x=1 arm() else revert() end
  294.     end
  295.  
  296.     if AM==OFF then AM=ON else AM=OFF end
  297.     end
  298.  
  299. --███████████████████████
  300.  
  301. --// Namespace: App.Core.Maps
  302. --public class MapMovement : KBScheme.Object, IModel, IMapMovement
  303. --0x1F56A7C
  304. --public float get_walkSpeed()
  305.     A[13].name="App.Core.Maps"    
  306.     A[13].class="MapMovement"
  307.     A[13].method="get_walkSpeed"
  308.    
  309.     function speed()
  310.     if A[13].error==1 then error() return end
  311.     for i = A[13].start, A[13].finish do o=I[i]
  312.     if SP==OFF then x=999999 arm() else revert() end
  313.     end
  314.  
  315.     if SP==OFF then SP=ON else SP=OFF end
  316.     end
  317.  
  318. --███████████████████████
  319.  
  320. --// Namespace: Core.Game.Map.Points
  321. --public class MapPointPresenter : DarkPresenter
  322. --public virtual bool get_isVisible()
  323.     o64[14]=0xC46B6C
  324.  
  325.     function map()
  326.     if v.versionName==SVersion then
  327.     if A[14].error==1 then error() return end
  328.     for i = A[14].start, A[14].finish do o=I[i]
  329.     if MV==OFF then x=1 arm() else revert() end
  330.     end
  331.  
  332.     if MV==OFF then MV=ON else MV=OFF end
  333.     else
  334.     gg.alert("Not available for current version")
  335.     end
  336.     end
  337.  
  338. --███████████████████████      
  339.  
  340. --// Namespace: App.Core.Inventories.Stacks
  341. --public class DurabilityInventoryStack : InventoryStack
  342. --public double get_Durability()
  343.     o64[15]=0x16B9558
  344.  
  345.     function dura()
  346.     if v.versionName==SVersion then
  347.     if A[15].error==1 then error() return end
  348.     for i = A[15].start, A[15].finish do o=I[i]
  349.     if DU==OFF then x=999999 arm() else revert() end
  350.     end
  351.  
  352.     if DU==OFF then DU=ON else DU=OFF end
  353.     else
  354.     gg.alert("Not available for current version")
  355.     end
  356.     end
  357.  
  358.  --███████████████████████
  359.  
  360.  --// Namespace: App.Core.Characters.Activities.Attacks
  361. --public abstract class RangeAttackActivity : WeaponAttackActivity
  362. --protected override int CalculateDamage(IAttackable target, float criticalModifier, DamageType damageType)
  363.     o64[16]=0x1E92BB0
  364. --// Namespace: App.Core.Characters.Activities.Attacks
  365. --public abstract class WeaponAttackActivity : CharacterActivity, IWeaponAttackActivity, ICharacterActivity
  366. --private int GetWeaponDamageBonus(DamageType damageType)
  367.     o64[17]=0x1E9BBFC
  368. --protected virtual int CalculateRawDamage(DamageType damageType) { }
  369.     o64[18]=0x1E937B0
  370. --protected virtual int CalculateDamage(IAttackable target, float criticalModifier, DamageType damageType)
  371.     o64[19]=0x1E9C524
  372. --private bool IsLethalDamage(IAttackable target)
  373.     o64[20]=0x1E9AFFC
  374. --private bool IsWeaponEvadable()
  375.     o64[21]=0x1E970AC
  376.  
  377.     function ko()
  378.     if v.versionName==SVersion then
  379.     for i = 16,21 do if A[i].error == 1 then error() break return end end
  380.     for i = A[16].start, A[19].finish do o=I[i]
  381.     if KO==OFF then x="h00BEA0D2"  arm() else revert() end
  382.     end
  383.     for i = A[20].start, A[20].finish do o=I[i]
  384.     if KO==OFF then x=1 arm() else revert() end
  385.     end
  386.     for i = A[21].start, A[21].finish do o=I[i]
  387.     if KO==OFF then x=0 arm() else revert() end
  388.     end
  389.  
  390.     if KO==OFF then KO=ON else KO=OFF end
  391.     else
  392.     gg.alert("Not available for current version")
  393.     end
  394.     end
  395.  
  396. --███████████████████████
  397. --███████████████████████
  398. --███████████████████████
  399.     if v.processName~=GProcess then
  400.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  401.         gg.setVisible (true) os.exit()
  402.         return
  403.     end
  404. ------------------------------------------------------------------------------
  405.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  406.         print(xBITx)  
  407.         print(printx)  
  408. ------------------------------------------------------------------------------
  409.  
  410.  
  411. isrdy=gg.alert("Grim Soul\n\nThis Script is Auto-Updating. \nInitial Calibration May Take A While.\n\nSTART SCRIPT ANYWHERE. Otherwise, Calibration will Fail and Hacks Not Work\n\n(All hacks can be activated anywhere after)","EXIT","START",xTAGx)  
  412. if isrdy~=2 then gg.setVisible(true) os.exit() return end
  413.  
  414. --███████████████████████
  415.  
  416. --function sort()
  417. --SORT1={} apexsort=0
  418.      --for sorti = A[s].start, A[s].finish do
  419.          --apexsort=apexsort+1
  420.          --SORT1[apexsort] = I[sorti]
  421.      --end
  422. --SORT2={} table.sort(SORT1)
  423.     --for sort2, v in pairs(SORT1) do
  424.         --SORT2[sort2]=v
  425.     --end
  426. --r=SORT2[r]
  427. --end
  428.  
  429. --███████████████████████
  430.     if LibResult==1 then
  431.     xAPEXx={} xXx=0
  432.     xLibRes=0
  433.     libx=gg.getRangesList()
  434.         if #(libx)==0 then
  435.         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' ")
  436.         gg.setVisible(true)
  437.         os.exit()
  438.         end
  439.     libx=gg.getRangesList(xlib)
  440.         if #(libx)==0 then  
  441.         print("×× No "..xlib.." Found")
  442.         xLibRes=2
  443.         goto APEX_SPLIT
  444.         end
  445.     xlibn=0
  446.         for i, v in ipairs(libx) do
  447.             if libx[i].state=="Xa" then
  448.             xXx=xXx+1
  449.             xAPEXx[xXx]=libx[i].start
  450.             xLibRes=1
  451.             end
  452.         end
  453.         if xLibRes==0 then
  454.         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' ")
  455.         gg.setVisible(true)
  456.         os.exit()    
  457.         end    
  458.                  
  459.         ::APEX_SPLIT::    
  460.         if xLibRes==2 then
  461.         splitapk=0
  462.         libx=gg.getRangesList()
  463.             for i, v in ipairs(libx) do
  464.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  465.                 splitapk=1
  466.                 end
  467.             end
  468.             if splitapk==1 then
  469.             xsapk={} xsapkx=0
  470.                 for i, v in ipairs(libx) do
  471.                     if libx[i].state=="Xa" then
  472.                     xsapkx=xsapkx+1
  473.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  474.                     end
  475.                 end
  476.                 if xsapkx~=0 then                
  477.                 APEXQ=math.max(table.unpack(xsapk))
  478.                     for i, v in ipairs(libx) do              
  479.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  480.                         xXx=xXx+1            
  481.                        xAPEXx[xXx]=libx[i].start
  482.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  483.                         xLibRes=1                      
  484.                         end
  485.                     end
  486.                 end
  487.             end
  488.          
  489.              if splitapk==0 and xLibRes~=1 then
  490.              print("×× No split_config Lib Found")  
  491.              xc=1 xt={}
  492.              libx=gg.getRangesList()
  493.                  for i, v in ipairs(libx) do
  494.                      if libx[i].state=="Xa" then
  495.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  496.                      xc=xc+1
  497.                      end
  498.                  end
  499.              APEXQ=math.max(table.unpack(xt))
  500.                  for i, v in ipairs(libx) do              
  501.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  502.                      xXx=xXx+1      
  503.                      xAPEXx[xXx]=libx[i].start
  504.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  505.                      xLibRes=1  
  506.                      end
  507.                  end
  508.             end                        
  509.  
  510.             if xLibRes~=1 then
  511.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  512.             gg.setVisible(true)
  513.             os.exit()
  514.              return
  515.             end
  516.         end
  517.     end
  518. --███████████████████████
  519. function arm()
  520. o=tonumber(o)
  521.     for XxX=1,#(xAPEXx) do
  522.     xdump=nil xdump={}
  523.     xdump[1]={} xdump[2]={}
  524.     xdump[1].address=xAPEXx[XxX] + o
  525.     xdump[1].flags=4
  526.         if x==0 then xdump[1].value=xfalse end
  527.         if x==1 then xdump[1].value=xtrue end
  528.         if x~=0 and x~=1 then xdump[1].value=x end
  529.     xdump[2].address=xAPEXx[XxX]+(o+4)
  530.     xdump[2].flags=4
  531.     xdump[2].value=xEND
  532.     gg.setValues(xdump)
  533.     end
  534. end
  535. ------------------------------------------------------------------------------  
  536. function revert()
  537.     for XxX=1,#(xAPEXx) do
  538.     REVERT=nil REVERT={} xRx=nil xRx=1
  539.         for i, v in ipairs(ORIG) do
  540.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  541.             REVERT[xRx]={}
  542.             REVERT[xRx].address=xAPEXx[XxX]+o
  543.             REVERT[xRx].flags=4
  544.             REVERT[xRx].value=ORIG[i].value
  545.             xRx=xRx+1
  546.             REVERT[xRx]={}
  547.             REVERT[xRx].address=xAPEXx[XxX]+o+4
  548.             REVERT[xRx].flags=4
  549.             REVERT[xRx].value=ORIG[i+1].value
  550.             gg.setValues(REVERT)
  551.             break
  552.             end
  553.         xRx=xRx+1
  554.         end
  555.     end
  556. end
  557. --███████████████████████
  558. if v.x64 then
  559. xtrue="h200080D2" -- MOV X0, #0x1
  560. xfalse="h000080D2" -- MOV X0, #0x0
  561. xEND="hC0035FD6" -- RET
  562. else
  563. xtrue="h0100A0E3" -- MOVW R0, #1
  564. xfalse="h0000A0E3" -- MOVW R0, #0
  565. xEND="h1EFF2FE1" -- BX LR
  566. end
  567.  
  568. --███████████████████████
  569. -- APEX[GG]v2
  570.  
  571. function clear()
  572. gg.getResults(gg.getResultsCount())
  573. gg.clearResults()
  574. end
  575. ------------------------------------------------------------------------------  
  576. function search()
  577. gg.getResults(gg.getResultsCount())
  578. gg.clearResults()
  579. gg.searchNumber(x,t)
  580. end
  581. ------------------------------------------------------------------------------  
  582. function refine()
  583. gg.refineNumber(x,t)
  584. end
  585. ------------------------------------------------------------------------------  
  586. function check()
  587. E=nil E=gg.getResultsCount()
  588. end
  589. ------------------------------------------------------------------------------  
  590. function offset()
  591. o=tonumber(o) addoff=nil
  592. addoff=gg.getResults(gg.getResultsCount())
  593.     for i, v in ipairs(addoff) do
  594.         addoff[i].address=addoff[i].address+o
  595.         addoff[i].flags=t
  596.     end
  597. gg.loadResults(addoff)
  598. end
  599. --███████████████████████
  600. function cancel()
  601. gg.toast("CANCELLED")
  602. end
  603. ------------------------------------------------------------------------------  
  604. function wait()
  605. gg.toast("Please Wait..")
  606. end
  607. ------------------------------------------------------------------------------  
  608. function error()
  609. gg.toast("× ERROR ×")
  610. gg.sleep(1000)
  611. end
  612. ------------------------------------------------------------------------------  
  613. function exit()
  614. gg.getListItems()
  615. gg.clearList()
  616. gg.getResults(gg.getResultsCount())
  617. gg.clearResults()
  618. gg.toast("[ EXIT ]")  
  619.     if xhaX~=nil then
  620.         print(printx)
  621.         print(xhaX)
  622.         print(printx)  
  623.     end
  624. gg.setVisible(true)
  625. os.exit()
  626. return
  627. end
  628. --███████████████████████
  629. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  630. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  631. gmdx=gg.getRangesList("global-metadata.dat")
  632.     if #(gmdx)~=0 then        
  633.     gmds=gg.getRangesList("global-metadata.dat")[1].start
  634.     gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
  635.     else gmds=nil gmde=nil
  636.     end
  637. ATOTAL=0
  638. for i = 1,100 do
  639.     if A[i].method==nil then break end
  640.     ATOTAL=ATOTAL+1
  641. end
  642.  
  643. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  644. S=0
  645.     while ATAB<=ATOTAL do
  646.     ::AUTOSTART::
  647.     if gg.isVisible() then gg.setVisible(false) end
  648.         if ATAB>ATOTAL then break goto FINISHED end
  649.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  650.     A[ATAB].error=1
  651.     ANAME=nil ANAME={}
  652.     if A[ATAB].name~=nil then
  653.         for i = 1,#(tostring(A[ATAB].name)) do
  654.             ANAME[i]=string.byte(A[ATAB].name,i)
  655.         end
  656.     else
  657.         A[ATAB].name=0
  658.     end
  659.     ACLASS=nil ACLASS={}
  660.     if A[ATAB].class~=nil then
  661.         for i = 1,#(tostring(A[ATAB].class))+1 do
  662.             if i == #(tostring(A[ATAB].class))+1 then
  663.                 ACLASS[i]=0
  664.             else
  665.                 ACLASS[i]=string.byte(A[ATAB].class,i)
  666.             end
  667.         end
  668.     else
  669.         A[ATAB].class=0
  670.     end
  671.    
  672.                 ASTART=AEND+1
  673.                 clear() t=1
  674.                 gg.searchNumber(":"..tostring(A[ATAB].method),1,false,gg.SIGN_EQUAL,gmds, gmde)
  675.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  676.                 check()
  677.                     if E==0 then ATAB=ATAB+1
  678.                         if ATAB>ATOTAL then break return end
  679.                     goto AUTOSTART return
  680.                     end
  681.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  682.                 x=xm[1].value refine()
  683.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  684.                 o=oo+1 offset() refine() o=-oo offset()
  685.                 check()
  686.                     if E==0 then ATAB=ATAB+1
  687.                         if ATAB>ATOTAL then break return end
  688.                     goto AUTOSTART return
  689.                     end
  690.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  691.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  692.                     if #(xpoint)==0 then ATAB=ATAB+1
  693.                         if ATAB>ATOTAL then break return end
  694.                     goto AUTOSTART return
  695.                     end
  696.                 clear()
  697.                     for xp=1,#(xpoint) do
  698.                     xpoint[xp].address=xpoint[xp].address+off1
  699.                     xpoint[xp].flags=typ
  700.                     end
  701.                 gg.loadResults(xpoint)
  702.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  703.                     if #(xoff)==0 then ATAB=ATAB+1
  704.                         if ATAB>ATOTAL then break return end
  705.                     goto AUTOSTART return
  706.                     end
  707.                     xfin=1
  708.                     while xfin<=#(xoff) do
  709.                     ::XFIN::
  710.                         if xfin>#(xoff) then ATAB=ATAB+1
  711.                             if ATAB>ATOTAL then break return end
  712.                         goto AUTOSTART return
  713.                         end
  714.                         if gg.getTargetInfo().x64 then
  715.                             xadd=tonumber(xoff[xfin].value)  
  716.                         else
  717.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  718.                             xadd=string.sub(tostring(xadd), -8,-1)
  719.                             xadd=tonumber("0x"..xadd)
  720.                         end    
  721.                     gval1=nil gval1={} gval1[1]={}
  722.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  723.                     gval1[1].address=xoff[xfin].address+gvo
  724.                     gval1[1].flags=typ
  725.                     gval1=gg.getValues(gval1)
  726.                         if gg.getTargetInfo().x64 then
  727.                             gval=tonumber(gval1[1].value)  
  728.                         else
  729.                             gval=string.format("%X",tonumber(gval1[1].value))
  730.                             gval=string.sub(tostring(gval), -8,-1)
  731.                             gval=tonumber("0x"..gval)
  732.                         end    
  733.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  734.                     gval2[1].address=gval+gvo1
  735.                     gval2[1].flags=typ
  736.                     gval2[2].address=gval+gvo2
  737.                     gval2[2].flags=typ
  738.                     gval2=gg.getValues(gval2)
  739.                         if gg.getTargetInfo().x64 then
  740.                             gval21=tonumber(gval2[1].value)  
  741.                             gval22=tonumber(gval2[2].value)
  742.                         else
  743.                             gval21=string.format("%X",tonumber(gval2[1].value))
  744.                             gval21=string.sub(tostring(gval21), -8,-1)
  745.                             gval21=tonumber("0x"..gval21)
  746.                             gval22=string.format("%X",tonumber(gval2[2].value))
  747.                             gval22=string.sub(tostring(gval22), -8,-1)
  748.                             gval22=tonumber("0x"..gval22)
  749.                         end    
  750.                          xrefine=0
  751.                          if A[ATAB].class~=0 then
  752.                             for xyz=1,#(ACLASS) do
  753.                                 gvalc={} gvalc[1]={}
  754.                                 gvalc[1].address=gval21+(xyz-1)
  755.                                 gvalc[1].flags=1                        
  756.                                 gvalc=gg.getValues(gvalc)
  757.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  758.                             end
  759.                         end
  760.                        
  761.                         if A[ATAB].name~=0 then
  762.                             for xyz=1,#(ANAME) do
  763.                                 gvalc={} gvalc[1]={}
  764.                                 gvalc[1].address=gval22+(xyz-1)
  765.                                 gvalc[1].flags=1                        
  766.                                 gvalc=gg.getValues(gvalc)
  767.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  768.                             end
  769.                         end
  770.                          
  771.                          if xrefine==0 then
  772.                         A[ATAB].start=ASTART AEND=AEND+1
  773.                         A[ATAB].finish=AEND
  774.                         A[ATAB].error=0
  775.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  776.                         end
  777.                     xfin=xfin+1            
  778.                     end -- xfin
  779.     ATAB=ATAB+1
  780.     end -- ATAB
  781.    
  782. ---------------------------------------------------
  783.  
  784. ::FINISHED::
  785.  xBAR=0
  786.     for i = 1, ATOTAL do
  787.         if A[i].error~=0 then xBAR=xBAR+1 end
  788.     end
  789.     if xBAR>=ATOTAL  then
  790.         gg.toast("×× FAILURE ××") gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  791.         exit()
  792.         return
  793.     end
  794.     if xBAR>=1 then gg.toast("× ERROR") gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  795.     else gg.toast("√ SUCCESS") gg.alert("\n√ Auto Update Success\n\n'Hacking is the Game'","OK",nil, xTAGx)
  796.     end
  797.  
  798.     if v.versionName==SVersion then
  799.     ox=o64
  800.     for z=14,21 do
  801.     A[z].error=0
  802.     A[z].start=z
  803.     A[z].finish=z
  804.     I[z]=ox[z]
  805.     end
  806. end
  807.  
  808. --███████████████████████
  809. if xREV==1 then
  810. xRx=1 ORIG={} xREV={}
  811.     for XxX=1,#(xAPEXx) do  
  812.         for i, v in ipairs(I) do
  813.         ORIG[xRx]={}
  814.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
  815.         ORIG[xRx].flags=4
  816.         xRx=xRx+1
  817.         ORIG[xRx]={}
  818.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
  819.         ORIG[xRx].flags=4
  820.         xRx=xRx+1
  821.         end    
  822.     end
  823. ORIG=gg.getValues(ORIG)
  824. end
  825. --███████████████████████
  826. while true do
  827.     if gg.isVisible() then
  828.         gg.setVisible(false)
  829.         menu()
  830.     else
  831.         if apex==1 then
  832.             gg.setVisible(false)
  833.             menu()
  834.         end
  835.     end
  836. end
  837.  
Add Comment
Please, Sign In to add comment