wilmans2m

DeadTarget

Mar 29th, 2024 (edited)
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 29.50 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. GLabel = 'Dead Target'
  3. GProcess = 'com.vng.g6.a.zombie'
  4. GVersion = '(vAU.02)'
  5. xbit = 64
  6. LibResult = 1
  7. xlib = 'libil2cpp.so'
  8. xREV = 1  I={}
  9. xCNE = 0
  10. xSSE = 0
  11. XbitX = 2
  12. printx = '---------------------------------------------------------------'
  13. expire='free'
  14. game = gg.getTargetInfo()
  15. P=game.processName
  16. FP=game.name
  17. L=gg.getTargetInfo().label
  18. M=gg.getTargetInfo()["label"]
  19. V=game.versionName
  20. TP=gg.getTargetPackage()
  21. xTAGx="Have fun"
  22. xLINKx="https://t.me/HxE_Chat"
  23. xLINK1x="https://www.tiktok.com/@hxesq"
  24. APEXSN=gg.getFile():match('[^/]+$')
  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. gg.alert("                           Patch Note\
  59.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  60. - HxE script menu\
  61. - Huge thanks to Apex[GG]\
  62. - Script auto updated\
  63. - One Hit KO\
  64. - God Mode\
  65. - No Ads\
  66. - Unlimited Ammo\
  67. - Unlimited Grenades/Medkits\
  68. - Unlimited Money/Diamonds\
  69.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  70. ")
  71. ------------------------------------------------------------------------------
  72. A={} for i =1,100 do A[i]={} end
  73. ------------------------------------------------------------------------------
  74. OFF="× " ON="√ "
  75. KO=OFF GM=OFF UA=OFF UE=OFF UM=OFF NA=OFF
  76.     if v.x64 then x1="hC0BEA0D2" x2='h006A98D2'
  77.     else x1="h990040E3" x2='h640000E3'
  78.     end
  79.  
  80. function menu()
  81. apex=0
  82. gg.toast(xTAGx)  
  83. mc=gg.multiChoice({
  84. KO.."One Hit KO",
  85. GM.."God Mode",
  86. UA.."Unlimited Ammo,No reload",
  87. UE.."Unlimited Grenades/Medkits",
  88. UM.."Unlimited Money/Diamonds",
  89.     "[ EXIT ]"},
  90.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  91.    
  92.     if mc==nil then cancel() return end
  93.     if mc[1] then ko() end
  94.     if mc[2] then god() end
  95.     if mc[3] then ammo() end
  96.     if mc[4] then eqpt() end
  97.     if mc[5] then gold() end
  98.    
  99. xhaX={
  100. KO.."One Hit KO",
  101. GM.."God Mode",
  102. UA.."Unlimited Ammo,No reload",
  103. UE.."Unlimited Grenades/Medkits",
  104. UM.."Unlimited Money/Diamonds",
  105.     }
  106. xhaX=table.concat(xhaX, "\n")
  107. xhaX=tostring(xhaX)
  108.  
  109.     if mc[6] then exit() return end
  110.  
  111. gg.toast("[√] Complete")
  112. gg.alert(GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)  
  113.  
  114. end
  115.  
  116. --█████████████████████████████████████████████
  117.  
  118. --public class AndroidAgent : IronSourceIAgent
  119. --public void showInterstitial()
  120. --public void showInterstitial(string placementName)
  121.     A[1].class="AndroidAgent"
  122.     A[1].method="showInterstitial"
  123. --public bool isInterstitialReady()
  124.     A[2].class="AndroidAgent"
  125.     A[2].method="isInterstitialReady"
  126. --public void showOfferwall()
  127. --public void showOfferwall(string placementName) { }
  128.     A[3].class="AndroidAgent"
  129.     A[3].method="showOfferwall"
  130. --public void getOfferwallCredits()
  131.     A[4].class="AndroidAgent"
  132.     A[4].method="getOfferwallCredits"
  133. --public bool isOfferwallAvailable()
  134.     A[5].class="AndroidAgent"
  135.     A[5].method="isOfferwallAvailable"
  136. --public void displayBanner()
  137.     A[6].class="AndroidAgent"
  138.     A[6].method="displayBanner"
  139. --public class IronSource : IronSourceIAgent
  140. --public void showInterstitial()
  141. --public void showInterstitial(string placementName)
  142.     A[7].class="IronSource"
  143.     A[7].method="showInterstitial"
  144. --public bool isInterstitialReady()
  145.     A[8].class="IronSource"
  146.     A[8].method="isInterstitialReady"
  147. --public void showOfferwall()
  148. --public void showOfferwall(string placementName)
  149.     A[9].class="IronSource"
  150.     A[9].method="showOfferwall"
  151. --public void getOfferwallCredits()
  152.     A[10].class="IronSource"
  153.     A[10].method="getOfferwallCredits"
  154. --public bool isOfferwallAvailable()
  155.     A[11].class="IronSource"
  156.     A[11].method="isOfferwallAvailable"
  157. --public void displayBanner()
  158.     A[12].class="IronSource"
  159.     A[12].method="displayBanner"
  160. --// Namespace: DProject
  161. --public class DSystem : SingletonMono<DSystem>
  162. --public void Init_Ads()
  163.     A[13].name="DProject"
  164.     A[13].class="DSystem"
  165.     A[13].method="Init_Ads"
  166. --public bool IsInterstitalAdsV5()
  167.     A[14].name="DProject"
  168.     A[14].class="DSystem"
  169.     A[14].method="IsInterstitalAdsV5"
  170. --public void CheckForShowingAd()
  171.     A[15].name="DProject"
  172.     A[15].class="DSystem"
  173.     A[15].method="CheckForShowingAd"
  174. --public bool IsSubscriptionAdsOffer()
  175.     A[16].name="DProject"
  176.     A[16].class="DSystem"
  177.     A[16].method="IsSubscriptionAdsOffer"
  178. --public void ShowInterstitialAds(INTERSTITIAL_SEGMENT segment)
  179.     A[17].name="DProject"
  180.     A[17].class="DSystem"
  181.     A[17].method="ShowInterstitialAds"
  182. --public void ShowRatingGame()
  183.     A[18].name="DProject"
  184.     A[18].class="DSystem"
  185.     A[18].method="ShowRatingGame"
  186.  
  187.     function noads()
  188.     for i = 1,18  do if A[i].error == 1 then error() break return end end
  189.     for i = A[1].start, A[18].finish do o=I[i]
  190.     if NA==OFF then x=0 arm() else revert() end
  191.     end
  192.  
  193.     if NA==OFF then NA=ON else NA=OFF end
  194.     end
  195.        
  196. --█████████████████████████████████████████████
  197.  
  198. --public abstract class ZombieBase : MonoBehaviour, IProtectable, IShowDmgTarget
  199. --public long get_curRLegHP()
  200.     A[19].name="DProject"
  201.     A[19].class="ZombieBase"
  202.     A[19].method="get_curRLegHP"
  203. --public long get_curLLegHP()
  204.     A[20].name="DProject"
  205.     A[20].class="ZombieBase"
  206.     A[20].method="get_curLLegHP"
  207. --public long get_curBodyHP()
  208.     A[21].name="DProject"
  209.     A[21].class="ZombieBase"
  210.     A[21].method="get_curBodyHP"
  211. --public long get_curHeadHP()
  212.     A[22].name="DProject"
  213.     A[22].class="ZombieBase"
  214.     A[22].method="get_curHeadHP"
  215. --public long get_curRArmHP()
  216.     A[23].name="DProject"
  217.     A[23].class="ZombieBase"
  218.     A[23].method="get_curRArmHP"
  219. --public long get_curLArmHP()
  220.     A[24].name="DProject"
  221.     A[24].class="ZombieBase"
  222.     A[24].method="get_curLArmHP"
  223. --public long get_curTotalHP()
  224.     A[25].name="DProject"
  225.     A[25].class="ZombieBase"
  226.     A[25].method="get_curTotalHP"
  227. --public long get_ReceivedDmg()
  228.     A[26].name="DProject"
  229.     A[26].class="ZombieBase"
  230.     A[26].method="get_ReceivedDmg"
  231. --public long CalculateBehitDamageWithBonus(long damage)
  232.     A[27].name="DProject"    
  233.     A[27].class="ZombieBase"
  234.     A[27].method="CalculateBehitDamageWithBonus"
  235. --protected long GetMortisHitDamage(PlayerController player, long damage)
  236.     A[28].name="DProject"
  237.     A[28].class="ZombieBase"
  238.     A[28].method="GetMortisHitDamage"
  239. --public class GunController : MonoBehaviour, IDealDamage
  240. --public long get_damage()
  241.     A[29].name="DProject"
  242.     A[29].class="GunController"
  243.     A[29].method="get_damage"
  244. --public bool get_HaveDamageModifier()
  245.     A[30].name="DProject"
  246.     A[30].class="GunController"
  247.     A[30].method="get_HaveDamageModifier"
  248. --public float get_DamageModifier()
  249.     A[31].name="DProject"
  250.     A[31].class="GunController"
  251.     A[31].method="get_DamageModifier"
  252. --public float get_DamageRate()
  253.     A[32].name="DProject"
  254.     A[32].class="GunController"
  255.     A[32].method="get_DamageRate"
  256. --public int GetTotalDPS()
  257.     A[33].name="DProject"
  258.     A[33].class="GunController"
  259.     A[33].method="GetTotalDPS"
  260. --public long GetDamage(out DamageType damageType, long targetHP = 0)
  261.     A[34].name="DProject"
  262.     A[34].class="GunController"
  263.     A[34].method="GetDamage"
  264.  
  265. function ko()
  266.     for i = 19,34  do if A[i].error == 1 then error() break return end end
  267.     for i = A[19].start, A[25].finish do o=I[i]
  268.     if KO==OFF then x=0 arm() else revert() end
  269.     end
  270.     for i = A[26].start, A[29].finish do o=I[i]
  271.     if KO==OFF then x="h00E0AFD2" arm() else revert() end
  272.     end
  273.     for i = A[30].start, A[30].finish do o=I[i]
  274.     if KO==OFF then x=1 arm() else revert() end
  275.     end
  276.     for i = A[31].start, A[31].finish do o=I[i]
  277.     if KO==OFF then x="h00E0AFD2" arm() else revert() end
  278.     end
  279.     for i = A[32].start, A[32].finish do o=I[i]
  280.     if KO==OFF then x=100 arm() else revert() end
  281.     end
  282.     for i = A[33].start, A[34].finish do o=I[i]
  283.     if KO==OFF then x="h00E0AFD2" arm() else revert() end
  284.     end
  285.  
  286.     if KO==OFF then KO=ON else KO=OFF end
  287. end
  288.  
  289. --█████████████████████████████████████████████
  290.  
  291. --public class PlayerController : MonoBehaviour, IEnemyTarget
  292. --public virtual void BeHit(int dame, ZombieModel myModel, ZombieBase attacker, bool isIgnoreArmor = False)
  293.     A[35].name="DProject"
  294.     A[35].class="PlayerController"
  295.     A[35].method="BeHit"
  296.  
  297. function god()
  298.     if A[35].error==1 then error() return end
  299.     for i = A[35].start, A[35].finish do o=I[i]
  300.     if GM==OFF then x=0 arm() else revert() end
  301.     end
  302.  
  303.     if GM==OFF then GM=ON else GM=OFF end
  304. end
  305.  
  306. --█████████████████████████████████████████████
  307.  
  308. --public class DSystem : SingletonMono<DSystem>
  309. --public long get_gameMoney()
  310.     A[36].name="DProject"
  311.     A[36].class="DSystem"
  312.     A[36].method="get_gameMoney"
  313. --public long get_payMoney()
  314.     A[37].name="DProject"
  315.     A[37].class="DSystem"
  316.     A[37].method="get_payMoney"
  317. --public long get_Diamond()
  318.     A[38].name="DProject"
  319.     A[38].class="DSystem"
  320.     A[38].method="get_Diamond"
  321. --public int get_mascotCoin()
  322.     A[39].name="DProject"
  323.     A[39].class="DSystem"
  324.     A[39].method="get_mascotCoin"
  325.  
  326. function gold()
  327.     for i = 36,39  do if A[i].error == 1 then error() break return end end
  328.     for i = A[36].start, A[39].finish do o=I[i]
  329.     if UM==OFF then x="h00E0AFD2" arm() else revert() end
  330.     end
  331.  
  332.     if UM==OFF then UM=ON else UM=OFF end
  333. end
  334.  
  335. --█████████████████████████████████████████████
  336.  
  337. --public class DSystem : SingletonMono<DSystem>
  338. --public int get_grenadesCount()
  339.     A[40].name="DProject"
  340.     A[40].class="DSystem"
  341.     A[40].method="get_grenadesCount"
  342. --public class DSystem : SingletonMono<DSystem>
  343. --public int get_aidKitCount()
  344.     A[41].name="DProject"
  345.     A[41].class="DSystem"
  346.     A[41].method="get_aidKitCount"
  347.  
  348. function eqpt()
  349.     for i = 40,41  do if A[i].error == 1 then error() break return end end
  350.     for i = A[40].start, A[41].finish do o=I[i]
  351.     if UE==OFF then x="h007D80D2" arm() else revert() end
  352.     end
  353.  
  354.     if UE==OFF then UE=ON else UE=OFF end
  355. end
  356.  
  357. --█████████████████████████████████████████████
  358.  
  359. --public class GunController : MonoBehaviour, IDealDamage
  360. --public int get_curBullet()
  361.     A[42].name="DProject"
  362.     A[42].class="GunController"
  363.     A[42].method="get_curBullet"
  364. --public int get_clipSize()
  365.     A[43].name="DProject"
  366.     A[43].class="GunController"
  367.     A[43].method="get_clipSize"
  368. --public float GetReloadTime()
  369.     A[44].name="DProject"
  370.     A[44].class="GunController"
  371.     A[44].method="GetReloadTime"
  372. --private void DecreaseBullet()
  373.     A[45].name="DProject"
  374.     A[45].class="GunController"
  375.     A[45].method="DecreaseBullet"
  376. --public float get_curAccuracy()
  377.  
  378. function ammo()
  379.     for i = 42,45  do if A[i].error == 1 then error() break return end end
  380.     for i = A[42].start, A[43].finish do o=I[i]
  381.     if UA==OFF then x="h007D80D2" arm() else revert() end
  382.     end
  383.     for i = A[44].start, A[45].finish do o=I[i]
  384.     if UA==OFF then x=0 arm() else revert() end
  385.     end
  386.  
  387.     if UA==OFF then UA=ON else UA=OFF end
  388. end
  389.  
  390. --█████████████████████████████████████████████
  391.     if v.processName~=GProcess then
  392.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  393.         gg.setVisible (true) os.exit()
  394.         return
  395.     end
  396. ------------------------------------------------------------------------------
  397.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  398.         print(xBITx)  
  399.         print(printx)  
  400. ------------------------------------------------------------------------------
  401.  
  402. isrdy=gg.alert("Dead Target\nThis Script is Auto-Updating. \nInitial Calibration May Take A While.\n\nYOU MUST NOT CURRENTLY BE IN ANY GAMEPLAY (MISSION/BATTLE/ETC). Otherwise, Calibration will Fail and Hacks Not Work\n\n(All hacks must be activated from lobby)","EXIT","START",xTAGx)  
  403. if isrdy~=2 then gg.setVisible(true) os.exit() return end
  404.  
  405. --█████████████████████████████████████████████
  406.     if LibResult==1 then
  407.     xAPEXx={} xXx=0
  408.     xLibRes=0
  409.     libx=gg.getRangesList()
  410.         if #(libx)==0 then
  411.         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' ")
  412.         gg.setVisible(true)
  413.         os.exit()
  414.         end
  415.     libx=gg.getRangesList(xlib)
  416.         if #(libx)==0 then  
  417.         print("×× No "..xlib.." Found")
  418.         xLibRes=2
  419.         goto APEX_SPLIT
  420.         end
  421.     xlibn=0
  422.         for i, v in ipairs(libx) do
  423.             if libx[i].state=="Xa" then
  424.             xXx=xXx+1
  425.             xAPEXx[xXx]=libx[i].start
  426.             xLibRes=1
  427.             end
  428.         end
  429.         if xLibRes==0 then
  430.         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' ")
  431.         gg.setVisible(true)
  432.         os.exit()    
  433.         end    
  434.                  
  435.         ::APEX_SPLIT::    
  436.         if xLibRes==2 then
  437.         splitapk=0
  438.         libx=gg.getRangesList()
  439.             for i, v in ipairs(libx) do
  440.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  441.                 splitapk=1
  442.                 end
  443.             end
  444.             if splitapk==1 then
  445.             xsapk={} xsapkx=0
  446.                 for i, v in ipairs(libx) do
  447.                     if libx[i].state=="Xa" then
  448.                     xsapkx=xsapkx+1
  449.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  450.                     end
  451.                 end
  452.                 if xsapkx~=0 then                
  453.                 APEXQ=math.max(table.unpack(xsapk))
  454.                     for i, v in ipairs(libx) do              
  455.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  456.                         xXx=xXx+1            
  457.                        xAPEXx[xXx]=libx[i].start
  458.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  459.                         xLibRes=1                      
  460.                         end
  461.                     end
  462.                 end
  463.             end
  464.          
  465.              if splitapk==0 and xLibRes~=1 then
  466.              print("×× No split_config Lib Found")  
  467.              xc=1 xt={}
  468.              libx=gg.getRangesList()
  469.                  for i, v in ipairs(libx) do
  470.                      if libx[i].state=="Xa" then
  471.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  472.                      xc=xc+1
  473.                      end
  474.                  end
  475.              APEXQ=math.max(table.unpack(xt))
  476.                  for i, v in ipairs(libx) do              
  477.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  478.                      xXx=xXx+1      
  479.                      xAPEXx[xXx]=libx[i].start
  480.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  481.                      xLibRes=1  
  482.                      end
  483.                  end
  484.             end                        
  485.  
  486.             if xLibRes~=1 then
  487.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  488.             gg.setVisible(true)
  489.             os.exit()
  490.              return
  491.             end
  492.         end
  493.     end
  494. --█████████████████████████████████████████████
  495. function arm()
  496. o=tonumber(o)
  497.     for XxX=1,#(xAPEXx) do
  498.     xdump=nil xdump={}
  499.     xdump[1]={} xdump[2]={}
  500.     xdump[1].address=xAPEXx[XxX] + o
  501.     xdump[1].flags=4
  502.         if x==0 then xdump[1].value=xfalse end
  503.         if x==1 then xdump[1].value=xtrue end
  504.         if x~=0 and x~=1 then xdump[1].value=x end
  505.     xdump[2].address=xAPEXx[XxX]+(o+4)
  506.     xdump[2].flags=4
  507.     xdump[2].value=xEND
  508.     gg.setValues(xdump)
  509.     end
  510. end
  511. ------------------------------------------------------------------------------  
  512. function revert()
  513.     for XxX=1,#(xAPEXx) do
  514.     REVERT=nil REVERT={} xRx=nil xRx=1
  515.         for i, v in ipairs(ORIG) do
  516.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  517.             REVERT[xRx]={}
  518.             REVERT[xRx].address=xAPEXx[XxX]+o
  519.             REVERT[xRx].flags=4
  520.             REVERT[xRx].value=ORIG[i].value
  521.             xRx=xRx+1
  522.             REVERT[xRx]={}
  523.             REVERT[xRx].address=xAPEXx[XxX]+o+4
  524.             REVERT[xRx].flags=4
  525.             REVERT[xRx].value=ORIG[i+1].value
  526.             gg.setValues(REVERT)
  527.             break
  528.             end
  529.         xRx=xRx+1
  530.         end
  531.     end
  532. end
  533.  
  534. --█████████████████████████████████████████████
  535.  
  536. function sort()
  537. SORT1={} apexsort=0
  538.      for sorti = A[s].start, A[s].finish do
  539.          apexsort=apexsort+1
  540.          SORT1[apexsort] = I[sorti]
  541.      end
  542. SORT2={} table.sort(SORT1)
  543.     for sort2, v in pairs(SORT1) do
  544.         SORT2[sort2]=v
  545.     end
  546. r=SORT2[r]
  547. end
  548.  
  549. --█████████████████████████████████████████████
  550. if v.x64 then
  551. xtrue="h200080D2" -- MOV X0, #0x1
  552. xfalse="h000080D2" -- MOV X0, #0x0
  553. xEND="hC0035FD6" -- RET
  554. else
  555. xtrue="h0100A0E3" -- MOVW R0, #1
  556. xfalse="h0000A0E3" -- MOVW R0, #0
  557. xEND="h1EFF2FE1" -- BX LR
  558. end
  559.  
  560. --█████████████████████████████████████████████
  561. -- APEX[GG]v2
  562. function clear()
  563. gg.getResults(gg.getResultsCount())
  564. gg.clearResults()
  565. end
  566. ------------------------------------------------------------------------------  
  567. function get()
  568. gg.getResults(gg.getResultsCount())
  569. end
  570. ------------------------------------------------------------------------------  
  571. function search()
  572. gg.getResults(gg.getResultsCount())
  573. gg.clearResults()
  574. gg.searchNumber(x,t)
  575. end
  576. ------------------------------------------------------------------------------  
  577. function refine()
  578. gg.refineNumber(x,t)
  579. end
  580. ------------------------------------------------------------------------------  
  581. function refinenot()
  582. gg.refineNumber(x,t,false,gg.SIGN_NOT_EQUAL)
  583. end
  584. ------------------------------------------------------------------------------  
  585. function edit()
  586. gg.getResults(gg.getResultsCount())
  587. gg.editAll(x,t)
  588. end
  589. ------------------------------------------------------------------------------  
  590. function check()
  591. E=nil E=gg.getResultsCount()
  592. end
  593. ------------------------------------------------------------------------------  
  594. function offset()
  595. o=tonumber(o) addoff=nil
  596. addoff=gg.getResults(gg.getResultsCount())
  597.     for i, v in ipairs(addoff) do
  598.         addoff[i].address=addoff[i].address+o
  599.         addoff[i].flags=t
  600.     end
  601. gg.loadResults(addoff)
  602. end
  603.  
  604. --█████████████████████████████████████████████
  605. function cancel()
  606. gg.toast("CANCELLED")
  607. end
  608. ------------------------------------------------------------------------------  
  609. function wait()
  610. gg.toast("Please Wait..")
  611. end
  612. ------------------------------------------------------------------------------  
  613. function error()
  614. gg.toast("× ERROR ×")
  615. gg.sleep(1000)
  616. end
  617. ------------------------------------------------------------------------------  
  618. function exit()
  619. gg.getListItems()
  620. gg.clearList()
  621. gg.getResults(gg.getResultsCount())
  622. gg.clearResults()
  623. gg.toast("[ EXIT ]")  
  624.     if xhaX~=nil then
  625.         print(printx)
  626.         print(xhaX)
  627.         print(printx)  
  628.     end
  629. gg.setVisible(true)
  630. os.exit()
  631. return
  632. end
  633. --█████████████████████████████████████████████
  634. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  635. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  636. gmdx=gg.getRangesList("global-metadata.dat")
  637.     if #(gmdx)~=0 then        
  638.     gmds=gg.getRangesList("global-metadata.dat")[1].start
  639.     gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
  640.     else gmds=nil gmde=nil
  641.     end
  642. ATOTAL=0
  643. for i = 1,100 do
  644.     if A[i].class==nil then break end
  645.     ATOTAL=ATOTAL+1
  646. end
  647.  
  648. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  649. S=0
  650.     while ATAB<=ATOTAL do
  651.     ::AUTOSTART::
  652.         if ATAB>ATOTAL then break goto FINISHED end
  653.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  654.     A[ATAB].error=1
  655.     ANAME=nil ANAME={}
  656.     if A[ATAB].name~=nil then
  657.         for i = 1,#(tostring(A[ATAB].name)) do
  658.             ANAME[i]=string.byte(A[ATAB].name,i)
  659.         end
  660.     else
  661.         ANAME[1]=0
  662.     end
  663.     ACLASS=nil ACLASS={}
  664.     if A[ATAB].class~=nil then
  665.         for i = 1,#(tostring(A[ATAB].class)) do
  666.             ACLASS[i]=string.byte(A[ATAB].class,i)
  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.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  791.         exit()
  792.         return
  793.     end
  794.     if xBAR>=1 then gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  795.     else gg.alert("√ Auto Update Success","OK",nil, xTAGx)
  796.     end
  797. --------------------------------
  798.  
  799. noads()
  800.  
  801. --█████████████████████████████████████████████
  802. if xREV==1 then
  803. xRx=1 ORIG={} xREV={}
  804.     for XxX=1,#(xAPEXx) do  
  805.         for i, v in ipairs(I) do
  806.         ORIG[xRx]={}
  807.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
  808.         ORIG[xRx].flags=4
  809.         xRx=xRx+1
  810.         ORIG[xRx]={}
  811.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
  812.         ORIG[xRx].flags=4
  813.         xRx=xRx+1
  814.         end    
  815.     end
  816. ORIG=gg.getValues(ORIG)
  817. end
  818. --█████████████████████████████████████████████
  819. while true do
  820.     if gg.isVisible() then
  821.         gg.setVisible(false)
  822.         menu()
  823.     else
  824.         if apex==1 then
  825.             gg.setVisible(false)
  826.             menu()
  827.         end
  828.     end
  829. end
  830.  
Add Comment
Please, Sign In to add comment