wilmans2m

ShadowOfDeathAU3

Aug 20th, 2024
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 35.77 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. GLabel = 'Shadow Of Death'
  3. GProcess = 'com.Zonmob.ShadowofDeath.FightingGames'
  4. GVersion = '(vAU.03)'
  5. xbit = 64
  6. LibResult = 1
  7. xlib = 'libil2cpp.so'
  8. xlibsize = 0
  9. xREV = 1  I={}
  10. xCNE = 0
  11. xSSE = 0
  12. XbitX = 2
  13. --███████████████████████
  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. apex=1
  35. ::RESTARTSCRIPT::
  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. --███████████████████████
  45.    
  46. ------------------------------------------------------------------------------
  47. AUalert="\nThis Script is Auto-Updating.\nInitial Calibration will take A while.\nYOU MUST CURRENTLY BE IN ANY GAMEPLAY (MISSION/BATTLE/ETC).\nOtherwise, Calibration will Fail and Hacks Not Work,then\n    Tap [ START ] on Script.\n\nX) if Not Ready, Press [ NO ]\n"
  48. -- [START] / [NO]
  49. ------------------------------------------------------------------------------
  50.    
  51. HxEmenu = ('            ⚡HxE Menu by wils2m⚡\
  52.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  53.                     ⛥🇮‌🇳‌🇫‌🇴‌⛥\
  54.  🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
  55.  🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
  56.    🎰🅐🅡🅜🎰   : '..xbit..'\
  57. \
  58. ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
  59. 🎁 Encryption 🎁 :  '..expire..'\
  60.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
  61.            
  62. gg.alert(HxEmenu)
  63.  
  64. gg.alert("                           Patch Note\
  65.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  66. - HxE script menu\
  67. - Huge thanks to Apex[GG]\
  68. - Script Auto-Updating\
  69. - NEW:\
  70. - Updated search method\
  71. .............................................\
  72. - No Ads\
  73. - Unlimited Crystal, Soul, Skillpoints\
  74. - Instant Kill\
  75. - Free Equipment Hacks\
  76. - Apex[GG] options:\
  77. - No skill cooldown\
  78. - Freeplay\
  79. - Autoplay\
  80. - Disable ennemies\
  81.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  82. ")
  83. --███████████████████████
  84.     if L == GLabel then
  85.         gg.toast('➣ Game : ' .. L)
  86.         gg.clearResults()
  87.     else
  88.         gg.alert("Bad process selected")
  89.         gg.setVisible(true)
  90.         print('Bad process')
  91.     end
  92. ------------------------------------------------------------------------------ 
  93.     if v.processName~=GProcess then
  94.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  95.         gg.setVisible (true) os.exit()
  96.         return
  97.     else
  98.         gg.toast('➣ Package : ' .. GProcess)
  99.     end
  100. ------------------------------------------------------------------------------
  101. if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  102. --███████████████████████
  103. --███████████████████████
  104. ------------------------------------------------------------------------------
  105. I=nil I={}
  106. A={} for i =1,100 do A[i]={} end
  107. ------------------------------------------------------------------------------
  108. OFF="× " ON="√ "
  109.  
  110. CD=OFF CR=OFF SP=OFF EQ=OFF CH=OFF OH=OFF SO=OFF NA=OFF
  111. AC=OFF OW=OFF AP=OFF FR=OFF EA=OFF
  112. function menu()
  113. apex=0
  114. gg.setRanges(gg.REGION_ANONYMOUS)
  115. gg.toast(xTAGx)  
  116. mc=gg.multiChoice({
  117.     CD.."No Cooldown",
  118.     OH.."Instant Kill",
  119.     CR.."Unlimited Crystals",
  120.     SO.."Unlimited Souls",
  121.     SP.."Unlimited Skills Points",
  122.     EQ.."Free Equipment Hacks",
  123.     FR.."Free Play",
  124.     OW.."One Wave only",
  125.     AP.."Autoplay",
  126.     EA.."Disable ennemies",
  127.     NA.."No Ads",
  128.     "[ EXIT ]"},
  129.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  130.    
  131.     if mc==nil then cancel() return end
  132.     if mc[1] then cooldown() end
  133.     if mc[2] then instant() end
  134.     if mc[3] then gems() end
  135.     if mc[4] then souls() end
  136.     if mc[5] then skillsp() end
  137.     if mc[6] then equipment() end
  138.     if mc[7] then freeplay() end
  139.     if mc[8] then onew() end
  140.     if mc[9] then autoplay() end
  141.     if mc[10] then ennemyatk() end 
  142.     if mc[11] then noads() end
  143.    
  144. xhaX={
  145.     CD.."No Cooldown",
  146.     OH.."Instant Kill",
  147.     CR.."Unlimited Crystals",
  148.     SO.."Unlimited Souls",
  149.     SP.."Unlimited Skills Points",
  150.     EQ.."Free Equipment Hacks",
  151.     FR.."Free Play",
  152.     OW.."One Wave only",
  153.     AP.."Autoplay",
  154.     EA.."Disable ennemies",
  155.     NA.."No Ads",
  156.     }
  157. xhaX=table.concat(xhaX, "\n")
  158. xhaX=tostring(xhaX)
  159.  
  160.     if mc[12] then exit() return end
  161.  
  162. gg.toast("[√] Complete")
  163.  
  164. gg.alert("Hacks "..GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)
  165.  
  166. end
  167.  
  168. --███████████████████████
  169.  
  170. --public class LoadingSceneView : MonoBehaviour
  171. for i = 1,2 do A[i].class="LoadingSceneView" end
  172. --public bool IsFinishAds()
  173. A[1].method="IsFinishAds"
  174. --public void EnableInterstitialAds()
  175. A[2].method="EnableInterstitialAds"
  176.  
  177. --//Namespace: SSAR.WorldMap.Model
  178. --public class ShowWorldmapParameter
  179. --public bool get_EnableInterstitialAds()
  180. --//Namespace: Assets.Scripts.Ssar.Main.Command
  181. --public class CheckAndLoadMainSceneCmd : Command
  182. --public int get_enableInterstitialAds()
  183.  
  184. --//Namespace: Assets.Scripts.Ssar.AdMob.Interstitial
  185. for i = 3,7 do A[i].name="Assets.Scripts.Ssar.AdMob.Interstitial" end
  186. --public class InterstitialAds
  187. for i = 3,5 do A[i].class="InterstitialAds" end
  188. --public bool IsAvailable()
  189. A[3].method="IsAvailable"
  190. --public void Show(Action<bool> callback)
  191. A[4].method="Show"
  192. --public void RequestNewAds()
  193. A[5].method="RequestNewAds"
  194. --public class IronSrcSource
  195. for i = 6,7 do A[i].class="IronSrcSource" end
  196. --public void Show(Action<bool> callback)
  197. A[6].method="Show"
  198. --public bool IsInterstitialReady()
  199. A[7].method="IsInterstitialReady"
  200.  
  201. function noads()
  202.     ERR(1,7) if E==1 then error() return end
  203.     x=0 HACK(1,7,NA) NA=ONOFF(NA)
  204. end    
  205.  
  206. --███████████████████████
  207.  
  208. -- // Namespace: CodeStage.AntiCheat.Examples
  209. -- public class ActTesterGui : MonoBehaviour // TypeDefIndex:
  210. -- private void OnValidate() { }
  211. A[8].name="CodeStage.AntiCheat.Examples"
  212. A[8].class="ActTesterGui"
  213. A[8].method="OnValidate"
  214. -- private void Start() { }
  215. A[9].name="CodeStage.AntiCheat.Examples"
  216. A[9].class="ActTesterGui"
  217. A[9].method="Start"
  218.  
  219. -- // Namespace: SSAR.BattleSystem.System.Arena
  220. -- public class CheatCheckingLogic // TypeDefIndex:
  221. -- public bool IsCheating()
  222.  
  223. function anticheat()
  224.     ERR(8,9) if E==1 then error() return end
  225.     x=0 HACK(8,9,AC) AC=ONOFF(AC)
  226. end
  227.  
  228. --███████████████████████
  229.  
  230. --// Namespace: Assets.Scripts.Core.Skills
  231. -- public class SkillCastingRequirement // TypeDefIndex:
  232. -- public void StartCooldown() { }
  233. A[10].name="Assets.Scripts.Core.Skills"
  234. A[10].class="SkillCastingRequirement"
  235. A[10].method="StartCooldown"
  236.  
  237. function cooldown()
  238.     if A[10].error==1 then error() return end
  239.     x=0 HACK(10,10,CD) CD=ONOFF(CD)
  240. end
  241.  
  242. --█████████████████████
  243.  
  244. --public class MainCharacterData
  245. --public int GetCrystal()
  246. A[11].class="MainCharacterData"
  247. A[11].method="GetCrystal"
  248.         --30000 int
  249.         --x="h00A68ED2"
  250.         --1500000 int
  251.         --x="hE002A0D2"
  252.        
  253. function gems()
  254.     if A[11].error==1 then error() return end
  255.     x="hE002A0D2"
  256.     HACK(11,11,CR) CR=ONOFF(CR)
  257. end
  258.  
  259. --█████████████████████
  260.  
  261. --public class MainCharacterData
  262. --public int GetSoul()
  263. A[12].class="MainCharacterData"
  264. A[12].method="GetSoul"
  265.         --30000 int
  266.         --x="h00A68ED2"
  267.         --1500000 int
  268.         --x="hE002A0D2"    
  269.  
  270. function souls()
  271.     if A[12].error==1 then error() return end
  272.     x="hE002A0D2"
  273.     HACK(12,12,SO) SO=ONOFF(SO)
  274. end
  275.  
  276. --█████████████████████
  277.  
  278. --public class MainCharacterData
  279. --public int GetSkillPointPurchased()
  280. A[13].class="MainCharacterData"
  281. A[13].method="GetSkillPointPurchased"
  282.  
  283. function skillsp()
  284.     if A[13].error==1 then error() return end
  285.     x="h007D80D2"
  286.     HACK(13,13,SP) SP=ONOFF(SP)
  287. end
  288.  
  289. --█████████████████████
  290.  
  291. --//Namespace: Assets.Scripts.Model
  292. --public class EquipmentEnhanceLogic : IItemLogic
  293. --public override bool IsLocked(MainCharacterData mainCharacterData, IItem item)
  294. A[14].method="IsLocked"
  295. --public override int GetEnhanceEquipmentPrice(IItem item, int targetLevel)
  296. A[15].method="GetEnhanceEquipmentPrice"
  297. --public override int GetSellPrice(IItem item)
  298. --I[26]=0x1F7EFB0
  299. --public override int GetEquipmentAwakenSoulPricePerSlot(IItem item)
  300. A[16].method="GetEquipmentAwakenSoulPricePerSlot"
  301. --// Namespace: Ssar.Craft.Model
  302. -- public class CraftingMaterial : ICollectData // TypeDefIndex:
  303. -- public int get_quantity() { }
  304. A[17].name="Ssar.Craft.Model"
  305. A[17].class="CraftingMaterial"
  306. A[17].method="get_quantity"
  307.  
  308. function equipment()
  309.     ERR(14,17) if E==1 then error() return end
  310.     x=0
  311.     HACK(14,17,EQ) EQ=ONOFF(EQ)
  312. end
  313.  
  314. --█████████████████████
  315.  
  316. --//Namespace: Assets.Scripts.Core.Skills
  317. -- public int get_staminaRequire() { }
  318. --// Namespace: Scripts.Config
  319. --public class Dungeon : IDungeonInfo
  320. A[18].name="Scripts.Config"
  321. A[18].class="Dungeon"
  322. A[18].method="get_staminaRequire"
  323. --// Namespace: Assets.Scripts.Ssar.Dungeon.View
  324. --public class ArenaConstantConfig
  325. A[19].name="Assets.Scripts.Ssar.Dungeon.View"
  326. A[19].class="ArenaConstantConfig"
  327. A[19].method="get_staminaRequire"
  328. --// Namespace: Scripts.Config
  329. --public class BloodyTowerFloorInfo : IDungeonInfo
  330. A[20].name="Scripts.Config"
  331. A[20].class="BloodyTowerFloorInfo"
  332. A[20].method="get_staminaRequire"
  333.  
  334.     function freeplay()
  335.     ERR(18,20) if E==1 then error() return end
  336.     x=0
  337.     HACK(18,20,FR) FR=ONOFF(FR)
  338.     end
  339.  
  340. --█████████████████████
  341.  
  342. --//Namespace: SSAR.BattleSystem.AI
  343. --public abstract class AbsAction
  344. --protected virtual bool IsEnable()
  345. A[21].name="SSAR.BattleSystem.AI"
  346. A[21].class="AbsAction"
  347. A[21].method="IsEnable"
  348. --//Namespace: Assets.Scripts.Ssar.Dungeon.Stages
  349. --public class DefaultStage
  350. --private bool EvaluateAllGoalsIsAchieved()
  351. A[22].name="Assets.Scripts.Ssar.Dungeon.Stages"
  352. A[22].class="DefaultStage"
  353. A[22].method="EvaluateAllGoalsIsAchieved"
  354. --//Namespace: Assets.Scripts.Core.UnlockableSystem
  355. --public class Entity
  356. --public bool IsUnlocked()
  357. A[23].name="Assets.Scripts.Core.UnlockableSystem"
  358. A[23].class="Entity"
  359. A[23].method="IsUnlocked"
  360. --//Namespace: Assets.Scripts.Core.Skills
  361. --public abstract class Character
  362. --public void ConsumeAllSkillCharges()
  363. A[24].name="Assets.Scripts.Core.Skills"
  364. A[24].class="Character"
  365. A[24].method="ConsumeAllSkillCharges"
  366. --public class DungeonDataManager
  367. --public bool IsEnableSlowMotionWhenWin()
  368. A[25].class="DungeonDataManager"
  369. A[25].method="IsEnableSlowMotionWhenWin"
  370.  
  371. function instant()
  372.     ERR(21,25) if E==1 then error() return end
  373.     x=1
  374.     HACK(21,23,OH)
  375.     x=0
  376.     HACK(24,25,OH)
  377.     OH=ONOFF(OH)
  378. end
  379.  
  380. --███████████████████████
  381.  
  382. --// Namespace: Assets.Scripts.Ssar.Dungeon
  383. -- public class Dungeon // TypeDefIndex:
  384. -- private bool IsLastStage() { }
  385. A[26].name="Assets.Scripts.Ssar.Dungeon"
  386. A[26].class="Dungeon"
  387. A[26].method="IsLastStage"
  388.  
  389. function onew()
  390. if A[26].error==1 then error() return end
  391.     x=1
  392.     HACK(26,26,OW)
  393.     OW=ONOFF(OW)
  394. end
  395.  
  396. --███████████████████████
  397.  
  398. -- // Namespace: Assets.Scripts.Ssar.BattleSystem.EntityTemplate
  399. -- public class ArenaMainTemplate : MainCharacterTemplate // TypeDefIndex:
  400. -- protected override bool EnableAI() { }
  401. A[27].name="Assets.Scripts.Ssar.BattleSystem.EntityTemplate"
  402. A[27].class="ArenaMainTemplate"
  403. A[27].method="EnableAI"
  404. -- // Namespace: SSAR.BattleSystem.EntityTemplate
  405. -- public class MainCharacterTemplate : BaseEntityTemplate // TypeDefIndex:
  406. -- protected virtual bool EnableAI() { }
  407. A[28].name="SSAR.BattleSystem.EntityTemplate"
  408. A[28].class="MainCharacterTemplate"
  409. A[28].method="EnableAI"
  410.  
  411. function autoplay()
  412.     ERR(27,28) if E==1 then error() return end
  413.     x=1
  414.     HACK(27,28,AP)
  415.     AP=ONOFF(AP)
  416. end
  417.  
  418. --███████████████████████
  419.  
  420. --// Namespace: SSAR.BattleSystem.EntityTemplate
  421. -- public abstract class BaseMonsterTemplate : BaseEntityTemplate //
  422. -- private NewMonsterAIComponent GetNewMonsterAiComponent(Entity entity, BaseHeroTemplateArgs baseHeroTemplateArgs, string mobType) {
  423. A[29].name="SSAR.BattleSystem.EntityTemplate"
  424. A[29].class="BaseMonsterTemplate"
  425. A[29].method="GetNewMonsterAiComponent"
  426.  
  427. function ennemyatk()
  428. if A[29].error==1 then error() return end
  429.     x=0
  430.     HACK(29,29,EA)
  431.     EA=ONOFF(EA)
  432. end
  433.  
  434. --███████████████████████
  435.  
  436. --public void ConsumeCrystal(int crystal, string source, Reason reason)
  437. --public void ConsumeSoul(int soul, string source, Reason rewardReason)
  438.  
  439. --███████████████████████
  440. --███████████████████████
  441.  
  442. function cancel()
  443. gg.toast("Cancelled")
  444. end
  445. ------------------------------------------------------------------------------  
  446. function wait()
  447. gg.toast("Please Wait..")
  448. end
  449. ------------------------------------------------------------------------------  
  450. function error()
  451. gg.toast("× ERROR ×")
  452. gg.sleep(1000)
  453. end
  454. ------------------------------------------------------------------------------  
  455. function exit()
  456. print("--------------------------------------------------------------------")
  457. print("More links - WILS2M")
  458. print("https://www.tiktok.com/@helledengaming")
  459. print("https://odysee.com/@HellEtEden-gaming:9")
  460. print("https://vimeo.com/showcase/10427325")
  461. gg.processResume()
  462. gg.getListItems()
  463. gg.clearList()
  464. gg.getResults(gg.getResultsCount())
  465. gg.clearResults()
  466. gg.toast("[ EXIT ]")  
  467.     if xhaX~=nil then
  468.         print(printx)
  469.         print(xhaX)
  470.         print(printx)  
  471.     end
  472. gg.setVisible(true)
  473. os.exit()
  474. return
  475. end
  476.  
  477. --███████████████████████
  478.     if LibResult==1 then
  479.     xAPEXx={} xXx=0
  480.     xLibRes=0
  481.     libx=gg.getRangesList()
  482.         if #(libx)==0 then
  483.         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' ")
  484.         gg.setVisible(true)
  485.         os.exit()
  486.         end
  487.     libx=gg.getRangesList(xlib)
  488.         if #(libx)==0 then  
  489.         print("×× No "..xlib.." Found")
  490.         xLibRes=2
  491.         goto APEX_SPLIT
  492.         end
  493.     xlibn=0
  494.         for i, v in ipairs(libx) do
  495.             if libx[i].state=="Xa" then
  496.             xXx=xXx+1
  497.             xAPEXx[xXx]=libx[i].start
  498.             XLIBSIZE=libx[i]["end"]-libx[i].start
  499.             xLibRes=1
  500.             end
  501.         end
  502.         if xLibRes==0 then
  503.         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' ")
  504.         gg.setVisible(true)
  505.         os.exit()    
  506.         end    
  507.                  
  508.         ::APEX_SPLIT::    
  509.         if xLibRes==2 then
  510.         splitapk=0
  511.         libx=gg.getRangesList()
  512.             for i, v in ipairs(libx) do
  513.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  514.                 splitapk=1
  515.                 end
  516.             end
  517.             if splitapk==1 then
  518.             xsapk={} xsapkx=0
  519.                 for i, v in ipairs(libx) do
  520.                     if libx[i].state=="Xa" then
  521.                     xsapkx=xsapkx+1
  522.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  523.                     end
  524.                 end
  525.                 if xsapkx~=0 then                
  526.                 APEXQ=math.max(table.unpack(xsapk))
  527.                     for i, v in ipairs(libx) do              
  528.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  529.                         xXx=xXx+1            
  530.                        xAPEXx[xXx]=libx[i].start
  531.                        XLIBSIZE=libx[i]["end"]-libx[i].start
  532.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  533.                         xLibRes=1                      
  534.                         end
  535.                     end
  536.                 end
  537.             end
  538.          
  539.              if splitapk==0 and xLibRes~=1 then
  540.              print("×× No split_config Lib Found")  
  541.              xc=1 xt={}
  542.              libx=gg.getRangesList()
  543.                  for i, v in ipairs(libx) do
  544.                      if libx[i].state=="Xa" then
  545.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  546.                      xc=xc+1
  547.                      end
  548.                  end
  549.                  if xc==1 then
  550.                      print("×× No libs in Xa Region\n-- Your Device is Broken --\nGoodbye")
  551.                      gg.setVisible(true)  os.exit()
  552.                      return
  553.                  end
  554.              APEXQ=math.max(table.unpack(xt))
  555.                  for i, v in ipairs(libx) do              
  556.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  557.                      xXx=xXx+1      
  558.                      xAPEXx[xXx]=libx[i].start
  559.                      XLIBSIZE=libx[i]["end"]-libx[i].start
  560.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  561.                      xLibRes=1  
  562.                      end
  563.                  end
  564.             end                        
  565.  
  566.             if xLibRes~=1 then
  567.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  568.             gg.setVisible(true)
  569.             os.exit()
  570.              return
  571.             end
  572.         end
  573.    
  574.         if xlibsize~=0 then  
  575.             if XLIBSIZE<xlibsize then
  576.             print("×× Incorrect Lib Size in Xa Region ××\nYour device / virtual / emulator is not compatible with this script")
  577.             gg.setVisible(true)
  578.             os.exit()
  579.             return
  580.             end
  581.         end
  582.        
  583.     end
  584. --███████████████████████
  585. -- OO=ONOFF(OO)
  586. function ONOFF(OO)
  587.     if OO==OFF then OO=ON else OO=OFF end
  588. return OO
  589. end
  590. ------------------------------------------------------------------------------  
  591. function HACK(v1,v2,v3)
  592.     for i = A[v1].start, A[v2].finish do o=I[i]
  593.         if v3==OFF then arm() else revert() end
  594.     end
  595. end
  596. ------------------------------------------------------------------------------  
  597. function ERR(E1,E2)
  598. E=0
  599.     for i = E1,E2 do if A[i].error==1 then E=1 end end    
  600. end
  601. ------------------------------------------------------------------------------  
  602. function arm()
  603. o=tonumber(o)
  604.     for XxX=1,#(xAPEXx) do
  605.         xdump=nil xdump={}
  606.         if type(x)~="table" then
  607.         xdump[1]={} xdump[2]={}
  608.         xdump[1].address=xAPEXx[XxX] + o
  609.         xdump[1].flags=4
  610.             if x==0 then xdump[1].value=xfalse end
  611.             if x==1 then xdump[1].value=xtrue end
  612.             if x~=0 and x~=1 then xdump[1].value=x end
  613.         xdump[2].address=xAPEXx[XxX]+(o+4)
  614.         xdump[2].flags=4
  615.         xdump[2].value=xEND
  616.         else
  617.         cc=0
  618.             for c=1,#(x) do
  619.             xdump[c]={}
  620.             xdump[c].address=xAPEXx[XxX]+o+cc
  621.             xdump[c].flags=4  
  622.             xdump[c].value=tostring(x[c])
  623.             cc=cc+4
  624.             end        
  625.         end
  626.     gg.setValues(xdump)
  627.     end
  628. end
  629. ------------------------------------------------------------------------------  
  630. function revert()
  631.     for XxX=1,#(xAPEXx) do
  632.     REVERT=nil REVERT={} xRx=nil xRx=1
  633.         for i, v in ipairs(ORIG) do
  634.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  635.                 if type(x)~="table" then
  636.                     REVERT[xRx]={}
  637.                     REVERT[xRx].address=xAPEXx[XxX]+o
  638.                     REVERT[xRx].flags=4
  639.                     REVERT[xRx].value=ORIG[i].value
  640.                     xRx=xRx+1
  641.                     REVERT[xRx]={}
  642.                     REVERT[xRx].address=xAPEXx[XxX]+o+4
  643.                     REVERT[xRx].flags=4
  644.                     REVERT[xRx].value=ORIG[i+1].value
  645.                     xRx=xRx+1
  646.                 else              
  647.                 offcnt=0 tnuc=0
  648.                     for dfg=1,#(x) do
  649.                     REVERT[xRx]={}
  650.                     REVERT[xRx].address=xAPEXx[XxX]+o+offcnt
  651.                     REVERT[xRx].flags=4
  652.                     REVERT[xRx].value=ORIG[i+tnuc].value
  653.                     offcnt=offcnt+4 tnuc=tnuc+1 xRx=xRx+1
  654.                     end
  655.                 end
  656.             gg.setValues(REVERT)
  657.             break
  658.             end
  659.             -- xRx+1
  660.         end
  661.     end
  662. end
  663. --███████████████████████
  664. if v.x64 then
  665. xtrue="h200080D2" -- MOV X0, #0x1
  666. xfalse="h000080D2" -- MOV X0, #0x0
  667. xEND="hC0035FD6" -- RET
  668. else
  669. xtrue="h0100A0E3" -- MOVW R0, #1
  670. xfalse="h0000A0E3" -- MOVW R0, #0
  671. xEND="h1EFF2FE1" -- BX LR
  672. end
  673. ------------------------------------------------------------------------------  
  674.  
  675. -- APEX[GG]v2
  676. function clear()
  677. gg.getResults(gg.getResultsCount())
  678. gg.clearResults()
  679. end
  680. ------------------------------------------------------------------------------  
  681. function search()
  682. gg.getResults(gg.getResultsCount())
  683. gg.clearResults()
  684. gg.searchNumber(x,t)
  685. end
  686. ------------------------------------------------------------------------------  
  687. function refine()
  688. gg.refineNumber(x,t)
  689. end
  690. ------------------------------------------------------------------------------  
  691. function check()
  692. E=nil E=gg.getResultsCount()
  693. end
  694. ------------------------------------------------------------------------------  
  695. function offset()
  696. o=tonumber(o) addoff=nil
  697. addoff=gg.getResults(gg.getResultsCount())
  698.     for i, v in ipairs(addoff) do
  699.         addoff[i].address=addoff[i].address+o
  700.         addoff[i].flags=t
  701.     end
  702. gg.loadResults(addoff)
  703. end
  704. --███████████████████████
  705.  
  706. -- APEX[GG]v2
  707. ------------------------------------------------------------------------------  
  708. function cancel()
  709. gg.toast("CANCELLED")
  710. end
  711. ------------------------------------------------------------------------------  
  712. function wait()
  713. gg.toast("Please Wait..")
  714. end
  715. ------------------------------------------------------------------------------  
  716. function error()
  717. gg.toast("× ERROR ×")
  718. gg.sleep(1000)
  719. end
  720. ------------------------------------------------------------------------------  
  721. function exit()
  722. print("--------------------------------------------------------------------")
  723. print("More links - WILS2M")
  724. print("https://www.tiktok.com/@helledengaming")
  725. print("https://odysee.com/@HellEtEden-gaming:9")
  726. print("https://vimeo.com/showcase/10427325")
  727. gg.processResume()
  728. gg.getListItems()
  729. gg.clearList()
  730. gg.getResults(gg.getResultsCount())
  731. gg.clearResults()
  732. gg.toast("[ EXIT ]")  
  733.     if xhaX~=nil then
  734.         print(printx)
  735.         print(xhaX)
  736.         print(printx)  
  737.     end
  738. gg.setVisible(true)
  739. os.exit()
  740. return
  741. end  
  742.  
  743. --███████████████████████
  744.  
  745. NEEDSEARCH=1
  746. SFILE=nil
  747. SFILE=io.open(gg.EXT_FILES_DIR.."/"..GProcess..".lua")
  748.     if SFILE==nil then
  749.         STARTALERT=xTAGx.."\n\n"..GLabel.."\n"..v.versionName.."  "..GVersion.."\n"..LUA.."\n"..AUalert
  750.     else
  751.         SFILE=nil
  752.         SFILE=io.open(gg.EXT_FILES_DIR.."/"..GProcess..".lua"):read("*all")
  753.         pcall(load(SFILE))
  754.             if tostring(v.versionName)~=tostring(SFversion) then
  755.                 gg.alert(xTAGx.."\n\n"..GLabel.."\n"..v.versionName.."  "..GVersion.."\n"..LUA.."\n\nNEW GAME VERSION DETECTED\n","OK")
  756.                 os.remove(gg.EXT_FILES_DIR.."/"..GProcess..".lua")
  757.                 NEEDSEARCH=1
  758.                 goto RESTARTSCRIPT
  759.             else
  760.                 STARTALERT=gg.alert(xTAGx.."\n\n"..GLabel.."\n"..v.versionName.."  "..GVersion.."\n"..LUA.."\n\n√ SAVED OFFSETS FILE FOUND.","[ START ]","DELETE","-- EXIT --")
  761.                 if STARTALERT==3 then exit() return end
  762.                 if STARTALERT==1 then NEEDSEARCH=0 end
  763.                 if STARTALERT==2 then
  764.                    os.remove(gg.EXT_FILES_DIR.."/"..GProcess..".lua")
  765.                    NEEDSEARCH=1
  766.                    goto RESTARTSCRIPT
  767.                    return
  768.                end                
  769.             end
  770.     end
  771.                
  772. if NEEDSEARCH==1 then
  773. ::XGETREADYX::
  774. plwt=gg.alert(xTAGx.."\n\n"..GLabel.."\n"..v.versionName.."  "..GVersion.."\n"..LUA.."\n"..AUalert,"[ START ]","[ NO ]","[ -- EXIT -- ]")
  775. if plwt==3 then exit() return end
  776. if plwt==2 then
  777.     gg.setVisible(false)
  778.     while true do
  779.         if gg.isVisible() then gg.setVisible(false) break end
  780.     end
  781.     goto XGETREADYX
  782.     return
  783. end
  784.  
  785. local xtx=0
  786. local gvr={"Ca","Cd","Cb","A","O"}
  787. local sr={gg.REGION_C_ALLOC, gg.REGION_C_DATA, gg.REGION_C_BSS, gg.REGION_ANONYMOUS, gg.REGION_OTHER}
  788. gg.clearResults() gg.toast("Please Wait..")
  789. gg.setRanges(gg.REGION_C_ALLOC | gg.REGION_C_DATA | gg.REGION_C_BSS | gg.REGION_ANONYMOUS | gg.REGION_OTHER)
  790. gg.searchNumber(":get_localToWorldMatrix_Injected",1)
  791. gg.refineNumber(":g",1)
  792. gg.searchPointer(0)
  793.     if gg.getResultsCount()~=0 then
  794.         rp=gg.getResults(1)
  795.         rt={} rt[1]={}
  796.         rt[1].address=rp[1].value
  797.         rt[1].flags=1
  798.         rt=gg.getValues(rt)
  799.         rt=gg.getValuesRange(rt)
  800.         rt=tostring(rt[1])
  801.         rp=gg.getValuesRange(rp)
  802.         rp=tostring(rp[1])  
  803.             if rp==rt then
  804.                 for i = 1,5 do
  805.                     if rp==tostring(gvr[i]) then
  806.                         r1=sr[i] r2=sr[i]
  807.                         xtx=2
  808.                         break
  809.                     end
  810.                 end
  811.             else
  812.                 for i = 1,5 do
  813.                     if rp==tostring(gvr[i]) then r2=sr[i] xtx=1 break end
  814.                 end
  815.                 for i = 1,5 do
  816.                     if rt==tostring(gvr[i]) then r1=sr[i] xtx=xtx+1 break end
  817.                 end                
  818.             end
  819.             if xtx~=2 then gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) end
  820.     end
  821. sr=nil gvr=nil rp=nil rt=nil  plwt=nil
  822.  
  823. --███████████████████████
  824.  
  825. SFT={}
  826. SFT[1]="SFversion = '"..v.versionName.."'"
  827. SFT[2]="A={}"
  828. SFT[3]="I={}"
  829. SFTA={}
  830. SFTI={}
  831.  
  832. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  833.  
  834. ATOTAL=0
  835. for i = 1,100 do
  836.     if A[i].method==nil then break end
  837.     ATOTAL=ATOTAL+1
  838. end
  839.  
  840. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  841. S=0
  842.     while ATAB<=ATOTAL do
  843.     ::AUTOSTART::
  844.     gg.setVisible(false)
  845.         if ATAB>ATOTAL then break goto FINISHED end
  846.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  847.     A[ATAB].error=1
  848.     ANAME=nil ANAME={}
  849.     if A[ATAB].name~=nil then
  850.         for i = 1,#(tostring(A[ATAB].name)) do
  851.             ANAME[i]=string.byte(A[ATAB].name,i)
  852.         end
  853.     else
  854.         A[ATAB].name=0
  855.     end
  856.     ACLASS=nil ACLASS={}
  857.     if A[ATAB].class~=nil then
  858.         for i = 1,#(tostring(A[ATAB].class))+1 do
  859.             if i == #(tostring(A[ATAB].class))+1 then
  860.                 ACLASS[i]=0
  861.             else
  862.                 ACLASS[i]=string.byte(A[ATAB].class,i)
  863.             end
  864.         end
  865.     else
  866.         A[ATAB].class=0
  867.     end
  868.    
  869.                 ASTART=AEND+1
  870.                 if xtx==2 then gg.setRanges(r1) end
  871.                 clear() t=1
  872.                 gg.searchNumber(":"..tostring(A[ATAB].method),1)
  873.                 if xtx==2 then gg.setRanges(r2) end
  874.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  875.                 check()
  876.                     if E==0 then ATAB=ATAB+1
  877.                         if ATAB>ATOTAL then break return end
  878.                     goto AUTOSTART return
  879.                     end
  880.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  881.                 x=xm[1].value refine()
  882.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  883.                 o=oo+1 offset() refine() o=-oo offset()
  884.                 check()
  885.                     if E==0 then ATAB=ATAB+1
  886.                         if ATAB>ATOTAL then break return end
  887.                     goto AUTOSTART return
  888.                     end
  889.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  890.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  891.                     if #(xpoint)==0 then ATAB=ATAB+1
  892.                         if ATAB>ATOTAL then break return end
  893.                     goto AUTOSTART return
  894.                     end
  895.                 clear()
  896.                     for xp=1,#(xpoint) do
  897.                     xpoint[xp].address=xpoint[xp].address+off1
  898.                     xpoint[xp].flags=typ
  899.                     end
  900.                 gg.loadResults(xpoint)
  901.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  902.                     if #(xoff)==0 then ATAB=ATAB+1
  903.                         if ATAB>ATOTAL then break return end
  904.                     goto AUTOSTART return
  905.                     end
  906.                     xfin=1
  907.                     while xfin<=#(xoff) do
  908.                     ::XFIN::
  909.                         if xfin>#(xoff) then ATAB=ATAB+1
  910.                             if ATAB>ATOTAL then break return end
  911.                         goto AUTOSTART return
  912.                         end
  913.                         if gg.getTargetInfo().x64 then
  914.                             xadd=tonumber(xoff[xfin].value)  
  915.                         else
  916.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  917.                             xadd=string.sub(tostring(xadd), -8,-1)
  918.                             xadd=tonumber("0x"..xadd)
  919.                         end    
  920.                     gval1=nil gval1={} gval1[1]={}
  921.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  922.                     gval1[1].address=xoff[xfin].address+gvo
  923.                     gval1[1].flags=typ
  924.                     gval1=gg.getValues(gval1)
  925.                         if gg.getTargetInfo().x64 then
  926.                             gval=tonumber(gval1[1].value)  
  927.                         else
  928.                             gval=string.format("%X",tonumber(gval1[1].value))
  929.                             gval=string.sub(tostring(gval), -8,-1)
  930.                             gval=tonumber("0x"..gval)
  931.                         end    
  932.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  933.                     gval2[1].address=gval+gvo1
  934.                     gval2[1].flags=typ
  935.                     gval2[2].address=gval+gvo2
  936.                     gval2[2].flags=typ
  937.                     gval2=gg.getValues(gval2)
  938.                         if gg.getTargetInfo().x64 then
  939.                             gval21=tonumber(gval2[1].value)  
  940.                             gval22=tonumber(gval2[2].value)
  941.                         else
  942.                             gval21=string.format("%X",tonumber(gval2[1].value))
  943.                             gval21=string.sub(tostring(gval21), -8,-1)
  944.                             gval21=tonumber("0x"..gval21)
  945.                             gval22=string.format("%X",tonumber(gval2[2].value))
  946.                             gval22=string.sub(tostring(gval22), -8,-1)
  947.                             gval22=tonumber("0x"..gval22)
  948.                         end    
  949.                          xrefine=0
  950.                          if A[ATAB].class~=0 then
  951.                             for xyz=1,#(ACLASS) do
  952.                                 gvalc={} gvalc[1]={}
  953.                                 gvalc[1].address=gval21+(xyz-1)
  954.                                 gvalc[1].flags=1                        
  955.                                 gvalc=gg.getValues(gvalc)
  956.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  957.                             end
  958.                         end
  959.                        
  960.                         if A[ATAB].name~=0 then
  961.                             for xyz=1,#(ANAME) do
  962.                                 gvalc={} gvalc[1]={}
  963.                                 gvalc[1].address=gval22+(xyz-1)
  964.                                 gvalc[1].flags=1                        
  965.                                 gvalc=gg.getValues(gvalc)
  966.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  967.                             end
  968.                         end
  969.                          
  970.                          if xrefine==0 then
  971.                         A[ATAB].start=ASTART AEND=AEND+1
  972.                         A[ATAB].finish=AEND
  973.                         A[ATAB].error=0
  974.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  975.                         SFTA[ATAB]="A["..ATAB.."]={}\nA["..ATAB.."].name = "..A[ATAB].name.."\nA["..ATAB.."].class = "..A[ATAB].class.."\nA["..ATAB.."].method = "..A[ATAB].method.."\nA["..ATAB.."].start = "..ASTART.."\nA["..ATAB.."].finish = "..AEND.."\nA["..ATAB.."].error = 0"
  976.                         SFTI[AEND]="I["..AEND.."] = "..xadd-xAPEXx[xXx]      
  977.                         end
  978.                     xfin=xfin+1            
  979.                     end -- xfin
  980.     ATAB=ATAB+1
  981.     end -- ATAB
  982.    
  983. ---------------------------------------------------
  984.  
  985. ::FINISHED::
  986.  xBAR=0
  987.     for i = 1, ATOTAL do
  988.         if A[i].error~=0 then xBAR=xBAR+1 end
  989.     end
  990.     if xBAR>=ATOTAL  then
  991.         gg.toast("×× FAILURE ××") gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  992.         exit()
  993.         return
  994.     end
  995.     if xBAR>=1 then gg.toast("× ERROR ×") gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  996.     end
  997.    
  998.     if xBAR==0 then
  999.     sft=table.concat(SFT,"\n")
  1000.     sfta=table.concat(SFTA,"\n")
  1001.     sfti=table.concat(SFTI,"\n")
  1002.     wstring=tostring(sft.."\n"..sfta.."\n"..sfti)
  1003.     local sfsuccess=gg.alert("Auto-Update Success\nCurrent Offsets Will be Saved to File and Automatically Loaded Every Script Execution. Script will Verify Game Version and Automatically Update File as Needed.\n\nSaved File Path:\n"..gg.EXT_FILES_DIR.."/"..GProcess..".lua","√ SAVE","× SAVE","APEX[GG]V2")
  1004.         if sfsuccess==1 then
  1005.             io.open(gg.EXT_FILES_DIR.."/"..GProcess..".lua","w"):write(wstring):close()
  1006.             print("Offsets Written to File:\n"..gg.EXT_FILES_DIR.."/"..GProcess..".lua")
  1007.         end
  1008. end  
  1009. end   -- if NEEDSEARCH
  1010. --███████████████████████
  1011. --███████████████████████
  1012. if xREV==1 then
  1013. xRx=1 ORIG={} xREV={}
  1014.     for XxX=1,#(xAPEXx) do  
  1015.         for i, v in ipairs(I) do
  1016.         thiscunt=0
  1017.             for dfg=1,7 do
  1018.             ORIG[xRx]={}
  1019.             ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+thiscunt
  1020.             ORIG[xRx].flags=4
  1021.             xRx=xRx+1
  1022.             thiscunt=thiscunt+4
  1023.             end
  1024.         end    
  1025.     end
  1026. ORIG=gg.getValues(ORIG)
  1027. end
  1028. --███████████████████████
  1029. while true do
  1030.     if gg.isVisible() or apex==1 then
  1031.         gg.setVisible(false) apex=0
  1032.         menu()
  1033.     end
  1034. end
Add Comment
Please, Sign In to add comment