wilmans2m

PennyFlo

Mar 29th, 2024 (edited)
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 28.78 KB | Gaming | 0 0
  1.  
  2. LUA = 'WILS2M'
  3. GLabel = 'Penny & Flo'
  4. GProcess = 'dk.tactile.mansionstory'
  5. GVersion = '(vAU.02)'
  6. xbit = 64
  7. LibResult = 1
  8. xlib = 'libil2cpp.so'
  9. xREV = 1  I={}
  10. xCNE = 1
  11. xSSE = 1
  12. XbitX = 1
  13. printx = '---------------------------------------------------------------'
  14. expire='free'
  15. print(printx)
  16. xTAGx = 'wils2m'
  17. print(xTAGx)
  18. xMOTOx = 'Have fun'
  19. print(xMOTOx)
  20. xLINKx="https://t.me/HxE_Chat"
  21. xLINK1x="https://www.tiktok.com/@hxesq"
  22. print(xLINKx)
  23. print(xLINK1x)
  24. print(LUA)
  25. print(GLabel..'  '..GVersion)
  26. --███████████████████████
  27. --███████████████████████
  28. --███████████████████████
  29. -- APEX[GG]v2
  30. apex=1
  31. gg.setVisible(false)
  32. v=gg.getTargetInfo()
  33.     if v==nil then
  34.         print("×× ERROR ××\n×× INVALID PROCESS SELECTED / OR NO ROOT ACCESS")
  35.         gg.setVisible(true) os.exit()
  36.         return
  37.     end
  38.  
  39. HxEmenu = ('            ⚡HxE Menu by wils2m⚡\
  40.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  41.                     ⛥🇮‌🇳‌🇫‌🇴‌⛥\
  42.  🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
  43.  🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
  44.    🎰🅐🅡🅜🎰   : '..xbit..'\
  45. \
  46. ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
  47. 🎁 Encryption 🎁 :  '..expire..'\
  48.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
  49.            
  50. gg.alert(HxEmenu)
  51.  
  52. gg.alert("                           Patch Note\
  53.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  54. - NEW V.4\
  55. - Level hack\
  56. - No Ads\
  57. ................................................\
  58. - HxE script menu\
  59. - Auto update implemented\
  60. - Auto win\
  61. - Free Stars\
  62. - No tutorials\
  63. - Battlepass activated\
  64. - Coins hack\
  65.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  66. ")  
  67.  
  68. A={} for i = 1,100 do A[i]={} end
  69.  
  70. ------------------------------------------------------------------------------
  71. gg.setRanges(gg.REGION_ANONYMOUS)
  72. ------------------------------------------------------------------------------
  73. OFF="× " ON="√ "
  74. AWT=OFF FT=OFF CS=OFF NT=OFF SP=OFF NA=OFF
  75. CV="" LV=""
  76.  
  77. function menu()
  78. apex=0
  79. gg.toast(xTAGx)  
  80. gg.setRanges(gg.REGION_ANONYMOUS)
  81. mc=gg.multiChoice({
  82.     AWT.."Auto-Win Tile Game",
  83.     NT.."No Tutorials",
  84.     FT.."Free Tasks",
  85.     SP.."Season Pass",
  86.     NA.."No Ads",
  87.     "Coins",
  88.     "Level",
  89.     "[ EXIT ]"},
  90.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  91.    
  92.     if mc==nil then cancel() return end
  93.     if mc[1] then autowintile() end
  94.     if mc[2] then tutorials() end
  95.     if mc[3] then freetasks() end
  96.     if mc[4] then seasonpass() end
  97.     if mc[5] then noads() end  
  98.     if mc[6] then coins() end
  99.     if mc[7] then level() end
  100.    
  101.    
  102. xhaX={
  103.     AWT.."Auto-Win Tile Game",
  104.     NT.."No Tutorials",
  105.     FT.."Free Tasks",
  106.     SP.."Season Pass (Activate --> Play --> Restart Game)",
  107.     NA.."No Ads",
  108.     "Coins"..CV,
  109.     "Level"..LV,    
  110.     }
  111. xhaX=table.concat(xhaX, "\n")
  112. xhaX=tostring(xhaX)
  113.  
  114.     if mc[8] then exit() return end
  115.  
  116. gg.toast("[√] Complete")
  117. gg.alert(GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)  
  118.  
  119. end
  120. --███████████████████████
  121. -- public class CollectSlotAssignSystem : System // TypeDefIndex:
  122. -- public bool get_IsGoalComplete() { }
  123. A[1].class="CollectSlotAssignSystem"
  124. A[1].method="get_IsGoalComplete"
  125.  
  126. function autowintile()
  127. x=1
  128. if A[1].error==1 then error() return end
  129.     for i = A[1].start, A[1].finish do o=I[i]
  130.         if AWT==OFF then arm() else revert() end
  131.     end
  132.     if AWT==OFF then AWT=ON else AWT=OFF end
  133. end
  134.  
  135. --███████████████████████
  136. -- public class NormalLevel : BlastLevel // TypeDefIndex:
  137. -- public override bool get_HasTutorial() { }
  138. A[2].method="get_HasTutorial"
  139.  
  140. function tutorials()
  141. x=0
  142. if A[2].error==1 then error() return end
  143.     for i = A[2].start, A[2].finish do o=I[i]
  144.         if NT==OFF then arm() else revert() end
  145.     end
  146.     if NT==OFF then NT=ON else NT=OFF end
  147. end
  148.  
  149. --███████████████████████
  150.  
  151. -- public class TaskInfo : ITaskInfo // TypeDefIndex:
  152. -- public int get_StarsRequired() { }
  153. A[3].class="TaskInfo"
  154. A[3].method="get_StarsRequired"
  155.  
  156. function freetasks()
  157. x=0
  158. if A[3].error==1 then error() return end
  159.     for i = A[3].start, A[3].finish do o=I[i]
  160.         if FT==OFF then arm() else revert() end
  161.     end
  162.     if FT==OFF then FT=ON else FT=OFF end
  163. end
  164.  
  165. --███████████████████████
  166.  
  167. --// Namespace: TactileModules.SeasonPass
  168. --public class SeasonPassInstanceCustomData : FeatureInstanceCustomData
  169. -- public bool get_SeasonPassPurchased() { }
  170. A[4].method="get_SeasonPassPurchased"
  171.  
  172. --public int get_AccumulatedPoints()
  173. --0xE11598
  174.  
  175. function seasonpass()
  176. x=1
  177. if A[4].error==1 then error() return end
  178.     for i = A[4].start, A[4].finish do o=I[i]
  179.         if SP==OFF then arm() else revert() end
  180.     end
  181.     if SP==OFF then SP=ON else SP=OFF end
  182. end
  183.  
  184. --███████████████████████
  185.  
  186. -- public abstract class SpecialOfferBase : ISpecialOfferBase // TypeDefIndex:
  187. -- public bool IsActivated() { }
  188. A[5].class="SpecialOfferBase"
  189. A[5].method="IsActivated"
  190. A[6].class="SpecialOfferBase"
  191. A[6].method="Activate"
  192.  
  193. function noads()
  194. if A[5].error==1 or A[6]==1 then error() return end
  195. x=0
  196.     for i = A[5].start, A[6].finish do o=I[i]
  197.         if NA==OFF then arm() else revert() end
  198.     end
  199.     if NA==OFF then NA=ON else NA=OFF end
  200. end
  201. --███████████████████████
  202.  
  203. function coins()
  204. clear() wait()
  205. x="17179869184;31244010177691652;30962698417012803;7209065::29"
  206. t=32 search() x=31244010177691652 refine()
  207. check() if E==0 then error() return end
  208. o=-16 offset() wait() gg.searchPointer(0)
  209. check() if E==0 then error() return end
  210. o=8 t=4 offset()
  211. check() if E==0 then error() return end
  212.  
  213. ::CPROMPT::
  214.     cp=gg.prompt({
  215.     "How Many Coins Do You Have?",
  216.     "How Many Coins Do You Want?"})
  217.     if cp==nil then clear() cancel() return end
  218.     if #(cp[1])==0 then gg.alert("×× Data Incomplete ××","OK",nil,xTAGx) goto CPROMPT end
  219.     if #(cp[2])==0 then gg.alert("×× Data Incomplete ××","OK",nil,xTAGx) goto CPROMPT end
  220.     if type(tonumber(cp[1]))~="number" then gg.alert("×× Data Incorrect ××","OK",nil,xTAGx) goto CPROMPT end
  221.     if type(tonumber(cp[2]))~="number" then gg.alert("×× Data Incorrect ××","OK",nil,xTAGx) goto CPROMPT end
  222.     if tonumber(cp[2])>2000000000 then gg.alert("×× NO MORE THAN 2,000,000,000 ××","OK",nil,xTAGx) goto CPROMPT end
  223.    
  224. x=tonumber(cp[1]) refine()
  225. check() if E==0 then clear() error() return end
  226. x=tonumber(cp[2]) edit() clear()
  227. gg.alert("Coins = "..x.."\nEarn Coins to See Changes","OK",nil,xTAGx)
  228. CV=" = "..x
  229. end
  230.  
  231. --███████████████████████
  232.  
  233. -- public class PersistableState : IPersistableState<PersistableState>, IPersistableState // TypeDefIndex:
  234. -- PersistableState
  235. -- private string <LastLevelSessionId>k__BackingField; // 0x10
  236.  
  237. function level()
  238. LA=gg.alert("##  LEVEL  ##\nUse Only if Above Level 10\n2,000,000,000 is MAX Level Edit\nDo NOT Exceed the Max Level For Game, Check Leaderboard for Current Version Max Level.\n\n## It is a Long Search,  Please Wait..","OK","CANCEL",xTAGx)
  239.     if LA==2 then cancel() return end
  240. ::LEVEL::
  241. lvp=gg.prompt({"Current Level","Level You Want"})
  242.     if lvp==nil then cancel() return end
  243.     if #(lvp[1])==0 then goto LEVEL return end
  244.     if #(lvp[2])==0 then goto LEVEL return end
  245.     if type(tonumber(lvp[1]))~="number" then goto LEVEL return end
  246.     if type(tonumber(lvp[2]))~="number" then goto LEVEL return end
  247.     lvn1=tonumber(lvp[1])-1
  248.     lvn2=tonumber(lvp[2])-1
  249.     if lvn1<10 or lvn1>2000000000 then error() goto LEVEL return end
  250.     if lvn2<10 or lvn2>2000000000 then error() goto LEVEL return end
  251.  
  252. clear() wait() x="PersistableState" o=0x10 t=4 class()
  253. x=lvn1 refine() check() if E==0 then error() return end
  254. x=lvn2 edit() clear() LV=" = "..lvn2+1
  255. end
  256.  
  257. --███████████████████████
  258.  
  259. --███████████████████████
  260. --███████████████████████
  261. --███████████████████████
  262.     if v.processName~=GProcess then
  263.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  264.         gg.setVisible (true) os.exit()
  265.         return
  266.     end
  267. ------------------------------------------------------------------------------
  268.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  269.         print(xBITx)  
  270.         print(printx)  
  271. ------------------------------------------------------------------------------
  272.     if XbitX==1 then
  273.         if bitx~=xbit then
  274.             print("This Script is For "..xbit.."bit Process\nYour Process is "..bitx.."bit")
  275.             gg.setVisible(true) os.exit()
  276.             return
  277.         end
  278.     end
  279.  
  280. --███████████████████████
  281.     if LibResult==1 then
  282.     xAPEXx={} xXx=0
  283.     xLibRes=0
  284.     libx=gg.getRangesList()
  285.         if #(libx)==0 then
  286.         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' ")
  287.         gg.setVisible(true)
  288.         os.exit()
  289.         end
  290.     libx=gg.getRangesList(xlib)
  291.         if #(libx)==0 then  
  292.         print("×× No "..xlib.." Found")
  293.         xLibRes=2
  294.         goto APEX_SPLIT
  295.         end
  296.     xlibn=0
  297.         for i, v in ipairs(libx) do
  298.             if libx[i].state=="Xa" then
  299.             xXx=xXx+1
  300.             xAPEXx[xXx]=libx[i].start
  301.             xLibRes=1
  302.             end
  303.         end
  304.         if xLibRes==0 then
  305.         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' ")
  306.         gg.setVisible(true)
  307.         os.exit()    
  308.         end    
  309.                  
  310.         ::APEX_SPLIT::    
  311.         if xLibRes==2 then
  312.         splitapk=0
  313.         libx=gg.getRangesList()
  314.             for i, v in ipairs(libx) do
  315.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  316.                 splitapk=1
  317.                 end
  318.             end
  319.             if splitapk==1 then
  320.             xsapk={} xsapkx=0
  321.                 for i, v in ipairs(libx) do
  322.                     if libx[i].state=="Xa" then
  323.                     xsapkx=xsapkx+1
  324.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  325.                     end
  326.                 end
  327.                 if xsapkx~=0 then                
  328.                 APEXQ=math.max(table.unpack(xsapk))
  329.                     for i, v in ipairs(libx) do              
  330.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  331.                         xXx=xXx+1            
  332.                        xAPEXx[xXx]=libx[i].start
  333.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  334.                         xLibRes=1                      
  335.                         end
  336.                     end
  337.                 end
  338.             end
  339.          
  340.              if splitapk==0 and xLibRes~=1 then
  341.              print("×× No split_config Lib Found")  
  342.              xc=1 xt={}
  343.              libx=gg.getRangesList()
  344.                  for i, v in ipairs(libx) do
  345.                      if libx[i].state=="Xa" then
  346.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  347.                      xc=xc+1
  348.                      end
  349.                  end
  350.              APEXQ=math.max(table.unpack(xt))
  351.                  for i, v in ipairs(libx) do              
  352.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  353.                      xXx=xXx+1      
  354.                      xAPEXx[xXx]=libx[i].start
  355.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  356.                      xLibRes=1  
  357.                      end
  358.                  end
  359.             end                        
  360.  
  361.             if xLibRes~=1 then
  362.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  363.             gg.setVisible(true)
  364.             os.exit()
  365.              return
  366.             end
  367.         end
  368.     end
  369. --███████████████████████
  370. function arm()
  371. o=tonumber(o)
  372.     for XxX=1,#(xAPEXx) do
  373.         xdump=nil xdump={}
  374.         if type(x)~="table" then
  375.         xdump[1]={} xdump[2]={}
  376.         xdump[1].address=xAPEXx[XxX] + o
  377.         xdump[1].flags=4
  378.             if x==0 then xdump[1].value=xfalse end
  379.             if x==1 then xdump[1].value=xtrue end
  380.             if x~=0 and x~=1 then xdump[1].value=x end
  381.         xdump[2].address=xAPEXx[XxX]+(o+4)
  382.         xdump[2].flags=4
  383.         xdump[2].value=xEND
  384.         else
  385.         cc=0
  386.             for c=1,#(x) do
  387.             xdump[c]={}
  388.             xdump[c].address=xAPEXx[XxX]+o+cc
  389.             xdump[c].flags=4  
  390.             xdump[c].value=tostring(x[c])
  391.             cc=cc+4
  392.             end        
  393.         end
  394.     gg.setValues(xdump)
  395.     end
  396. end
  397. ------------------------------------------------------------------------------  
  398. function revert()
  399.     for XxX=1,#(xAPEXx) do
  400.     REVERT=nil REVERT={} xRx=nil xRx=1
  401.         for i, v in ipairs(ORIG) do
  402.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  403.                 if type(x)~="table" then
  404.                     REVERT[xRx]={}
  405.                     REVERT[xRx].address=xAPEXx[XxX]+o
  406.                     REVERT[xRx].flags=4
  407.                     REVERT[xRx].value=ORIG[i].value
  408.                     xRx=xRx+1
  409.                     REVERT[xRx]={}
  410.                     REVERT[xRx].address=xAPEXx[XxX]+o+4
  411.                     REVERT[xRx].flags=4
  412.                     REVERT[xRx].value=ORIG[i+1].value
  413.                     xRx=xRx+1
  414.                 else              
  415.                 offcnt=0 tnuc=0
  416.                     for dfg=1,#(x) do
  417.                     REVERT[xRx]={}
  418.                     REVERT[xRx].address=xAPEXx[XxX]+o+offcnt
  419.                     REVERT[xRx].flags=4
  420.                     REVERT[xRx].value=ORIG[i+tnuc].value
  421.                     offcnt=offcnt+4 tnuc=tnuc+1 xRx=xRx+1
  422.                     end
  423.                 end
  424.             gg.setValues(REVERT)
  425.             break
  426.             end
  427.             -- xRx+1
  428.         end
  429.     end
  430. end
  431. --███████████████████████
  432. if v.x64 then
  433. xtrue="h200080D2" -- MOV X0, #0x1
  434. xfalse="h000080D2" -- MOV X0, #0x0
  435. xEND="hC0035FD6" -- RET
  436. else
  437. xtrue="h0100A0E3" -- MOVW R0, #1
  438. xfalse="h0000A0E3" -- MOVW R0, #0
  439. xEND="h1EFF2FE1" -- BX LR
  440. end
  441.  
  442. --███████████████████████
  443. b=1 w=2 d=4 f=16 q=32 e=64
  444.  
  445. ------------------------------------------------------------------------------  
  446.  
  447. function class()
  448. gg.clearResults()
  449. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  450. gg.searchNumber(":"..x,1)
  451.     if gg.getResultsCount()==0 then E=0 return end
  452. apexu=nil apexu=gg.getResults(1)
  453. gg.getResults(gg.getResultsCount())
  454. gg.refineNumber(tonumber(apexu[1].value),1)
  455. apexu=nil apexu=gg.getResults(gg.getResultsCount())
  456. gg.clearResults()
  457.     for i, v in ipairs(apexu) do apexu[i].address=apexu[i].address-1 apexu[i].flags=1
  458.     end
  459. apexu=gg.getValues(apexu) apexa={} apexaa=1
  460.     for i, v in pairs(apexu) do
  461.         if apexu[i].value==0 then
  462.         apexa[apexaa]={} apexa[apexaa].address=apexu[i].address apexa[apexaa].flags=1 apexaa=apexaa+1
  463.         end
  464.     end  
  465. if #(apexa)==0 then gg.clearResults() E=0 return end
  466. u=nil
  467.     for i, v in ipairs(apexa) do apexa[i].address=apexa[i].address+#(x)+1 apexa[i].flags=1
  468.     end  
  469. apexa=gg.getValues(apexa) apexs=nil apexs={} apexbb=1
  470.     for i, v in ipairs(apexa) do
  471.         if apexa[i].value==0 then apexs[apexbb]={} apexs[apexbb].address=apexa[i].address apexs[apexbb].flags=1 apexbb=apexbb+1
  472.         end
  473.     end
  474. if #(apexs)==0 then gg.clearResults() E=0 return end
  475. apexa=nil
  476.     for i, v in ipairs(apexs) do apexs[i].address=apexs[i].address-#(x) apexs[i].flags=1
  477.     end
  478. gg.loadResults(apexs)
  479. gg.searchPointer(0)
  480. if gg.getResultsCount()==0 then E=0 return end  
  481. apexu=gg.getResults(gg.getResultsCount())
  482. gg.clearResults()
  483. if gg.getTargetInfo().x64 then apexo1=48 apexo2=56 apexvt=32 else apexo1=24 apexo2=28 apexvt=4 end
  484. ERROR=0
  485. ::TRYAGAIN::
  486. apexy=nil apexy={} apexz=nil apexz={}
  487.     for i, v in ipairs(apexu) do
  488.     apexy[i]={} apexy[i].address=apexu[i].address+apexo1 apexy[i].flags=apexvt
  489.     apexz[i]={} apexz[i].address=apexu[i].address+apexo2 apexz[i].flags=apexvt
  490.     end
  491. apexy=gg.getValues(apexy) apexz=gg.getValues(apexz) apexp=nil apexp={} apexxx=1
  492.     for i, v in ipairs(apexy) do
  493.         if apexy[i].value==apexz[i].value and #(tostring(apexy[i].value))>=8 then
  494.         apexp[apexxx]=apexy[i].value
  495.         apexxx=apexxx+1
  496.         end
  497.     end
  498. apexxx=nil apexy=nil apexz=nil
  499.     if #(apexp)==0 and ERROR==0 then
  500.         if gg.getTargetInfo().x64 then apexo1=32 apexo2=40 else apexo1=16 apexo2=20 end
  501.     ERROR=2
  502.     goto TRYAGAIN
  503.     end    
  504. if #(apexp)==0 and ERROR==2 then E=0 return end
  505. gg.setRanges(gg.REGION_ANONYMOUS)
  506. gg.clearResults() apexxxx=1
  507.     for i, v in ipairs(apexp) do
  508.     gg.toast("Please Wait...")
  509.     gg.searchNumber(tonumber(apexp[i]),apexvt)
  510.         if gg.getResultsCount()~=0 then
  511.         apexxx=nil apexxx=gg.getResults(gg.getResultsCount()) gg.clearResults()
  512.             for apexq=1,#(apexxx) do apexxx[apexq].name="APEX[GG]v2"
  513.             end
  514.         gg.addListItems(apexxx) apexxxx=apexxxx+1
  515.         end
  516.     gg.clearResults()
  517.     end
  518. apexu=nil apexp=nil apexxx=nil apexq=nil
  519. if apexxxx==1 then gg.clearResults() E=0 return end
  520. apexxxx=nil apexload={} apexremove={} apexxx=1
  521. apexu=gg.getListItems()
  522.     for i, v in ipairs(apexu) do
  523.         if apexu[i].name=="APEX[GG]v2" then
  524.         apexload[apexxx]={} apexload[apexxx].address=apexu[i].address+o apexload[apexxx].flags=t
  525.         apexremove[apexxx]={} apexremove[apexxx]=apexu[i] apexxx=apexxx+1
  526.         end
  527.     end
  528. apexload=gg.getValues(apexload) gg.loadResults(apexload) gg.removeListItems(apexremove)
  529. end
  530. --███████████████████████
  531. -- APEX[GG]v2
  532. ------------------------------------------------------------------------------  
  533. function clear()
  534. gg.getResults(gg.getResultsCount())
  535. gg.clearResults()
  536. end
  537. ------------------------------------------------------------------------------  
  538. function get()
  539. gg.getResults(gg.getResultsCount())
  540. end
  541. ------------------------------------------------------------------------------  
  542. function search()
  543. gg.getResults(gg.getResultsCount())
  544. gg.clearResults()
  545. gg.searchNumber(x,t)
  546. end
  547. ------------------------------------------------------------------------------  
  548. function refine()
  549. gg.refineNumber(x,t)
  550. end
  551. ------------------------------------------------------------------------------  
  552. function refinenot()
  553. gg.refineNumber(x,t,false,gg.SIGN_NOT_EQUAL)
  554. end
  555. ------------------------------------------------------------------------------  
  556. function edit()
  557. gg.getResults(gg.getResultsCount())
  558. gg.editAll(x,t)
  559. end
  560. ------------------------------------------------------------------------------  
  561. function check()
  562. E=nil E=gg.getResultsCount()
  563. end
  564. ------------------------------------------------------------------------------  
  565. function offset()
  566. o=tonumber(o) addoff=nil
  567. addoff=gg.getResults(gg.getResultsCount())
  568.     for i, v in ipairs(addoff) do
  569.         addoff[i].address=addoff[i].address+o
  570.         addoff[i].flags=t
  571.     end
  572. gg.loadResults(addoff)
  573. end
  574. ------------------------------------------------------------------------------  
  575. function freeze()
  576. frz=nil
  577. frz=gg.getResults(gg.getResultsCount())
  578.     for i, v in ipairs(frz) do
  579.         frz[i].freeze = true
  580.     end
  581. gg.addListItems(frz)
  582. end
  583. ------------------------------------------------------------------------------  
  584. function cancel()
  585. gg.toast("CANCELLED")
  586. end
  587. ------------------------------------------------------------------------------  
  588. function wait()
  589. gg.toast("Please Wait..")
  590. end
  591. ------------------------------------------------------------------------------  
  592. function error()
  593. gg.toast("× ERROR ×")
  594. gg.sleep(1000)
  595. end
  596. ------------------------------------------------------------------------------  
  597. function exit()
  598. gg.getListItems()
  599. gg.clearList()
  600. gg.getResults(gg.getResultsCount())
  601. gg.clearResults()
  602. gg.toast("[ EXIT ]")  
  603.     if xhaX~=nil then
  604.         print(printx)
  605.         print(xhaX)
  606.         print(printx)  
  607.     end
  608. gg.setVisible(true)
  609. os.exit()
  610. return
  611. end
  612.  
  613. --███████████████████████
  614. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  615. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS)
  616.  
  617. ATOTAL=0
  618. for i = 1,100 do
  619.     if A[i].method==nil then break end
  620.     ATOTAL=ATOTAL+1
  621. end
  622.  
  623. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  624. S=0
  625.     while ATAB<=ATOTAL do
  626.     ::AUTOSTART::
  627.     gg.setVisible(false)
  628.         if ATAB>ATOTAL then break goto FINISHED end
  629.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  630.     A[ATAB].error=1
  631.     ANAME=nil ANAME={}
  632.     if A[ATAB].name~=nil then
  633.         for i = 1,#(tostring(A[ATAB].name)) do
  634.             ANAME[i]=string.byte(A[ATAB].name,i)
  635.         end
  636.     else
  637.         A[ATAB].name=0
  638.     end
  639.     ACLASS=nil ACLASS={}
  640.     if A[ATAB].class~=nil then
  641.         for i = 1,#(tostring(A[ATAB].class))+1 do
  642.             if i == #(tostring(A[ATAB].class))+1 then
  643.                 ACLASS[i]=0
  644.             else
  645.                 ACLASS[i]=string.byte(A[ATAB].class,i)
  646.             end
  647.         end
  648.     else
  649.         A[ATAB].class=0
  650.     end
  651.    
  652.                 ASTART=AEND+1
  653.                 clear() t=1
  654.                 gg.searchNumber(":"..tostring(A[ATAB].method),1)
  655.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  656.                 check()
  657.                     if E==0 then ATAB=ATAB+1
  658.                         if ATAB>ATOTAL then break return end
  659.                     goto AUTOSTART return
  660.                     end
  661.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  662.                 x=xm[1].value refine()
  663.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  664.                 o=oo+1 offset() refine() o=-oo offset()
  665.                 check()
  666.                     if E==0 then ATAB=ATAB+1
  667.                         if ATAB>ATOTAL then break return end
  668.                     goto AUTOSTART return
  669.                     end
  670.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  671.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  672.                     if #(xpoint)==0 then ATAB=ATAB+1
  673.                         if ATAB>ATOTAL then break return end
  674.                     goto AUTOSTART return
  675.                     end
  676.                 clear()
  677.                     for xp=1,#(xpoint) do
  678.                     xpoint[xp].address=xpoint[xp].address+off1
  679.                     xpoint[xp].flags=typ
  680.                     end
  681.                 gg.loadResults(xpoint)
  682.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  683.                     if #(xoff)==0 then ATAB=ATAB+1
  684.                         if ATAB>ATOTAL then break return end
  685.                     goto AUTOSTART return
  686.                     end
  687.                     xfin=1
  688.                     while xfin<=#(xoff) do
  689.                     ::XFIN::
  690.                         if xfin>#(xoff) then ATAB=ATAB+1
  691.                             if ATAB>ATOTAL then break return end
  692.                         goto AUTOSTART return
  693.                         end
  694.                         if gg.getTargetInfo().x64 then
  695.                             xadd=tonumber(xoff[xfin].value)  
  696.                         else
  697.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  698.                             xadd=string.sub(tostring(xadd), -8,-1)
  699.                             xadd=tonumber("0x"..xadd)
  700.                         end    
  701.                     gval1=nil gval1={} gval1[1]={}
  702.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  703.                     gval1[1].address=xoff[xfin].address+gvo
  704.                     gval1[1].flags=typ
  705.                     gval1=gg.getValues(gval1)
  706.                         if gg.getTargetInfo().x64 then
  707.                             gval=tonumber(gval1[1].value)  
  708.                         else
  709.                             gval=string.format("%X",tonumber(gval1[1].value))
  710.                             gval=string.sub(tostring(gval), -8,-1)
  711.                             gval=tonumber("0x"..gval)
  712.                         end    
  713.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  714.                     gval2[1].address=gval+gvo1
  715.                     gval2[1].flags=typ
  716.                     gval2[2].address=gval+gvo2
  717.                     gval2[2].flags=typ
  718.                     gval2=gg.getValues(gval2)
  719.                         if gg.getTargetInfo().x64 then
  720.                             gval21=tonumber(gval2[1].value)  
  721.                             gval22=tonumber(gval2[2].value)
  722.                         else
  723.                             gval21=string.format("%X",tonumber(gval2[1].value))
  724.                             gval21=string.sub(tostring(gval21), -8,-1)
  725.                             gval21=tonumber("0x"..gval21)
  726.                             gval22=string.format("%X",tonumber(gval2[2].value))
  727.                             gval22=string.sub(tostring(gval22), -8,-1)
  728.                             gval22=tonumber("0x"..gval22)
  729.                         end    
  730.                          xrefine=0
  731.                          if A[ATAB].class~=0 then
  732.                             for xyz=1,#(ACLASS) do
  733.                                 gvalc={} gvalc[1]={}
  734.                                 gvalc[1].address=gval21+(xyz-1)
  735.                                 gvalc[1].flags=1                        
  736.                                 gvalc=gg.getValues(gvalc)
  737.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  738.                             end
  739.                         end
  740.                        
  741.                         if A[ATAB].name~=0 then
  742.                             for xyz=1,#(ANAME) do
  743.                                 gvalc={} gvalc[1]={}
  744.                                 gvalc[1].address=gval22+(xyz-1)
  745.                                 gvalc[1].flags=1                        
  746.                                 gvalc=gg.getValues(gvalc)
  747.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  748.                             end
  749.                         end
  750.                          
  751.                          if xrefine==0 then
  752.                         A[ATAB].start=ASTART AEND=AEND+1
  753.                         A[ATAB].finish=AEND
  754.                         A[ATAB].error=0
  755.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  756.                         end
  757.                     xfin=xfin+1            
  758.                     end -- xfin
  759.     ATAB=ATAB+1
  760.     end -- ATAB
  761.    
  762. ---------------------------------------------------
  763.  
  764. ::FINISHED::
  765.  xBAR=0
  766.     for i = 1, ATOTAL do
  767.         if A[i].error~=0 then xBAR=xBAR+1 end
  768.     end
  769.     if xBAR>=ATOTAL  then
  770.         gg.toast("×× FAILURE ××") gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  771.         exit()
  772.         return
  773.     end
  774.     if xBAR>=1 then gg.toast("× ERROR ×") gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  775.     else gg.toast("√ SUCCESS") gg.alert("\n√ Auto Update Success\n\n'Hacking is the Game'","OK",nil, xTAGx)
  776.     end
  777. --███████████████████████
  778. --███████████████████████
  779. if xREV==1 then
  780. xRx=1 ORIG={} xREV={}
  781.     for XxX=1,#(xAPEXx) do  
  782.         for i, v in ipairs(I) do
  783.         thiscunt=0
  784.             for dfg=1,7 do
  785.             ORIG[xRx]={}
  786.             ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+thiscunt
  787.             ORIG[xRx].flags=4
  788.             xRx=xRx+1
  789.             thiscunt=thiscunt+4
  790.             end
  791.         end    
  792.     end
  793. ORIG=gg.getValues(ORIG)
  794. end
  795. --███████████████████████
  796. while true do
  797.     if gg.isVisible() or apex==1 then
  798.         gg.setVisible(false) apex=0
  799.         menu()
  800.     end
  801. end
Add Comment
Please, Sign In to add comment