Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LUA = 'WILS2M'
- GLabel = 'Shadow Of Death'
- GProcess = 'com.Zonmob.ShadowofDeath.FightingGames'
- GVersion = '(vAU.02)'
- xbit = 64
- LibResult = 1
- xlib = 'libil2cpp.so'
- xREV = 1 I={}
- xCNE = 0
- xSSE = 0
- XbitX = 2
- --███████████████████████
- expire='free'
- game = gg.getTargetInfo()
- P=game.processName
- FP=game.name
- L=gg.getTargetInfo().label
- M=gg.getTargetInfo()["label"]
- V=game.versionName
- TP=gg.getTargetPackage()
- xTAGx="Have fun"
- xLINKx="https://t.me/HxE_Chat"
- xLINK1x="https://www.tiktok.com/@hxesq"
- printx="---------------------------------------------------------------"
- print(printx)
- print(xTAGx)
- print("Telegram = "..xLINKx)
- print("TikTok = "..xLINK1x)
- print(printx)
- print("Script = "..GLabel.." "..GVersion)
- --███████████████████████
- apex=1
- gg.setVisible(false)
- v=gg.getTargetInfo()
- if v==nil then
- print("×× ERROR ××\n×× INVALID PROCESS SELECTED / OR NO ROOT ACCESS")
- gg.setVisible(true) os.exit()
- return
- end
- HxEmenu = (' ⚡HxE Menu by wils2m⚡\
- ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
- ⛥🇮🇳🇫🇴⛥\
- 🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
- 🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
- 🎰🅐🅡🅜🎰 : '..xbit..'\
- \
- ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
- 🎁 Encryption 🎁 : '..expire..'\
- ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
- gg.alert(HxEmenu)
- gg.alert(" Patch Note\
- ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
- - HxE script menu\
- - Huge thanks to Apex[GG]\
- - Auto update implemented\
- - Remove no working hacks\
- - No Ads\
- - Unlimited Crystal, Soul, Skillpoints\
- - Instant Kill\
- - Free Equipment Hacks\
- - Apex[GG] options:\
- - No skill cooldown\
- - Freeplay\
- - Autoplay\
- - Disable ennemies\
- ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
- ")
- --███████████████████████
- if L == GLabel then
- gg.toast('➣ Game : ' .. L)
- gg.clearResults()
- else
- gg.alert("Bad process selected")
- gg.setVisible(true)
- print('Bad process')
- end
- ------------------------------------------------------------------------------
- if v.processName~=GProcess then
- print("This Script is For:\n "..GLabel.."\n "..GProcess.."\nYou Selected:\n "..v.label.."\n "..v.processName)
- gg.setVisible (true) os.exit()
- return
- else
- gg.toast('➣ Package : ' .. GProcess)
- end
- ------------------------------------------------------------------------------
- if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
- --███████████████████████
- --███████████████████████
- ------------------------------------------------------------------------------
- A={} for i =1,100 do A[i]={} end
- ------------------------------------------------------------------------------
- OFF="× " ON="√ "
- CD=OFF CR=OFF SP=OFF EQ=OFF CH=OFF OH=OFF SO=OFF NA=OFF
- AC=OFF OW=OFF AP=OFF FR=OFF EA=OFF
- function menu()
- apex=0
- gg.toast(xTAGx)
- mc=gg.multiChoice({
- CD.."No Cooldown",
- OH.."Instant Kill",
- CR.."Unlimited Crystals",
- SO.."Unlimited Souls",
- SP.."Unlimited Skills Points",
- EQ.."Free Equipment Hacks",
- FR.."Free Play",
- OW.."One Wave only",
- AP.."Autoplay",
- EA.."Disable ennemies",
- NA.."No Ads",
- "[ EXIT ]"},
- {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
- if mc==nil then cancel() return end
- if mc[1] then cooldown() end
- if mc[2] then instant() end
- if mc[3] then gems() end
- if mc[4] then souls() end
- if mc[5] then skillsp() end
- if mc[6] then equipment() end
- if mc[7] then freeplay() end
- if mc[8] then onew() end
- if mc[9] then autoplay() end
- if mc[10] then ennemyatk() end
- if mc[11] then noads() end
- xhaX={
- CD.."No Cooldown",
- OH.."Instant Kill",
- CR.."Unlimited Crystals",
- SO.."Unlimited Souls",
- SP.."Unlimited Skills Points",
- EQ.."Free Equipment Hacks",
- FR.."Free Play",
- OW.."One Wave only",
- AP.."Autoplay",
- EA.."Disable ennemies",
- NA.."No Ads",
- }
- xhaX=table.concat(xhaX, "\n")
- xhaX=tostring(xhaX)
- if mc[12] then exit() return end
- gg.toast("[√] Complete")
- gg.alert("Hacks "..GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)
- end
- --███████████████████████
- --public class LoadingSceneView : MonoBehaviour
- for i = 1,2 do A[i].class="LoadingSceneView" end
- --public bool IsFinishAds()
- A[1].method="IsFinishAds"
- --public void EnableInterstitialAds()
- A[2].method="EnableInterstitialAds"
- --//Namespace: SSAR.WorldMap.Model
- --public class ShowWorldmapParameter
- --public bool get_EnableInterstitialAds()
- --//Namespace: Assets.Scripts.Ssar.Main.Command
- --public class CheckAndLoadMainSceneCmd : Command
- --public int get_enableInterstitialAds()
- --//Namespace: Assets.Scripts.Ssar.AdMob.Interstitial
- for i = 3,7 do A[i].name="Assets.Scripts.Ssar.AdMob.Interstitial" end
- --public class InterstitialAds
- for i = 3,5 do A[i].class="InterstitialAds" end
- --public bool IsAvailable()
- A[3].method="IsAvailable"
- --public void Show(Action<bool> callback)
- A[4].method="Show"
- --public void RequestNewAds()
- A[5].method="RequestNewAds"
- --public class IronSrcSource
- for i = 6,7 do A[i].class="IronSrcSource" end
- --public void Show(Action<bool> callback)
- A[6].method="Show"
- --public bool IsInterstitialReady()
- A[7].method="IsInterstitialReady"
- function noads()
- for i = 1,7 do if A[i].error==1 then break error() return end end
- for i = A[1].start, A[7].finish do o=I[i] x=0
- if NA==OFF then arm() else revert() end
- end
- if NA==OFF then NA=ON else NA=OFF end
- end
- --███████████████████████
- -- // Namespace: CodeStage.AntiCheat.Examples
- -- public class ActTesterGui : MonoBehaviour // TypeDefIndex:
- -- private void OnValidate() { }
- A[8].name="CodeStage.AntiCheat.Examples"
- A[8].class="ActTesterGui"
- A[8].method="OnValidate"
- -- private void Start() { }
- A[9].name="CodeStage.AntiCheat.Examples"
- A[9].class="ActTesterGui"
- A[9].method="Start"
- -- // Namespace: SSAR.BattleSystem.System.Arena
- -- public class CheatCheckingLogic // TypeDefIndex:
- -- public bool IsCheating()
- function anticheat()
- for i = 8,9 do if A[i].error==1 then break error() return end end
- for i = A[8].start, A[9].finish do o=I[i] x=0
- if AC==OFF then arm() end
- end
- end
- --███████████████████████
- --// Namespace: Assets.Scripts.Core.Skills
- -- public class SkillCastingRequirement // TypeDefIndex:
- -- public void StartCooldown() { }
- A[10].name="Assets.Scripts.Core.Skills"
- A[10].class="SkillCastingRequirement"
- A[10].method="StartCooldown"
- function cooldown()
- if A[10].error==1 then error() return end
- for i = A[10].start, A[10].finish do o=I[i]
- if CD==OFF then x=0 arm() else revert() end
- end
- if CD==OFF then CD=ON else CD=OFF end
- end
- --█████████████████████
- --public class MainCharacterData
- --public int GetCrystal()
- A[11].class="MainCharacterData"
- A[11].method="GetCrystal"
- --30000 int
- --x="h00A68ED2"
- --1500000 int
- --x="hE002A0D2"
- function gems()
- if A[11].error==1 then error() return end
- x="hE002A0D2"
- for i = A[11].start, A[11].finish do o=I[i]
- if CR==OFF then arm() else revert() end
- end
- if CR==OFF then CR=ON else CR=OFF end
- end
- --█████████████████████
- --public class MainCharacterData
- --public int GetSoul()
- A[12].class="MainCharacterData"
- A[12].method="GetSoul"
- --30000 int
- --x="h00A68ED2"
- --1500000 int
- --x="hE002A0D2"
- function souls()
- if A[12].error==1 then error() return end
- x="hE002A0D2"
- for i = A[12].start, A[12].finish do o=I[i]
- if SO==OFF then arm() else revert() end
- end
- if SO==OFF then SO=ON else SO=OFF end
- end
- --█████████████████████
- --public class MainCharacterData
- --public int GetSkillPointPurchased()
- A[13].class="MainCharacterData"
- A[13].method="GetSkillPointPurchased"
- function skillsp()
- if A[13].error==1 then error() return end
- x="h007D80D2"
- for i = A[13].start, A[13].finish do o=I[i]
- if SP==OFF then arm() else revert() end
- end
- if SP==OFF then SP=ON else SP=OFF end
- end
- --█████████████████████
- --//Namespace: Assets.Scripts.Model
- --public class EquipmentEnhanceLogic : IItemLogic
- --public override bool IsLocked(MainCharacterData mainCharacterData, IItem item)
- A[14].method="IsLocked"
- --public override int GetEnhanceEquipmentPrice(IItem item, int targetLevel)
- A[15].method="GetEnhanceEquipmentPrice"
- --public override int GetSellPrice(IItem item)
- --I[26]=0x1F7EFB0
- --public override int GetEquipmentAwakenSoulPricePerSlot(IItem item)
- A[16].method="GetEquipmentAwakenSoulPricePerSlot"
- --// Namespace: Ssar.Craft.Model
- -- public class CraftingMaterial : ICollectData // TypeDefIndex:
- -- public int get_quantity() { }
- A[17].name="Ssar.Craft.Model"
- A[17].class="CraftingMaterial"
- A[17].method="get_quantity"
- function equipment()
- for i = 14,17 do if A[i].error == 1 then error() break return end end
- x=0
- for i = A[14].start, A[17].finish do o=I[i]
- if EQ==OFF then arm() else revert() end
- end
- --if EQ==OFF then o=I[26] arm() else revert() end
- if EQ==OFF then EQ=ON else EQ=OFF end
- end
- --█████████████████████--//Namespace: Assets.Scripts.Core.Skills
- -- public int get_staminaRequire() { }
- --// Namespace: Scripts.Config
- --public class Dungeon : IDungeonInfo
- A[18].name="Scripts.Config"
- A[18].class="Dungeon"
- A[18].method="get_staminaRequire"
- --// Namespace: Assets.Scripts.Ssar.Dungeon.View
- --public class ArenaConstantConfig
- A[19].name="Assets.Scripts.Ssar.Dungeon.View"
- A[19].class="ArenaConstantConfig"
- A[19].method="get_staminaRequire"
- --// Namespace: Scripts.Config
- --public class BloodyTowerFloorInfo : IDungeonInfo
- A[20].name="Scripts.Config"
- A[20].class="BloodyTowerFloorInfo"
- A[20].method="get_staminaRequire"
- function freeplay()
- for i = 18,20 do if A[i].error == 1 then error() break return end end
- for i = A[18].start, A[20].finish do o=I[i]
- if FR==OFF then x=0 arm() else revert() end
- end
- if FR==OFF then FR=ON else FR=OFF end
- end
- --█████████████████████
- --//Namespace: SSAR.BattleSystem.AI
- --public abstract class AbsAction
- --protected virtual bool IsEnable()
- A[21].name="SSAR.BattleSystem.AI"
- A[21].class="AbsAction"
- A[21].method="IsEnable"
- --//Namespace: Assets.Scripts.Ssar.Dungeon.Stages
- --public class DefaultStage
- --private bool EvaluateAllGoalsIsAchieved()
- A[22].name="Assets.Scripts.Ssar.Dungeon.Stages"
- A[22].class="DefaultStage"
- A[22].method="EvaluateAllGoalsIsAchieved"
- --//Namespace: Assets.Scripts.Core.UnlockableSystem
- --public class Entity
- --public bool IsUnlocked()
- A[23].name="Assets.Scripts.Core.UnlockableSystem"
- A[23].class="Entity"
- A[23].method="IsUnlocked"
- --//Namespace: Assets.Scripts.Core.Skills
- --public abstract class Character
- --public void ConsumeAllSkillCharges()
- A[24].name="Assets.Scripts.Core.Skills"
- A[24].class="Character"
- A[24].method="ConsumeAllSkillCharges"
- --public class DungeonDataManager
- --public bool IsEnableSlowMotionWhenWin()
- A[25].class="DungeonDataManager"
- A[25].method="IsEnableSlowMotionWhenWin"
- function instant()
- for i = 21,25 do if A[i].error == 1 then error() break return end end
- for i = A[21].start, A[23].finish do o=I[i]
- if OH==OFF then x=1 arm() else revert() end
- end
- for i = A[24].start, A[25].finish do o=I[i]
- if OH==OFF then x=0 arm() else revert() end
- end
- if OH==OFF then OH=ON else OH=OFF end
- end
- --███████████████████████
- --// Namespace: Assets.Scripts.Ssar.Dungeon
- -- public class Dungeon // TypeDefIndex:
- -- private bool IsLastStage() { }
- A[26].name="Assets.Scripts.Ssar.Dungeon"
- A[26].class="Dungeon"
- A[26].method="IsLastStage"
- function onew()
- if A[26].error==1 then error() return end
- for i = A[26].start, A[26].finish do o=I[i]
- if OW==OFF then x=1 arm() else revert() end
- end
- if OW==OFF then OW=ON else OW=OFF end
- end
- --███████████████████████
- -- // Namespace: Assets.Scripts.Ssar.BattleSystem.EntityTemplate
- -- public class ArenaMainTemplate : MainCharacterTemplate // TypeDefIndex:
- -- protected override bool EnableAI() { }
- A[27].name="Assets.Scripts.Ssar.BattleSystem.EntityTemplate"
- A[27].class="ArenaMainTemplate"
- A[27].method="EnableAI"
- -- // Namespace: SSAR.BattleSystem.EntityTemplate
- -- public class MainCharacterTemplate : BaseEntityTemplate // TypeDefIndex:
- -- protected virtual bool EnableAI() { }
- A[28].name="SSAR.BattleSystem.EntityTemplate"
- A[28].class="MainCharacterTemplate"
- A[28].method="EnableAI"
- function autoplay()
- for i = 27,28 do if A[i].error == 1 then error() break return end end
- for i = A[27].start, A[28].finish do o=I[i]
- if AP==OFF then x=1 arm() else revert() end
- end
- if AP==OFF then AP=ON else AP=OFF end
- end
- --███████████████████████
- --// Namespace: SSAR.BattleSystem.EntityTemplate
- -- public abstract class BaseMonsterTemplate : BaseEntityTemplate //
- -- private NewMonsterAIComponent GetNewMonsterAiComponent(Entity entity, BaseHeroTemplateArgs baseHeroTemplateArgs, string mobType) {
- A[29].name="SSAR.BattleSystem.EntityTemplate"
- A[29].class="BaseMonsterTemplate"
- A[29].method="GetNewMonsterAiComponent"
- function ennemyatk()
- if A[29].error==1 then error() return end
- for i = A[29].start, A[29].finish do o=I[i]
- if EA==OFF then x=0 arm() else revert() end
- end
- if EA==OFF then EA=ON else EA=OFF end
- end
- --███████████████████████
- --public void ConsumeCrystal(int crystal, string source, Reason reason)
- --public void ConsumeSoul(int soul, string source, Reason rewardReason)
- --███████████████████████
- --███████████████████████
- function cancel()
- gg.toast("Cancelled")
- end
- ------------------------------------------------------------------------------
- function wait()
- gg.toast("Please Wait..")
- end
- ------------------------------------------------------------------------------
- function error()
- gg.toast("× ERROR ×")
- gg.sleep(1000)
- end
- ------------------------------------------------------------------------------
- function exit()
- print("--------------------------------------------------------------------")
- print("More links - WILS2M")
- print("https://www.tiktok.com/@helledengaming")
- print("https://odysee.com/@HellEtEden-gaming:9")
- print("https://vimeo.com/showcase/10427325")
- gg.processResume()
- gg.getListItems()
- gg.clearList()
- gg.getResults(gg.getResultsCount())
- gg.clearResults()
- gg.toast("[ EXIT ]")
- if xhaX~=nil then
- print(printx)
- print(xhaX)
- print(printx)
- end
- gg.setVisible(true)
- os.exit()
- return
- end
- --███████████████████████
- isrdy=gg.alert("Shadow Of Death\n\nThis Script is Auto-Updating. \nInitial Calibration will take A while.\n\nYOU MUST CURRENTLY BE IN ANY GAMEPLAY (MISSION/BATTLE/ETC). Otherwise, Calibration will Fail and Hacks Not Work\n\n(All hacks can be activated anywhere)","EXIT","START",xTAGx)
- if isrdy~=2 then gg.setVisible(true) os.exit() return end
- --███████████████████████
- if LibResult==1 then
- xAPEXx={} xXx=0
- xLibRes=0
- libx=gg.getRangesList()
- if #(libx)==0 then
- 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' ")
- gg.setVisible(true)
- os.exit()
- end
- libx=gg.getRangesList(xlib)
- if #(libx)==0 then
- print("×× No "..xlib.." Found")
- xLibRes=2
- goto APEX_SPLIT
- end
- xlibn=0
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" then
- xXx=xXx+1
- xAPEXx[xXx]=libx[i].start
- xLibRes=1
- end
- end
- if xLibRes==0 then
- 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' ")
- gg.setVisible(true)
- os.exit()
- end
- ::APEX_SPLIT::
- if xLibRes==2 then
- splitapk=0
- libx=gg.getRangesList()
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
- splitapk=1
- end
- end
- if splitapk==1 then
- xsapk={} xsapkx=0
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" then
- xsapkx=xsapkx+1
- xsapk[xsapkx]=libx[i]["end"]-libx[i].start
- end
- end
- if xsapkx~=0 then
- APEXQ=math.max(table.unpack(xsapk))
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then
- xXx=xXx+1
- xAPEXx[xXx]=libx[i].start
- print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
- xLibRes=1
- end
- end
- end
- end
- if splitapk==0 and xLibRes~=1 then
- print("×× No split_config Lib Found")
- xc=1 xt={}
- libx=gg.getRangesList()
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" then
- xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
- xc=xc+1
- end
- end
- APEXQ=math.max(table.unpack(xt))
- for i, v in ipairs(libx) do
- if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then
- xXx=xXx+1
- xAPEXx[xXx]=libx[i].start
- print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
- xLibRes=1
- end
- end
- end
- if xLibRes~=1 then
- print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
- gg.setVisible(true)
- os.exit()
- return
- end
- end
- end
- --███████████████████████
- function arm()
- o=tonumber(o)
- for XxX=1,#(xAPEXx) do
- xdump=nil xdump={}
- xdump[1]={} xdump[2]={}
- xdump[1].address=xAPEXx[XxX] + o
- xdump[1].flags=4
- if x==0 then xdump[1].value=xfalse end
- if x==1 then xdump[1].value=xtrue end
- if x~=0 and x~=1 then xdump[1].value=x end
- xdump[2].address=xAPEXx[XxX]+(o+4)
- xdump[2].flags=4
- xdump[2].value=xEND
- gg.setValues(xdump)
- end
- end
- ------------------------------------------------------------------------------
- function revert()
- for XxX=1,#(xAPEXx) do
- REVERT=nil REVERT={} xRx=nil xRx=1
- for i, v in ipairs(ORIG) do
- if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
- REVERT[xRx]={}
- REVERT[xRx].address=xAPEXx[XxX]+o
- REVERT[xRx].flags=4
- REVERT[xRx].value=ORIG[i].value
- xRx=xRx+1
- REVERT[xRx]={}
- REVERT[xRx].address=xAPEXx[XxX]+o+4
- REVERT[xRx].flags=4
- REVERT[xRx].value=ORIG[i+1].value
- gg.setValues(REVERT)
- break
- end
- xRx=xRx+1
- end
- end
- end
- --███████████████████████
- if v.x64 then
- xtrue="h200080D2" -- MOV X0, #0x1
- xfalse="h000080D2" -- MOV X0, #0x0
- xEND="hC0035FD6" -- RET
- else
- xtrue="h0100A0E3" -- MOVW R0, #1
- xfalse="h0000A0E3" -- MOVW R0, #0
- xEND="h1EFF2FE1" -- BX LR
- end
- --███████████████████████
- -- APEX[GG]v2
- --███████████████████████
- function clear()
- gg.getResults(gg.getResultsCount())
- gg.clearResults()
- end
- ------------------------------------------------------------------------------
- function get()
- gg.getResults(gg.getResultsCount())
- end
- ------------------------------------------------------------------------------
- function search()
- gg.getResults(gg.getResultsCount())
- gg.clearResults()
- gg.searchNumber(x,t)
- end
- ------------------------------------------------------------------------------
- function refine()
- gg.refineNumber(x,t)
- end
- ------------------------------------------------------------------------------
- function refinenot()
- gg.refineNumber(x,t,false,gg.SIGN_NOT_EQUAL)
- end
- ------------------------------------------------------------------------------
- function edit()
- gg.getResults(gg.getResultsCount())
- gg.editAll(x,t)
- end
- ------------------------------------------------------------------------------
- function check()
- E=nil E=gg.getResultsCount()
- end
- ------------------------------------------------------------------------------
- function offset()
- o=tonumber(o) addoff=nil
- addoff=gg.getResults(gg.getResultsCount())
- for i, v in ipairs(addoff) do
- addoff[i].address=addoff[i].address+o
- addoff[i].flags=t
- end
- gg.loadResults(addoff)
- end
- --███████████████████████
- function cancel()
- gg.toast("CANCELLED")
- end
- ------------------------------------------------------------------------------
- function wait()
- gg.toast("Please Wait..")
- end
- ------------------------------------------------------------------------------
- function error()
- gg.toast("× ERROR ×")
- gg.sleep(1000)
- end
- ------------------------------------------------------------------------------
- function exit()
- print("--------------------------------------------------------------------")
- print("More links - WILS2M")
- print("https://www.tiktok.com/@helledengaming")
- print("https://odysee.com/@HellEtEden-gaming:9")
- print("https://vimeo.com/showcase/10427325")
- gg.processResume()
- gg.getListItems()
- gg.clearList()
- gg.getResults(gg.getResultsCount())
- gg.clearResults()
- gg.toast("[ EXIT ]")
- if xhaX~=nil then
- print(printx)
- print(xhaX)
- print(printx)
- end
- gg.setVisible(true)
- os.exit()
- return
- end
- --███████████████████████
- --███████████████████████
- if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
- gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
- gmdx=gg.getRangesList("global-metadata.dat")
- if #(gmdx)~=0 then
- gmds=gg.getRangesList("global-metadata.dat")[1].start
- gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
- else gmds=nil gmde=nil
- end
- ATOTAL=0
- for i = 1,100 do
- if A[i].method==nil then break end
- ATOTAL=ATOTAL+1
- end
- ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
- S=0
- while ATAB<=ATOTAL do
- ::AUTOSTART::
- if gg.isVisible() then gg.setVisible(false) end
- if ATAB>ATOTAL then break goto FINISHED end
- gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
- A[ATAB].error=1
- ANAME=nil ANAME={}
- if A[ATAB].name~=nil then
- for i = 1,#(tostring(A[ATAB].name)) do
- ANAME[i]=string.byte(A[ATAB].name,i)
- end
- else
- A[ATAB].name=0
- end
- ACLASS=nil ACLASS={}
- if A[ATAB].class~=nil then
- for i = 1,#(tostring(A[ATAB].class)) do
- ACLASS[i]=string.byte(A[ATAB].class,i)
- end
- else
- A[ATAB].class=0
- end
- ASTART=AEND+1
- clear() t=1
- gg.searchNumber(":"..tostring(A[ATAB].method),1,false,gg.SIGN_EQUAL,gmds, gmde)
- xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
- check()
- if E==0 then ATAB=ATAB+1
- if ATAB>ATOTAL then break return end
- goto AUTOSTART return
- end
- x=xm[1].value..";"..xm[2].value.."::2" refine()
- x=xm[1].value refine()
- o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
- o=oo+1 offset() refine() o=-oo offset()
- check()
- if E==0 then ATAB=ATAB+1
- if ATAB>ATOTAL then break return end
- goto AUTOSTART return
- end
- gg.searchPointer(0) xcount=gg.getResultsCount()
- xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
- if #(xpoint)==0 then ATAB=ATAB+1
- if ATAB>ATOTAL then break return end
- goto AUTOSTART return
- end
- clear()
- for xp=1,#(xpoint) do
- xpoint[xp].address=xpoint[xp].address+off1
- xpoint[xp].flags=typ
- end
- gg.loadResults(xpoint)
- xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
- if #(xoff)==0 then ATAB=ATAB+1
- if ATAB>ATOTAL then break return end
- goto AUTOSTART return
- end
- xfin=1
- while xfin<=#(xoff) do
- ::XFIN::
- if xfin>#(xoff) then ATAB=ATAB+1
- if ATAB>ATOTAL then break return end
- goto AUTOSTART return
- end
- if gg.getTargetInfo().x64 then
- xadd=tonumber(xoff[xfin].value)
- else
- xadd=string.format("%X",tonumber(xoff[xfin].value))
- xadd=string.sub(tostring(xadd), -8,-1)
- xadd=tonumber("0x"..xadd)
- end
- gval1=nil gval1={} gval1[1]={}
- if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
- gval1[1].address=xoff[xfin].address+gvo
- gval1[1].flags=typ
- gval1=gg.getValues(gval1)
- if gg.getTargetInfo().x64 then
- gval=tonumber(gval1[1].value)
- else
- gval=string.format("%X",tonumber(gval1[1].value))
- gval=string.sub(tostring(gval), -8,-1)
- gval=tonumber("0x"..gval)
- end
- gval2=nil gval2={} gval2[1]={} gval2[2]={}
- gval2[1].address=gval+gvo1
- gval2[1].flags=typ
- gval2[2].address=gval+gvo2
- gval2[2].flags=typ
- gval2=gg.getValues(gval2)
- if gg.getTargetInfo().x64 then
- gval21=tonumber(gval2[1].value)
- gval22=tonumber(gval2[2].value)
- else
- gval21=string.format("%X",tonumber(gval2[1].value))
- gval21=string.sub(tostring(gval21), -8,-1)
- gval21=tonumber("0x"..gval21)
- gval22=string.format("%X",tonumber(gval2[2].value))
- gval22=string.sub(tostring(gval22), -8,-1)
- gval22=tonumber("0x"..gval22)
- end
- xrefine=0
- if A[ATAB].class~=0 then
- for xyz=1,#(ACLASS) do
- gvalc={} gvalc[1]={}
- gvalc[1].address=gval21+(xyz-1)
- gvalc[1].flags=1
- gvalc=gg.getValues(gvalc)
- if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
- end
- end
- if A[ATAB].name~=0 then
- for xyz=1,#(ANAME) do
- gvalc={} gvalc[1]={}
- gvalc[1].address=gval22+(xyz-1)
- gvalc[1].flags=1
- gvalc=gg.getValues(gvalc)
- if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
- end
- end
- if xrefine==0 then
- A[ATAB].start=ASTART AEND=AEND+1
- A[ATAB].finish=AEND
- A[ATAB].error=0
- clear() I[AEND]=xadd-xAPEXx[xXx]
- end
- xfin=xfin+1
- end -- xfin
- ATAB=ATAB+1
- end -- ATAB
- ---------------------------------------------------
- ::FINISHED::
- xBAR=0
- for i = 1, ATOTAL do
- if A[i].error~=0 then xBAR=xBAR+1 end
- end
- if xBAR>=ATOTAL then
- gg.toast("×× FAILURE ××") gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)
- exit()
- return
- end
- if xBAR>=1 then gg.toast("× ERROR") gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
- else gg.toast("√ SUCCESS") gg.alert("\n√ Auto Update Success\n\n'Have Fun","OK",nil, xTAGx)
- end
- --███████████████████████
- if xREV==1 then
- xRx=1 ORIG={} xREV={}
- for XxX=1,#(xAPEXx) do
- for i, v in ipairs(I) do
- ORIG[xRx]={}
- ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
- ORIG[xRx].flags=4
- xRx=xRx+1
- ORIG[xRx]={}
- ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
- ORIG[xRx].flags=4
- xRx=xRx+1
- end
- end
- ORIG=gg.getValues(ORIG)
- end
- --███████████████████████
- while true do
- if gg.isVisible() then
- gg.setVisible(false)
- menu()
- else
- if apex==1 then
- gg.setVisible(false)
- menu()
- end
- end
- end
Add Comment
Please, Sign In to add comment