wilmans2m

FistOfTheNorthStar

Mar 29th, 2024 (edited)
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 19.56 KB | Gaming | 0 0
  1. LUA = 'WILS2M'
  2. GLabel = 'FotNS'
  3. GProcess = 'com.sega.HokutoRevive.en'
  4. GVersion = '(vAU.02)'
  5. SVersion= '5.6.0'
  6. xbit = 64
  7. LibResult = 1
  8. xlib = 'libil2cpp.so'
  9. xREV = 1  I={}
  10. xCNE = 0
  11. xSSE = 0
  12. XbitX = 2
  13. printx = '---------------------------------------------------------------'
  14. expire='free'
  15. game = gg.getTargetInfo()
  16. P=game.processName
  17. FP=game.name
  18. L=gg.getTargetInfo().label
  19. M=gg.getTargetInfo()["label"]
  20. V=game.versionName
  21. TP=gg.getTargetPackage()
  22. xTAGx="Have fun"
  23. xLINKx="https://t.me/HxE_Chat"
  24. xLINK1x="https://www.tiktok.com/@hxesq"
  25. printx="---------------------------------------------------------------"
  26. print(printx)
  27. print(xTAGx)
  28. print("Telegram = "..xLINKx)
  29. print("TikTok = "..xLINK1x)
  30. print(printx)  
  31. print("Script = "..GLabel.."  "..GVersion)
  32. --███████████████████████
  33. --███████████████████████
  34. --███████████████████████
  35. -- APEX[GG]v2
  36. apex=1
  37. gg.setVisible(false)
  38. v=gg.getTargetInfo()
  39.     if v==nil then
  40.         print("×× ERROR ××\n×× INVALID PROCESS SELECTED / OR NO ROOT ACCESS")
  41.         gg.setVisible(true) os.exit()
  42.         return
  43.     end
  44.    
  45. HxEmenu = ('            ⚡HxE Menu by wils2m⚡\
  46.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  47.                     ⛥🇮‌🇳‌🇫‌🇴‌⛥\
  48.  🎮🅖🅐🅜🅔🎮 : '..GLabel..'\
  49.  🎰🅥🅔🅡🅢🎰 : '..GVersion..'\
  50.    🎰🅐🅡🅜🎰   : '..xbit..'\
  51. \
  52. ⏳Exᴘɪʀᴇᴅ Date⏳ : '..expire..'\
  53. 🎁 Encryption 🎁 :  '..expire..'\
  54.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦')
  55.            
  56. gg.alert(HxEmenu)
  57.  
  58. print("Telegram = "..xLINKx)
  59.  
  60. gg.alert("                           Patch Note\
  61.           ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  62. - HxE script menu\
  63. - Huge thanks to (Apex[GG])\
  64. - Script Auto-Updating\
  65. - NEW:\
  66. - Unlimited Skill\
  67.            ❦ ════ •⊰❂ - ❂⊱• ════ ❦\
  68. ")
  69. ------------------------------------------------------------------------------
  70. A={} for i =1,100 do A[i]={} end
  71. ------------------------------------------------------------------------------
  72. OFF="× " ON="√ "
  73. SU=OFF
  74. o64={}
  75.  
  76. function menu()
  77. apex=0
  78. gg.toast(xTAGx)  
  79. mc=gg.multiChoice({
  80. SU.."Unlimited Skill",
  81.     "[ EXIT ]"},
  82.     {},xTAGx.."\n"..xLINKx.."\n"..GLabel.." "..GVersion.." "..xBITx)
  83.    
  84.     if mc==nil then cancel() return end
  85.     if mc[1] then skill() end
  86.    
  87. xhaX={
  88. SU.."Unlimited Skill",
  89.     }
  90. xhaX=table.concat(xhaX, "\n")
  91. xhaX=tostring(xhaX)
  92.  
  93.     if mc[2] then exit() return end
  94.  
  95. gg.toast("[√] Complete")
  96.  
  97. gg.alert("Hacks "..GLabel.." "..GVersion.." "..xBITx.."\n\n"..xhaX,"OK",nil,xTAGx)
  98.  
  99. end
  100.  
  101. --███████████████████████
  102.  
  103. --// Namespace: Battle
  104. --public class UnitController : MonoBehaviourCustom
  105. --public bool get_IsUltStandby()
  106.     A[1].name="Battle"
  107.     A[1].class="UnitController"
  108.     A[1].method="get_IsUltStandby"
  109.  
  110. function skill()
  111.     if A[1].error==1 then error() return end
  112.     for i = A[1].start, A[1].finish do o=I[i]
  113.     if SU==OFF then x=1 arm() else revert() end
  114.     end
  115.  
  116.     if SU==OFF then SU=ON else SU=OFF end
  117.     end
  118.  
  119. --███████████████████████
  120.  
  121.  
  122. --███████████████████████
  123. --███████████████████████
  124. --███████████████████████
  125.     if v.processName~=GProcess then
  126.         print("This Script is For:\n    "..GLabel.."\n    "..GProcess.."\nYou Selected:\n    "..v.label.."\n    "..v.processName)
  127.         gg.setVisible (true) os.exit()
  128.         return
  129.     end
  130. ------------------------------------------------------------------------------
  131.     if v.x64 then bitx=64 xBITx="[x64]" else bitx=32 xBITx="[x32]" end
  132.         print(xBITx)  
  133.         print(printx)  
  134. ------------------------------------------------------------------------------
  135.  
  136.  
  137. isrdy=gg.alert("Fist of the North Star\n\nThis Script is Auto-Updating. \nInitial Calibration May Take A While.\n\nSTART SCRIPT ANYWHERE. Otherwise, Calibration will Fail and Hacks Not Work\n\n(All hacks can be activated anywhere after)","EXIT","START",xTAGx)  
  138. if isrdy~=2 then gg.setVisible(true) os.exit() return end
  139.  
  140. --███████████████████████
  141.  
  142. --function sort()
  143. --SORT1={} apexsort=0
  144.      --for sorti = A[s].start, A[s].finish do
  145.          --apexsort=apexsort+1
  146.          --SORT1[apexsort] = I[sorti]
  147.      --end
  148. --SORT2={} table.sort(SORT1)
  149.     --for sort2, v in pairs(SORT1) do
  150.         --SORT2[sort2]=v
  151.     --end
  152. --r=SORT2[r]
  153. --end
  154.  
  155. --███████████████████████
  156.     if LibResult==1 then
  157.     xAPEXx={} xXx=0
  158.     xLibRes=0
  159.     libx=gg.getRangesList()
  160.         if #(libx)==0 then
  161.         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' ")
  162.         gg.setVisible(true)
  163.         os.exit()
  164.         end
  165.     libx=gg.getRangesList(xlib)
  166.         if #(libx)==0 then  
  167.         print("×× No "..xlib.." Found")
  168.         xLibRes=2
  169.         goto APEX_SPLIT
  170.         end
  171.     xlibn=0
  172.         for i, v in ipairs(libx) do
  173.             if libx[i].state=="Xa" then
  174.             xXx=xXx+1
  175.             xAPEXx[xXx]=libx[i].start
  176.             xLibRes=1
  177.             end
  178.         end
  179.         if xLibRes==0 then
  180.         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' ")
  181.         gg.setVisible(true)
  182.         os.exit()    
  183.         end    
  184.                  
  185.         ::APEX_SPLIT::    
  186.         if xLibRes==2 then
  187.         splitapk=0
  188.         libx=gg.getRangesList()
  189.             for i, v in ipairs(libx) do
  190.                 if libx[i].state=="Xa" and string.match(libx[i].name,"split_config") then
  191.                 splitapk=1
  192.                 end
  193.             end
  194.             if splitapk==1 then
  195.             xsapk={} xsapkx=0
  196.                 for i, v in ipairs(libx) do
  197.                     if libx[i].state=="Xa" then
  198.                     xsapkx=xsapkx+1
  199.                     xsapk[xsapkx]=libx[i]["end"]-libx[i].start
  200.                     end
  201.                 end
  202.                 if xsapkx~=0 then                
  203.                 APEXQ=math.max(table.unpack(xsapk))
  204.                     for i, v in ipairs(libx) do              
  205.                         if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then              
  206.                         xXx=xXx+1            
  207.                        xAPEXx[xXx]=libx[i].start
  208.                         print("√√ Split Apk Lib Found\n√√ "..libx[i].name)
  209.                         xLibRes=1                      
  210.                         end
  211.                     end
  212.                 end
  213.             end
  214.          
  215.              if splitapk==0 and xLibRes~=1 then
  216.              print("×× No split_config Lib Found")  
  217.              xc=1 xt={}
  218.              libx=gg.getRangesList()
  219.                  for i, v in ipairs(libx) do
  220.                      if libx[i].state=="Xa" then
  221.                      xt[xc]=tonumber(libx[i]["end"]-libx[i].start)
  222.                      xc=xc+1
  223.                      end
  224.                  end
  225.              APEXQ=math.max(table.unpack(xt))
  226.                  for i, v in ipairs(libx) do              
  227.                      if libx[i].state=="Xa" and libx[i]["end"]-libx[i].start==APEXQ then        
  228.                      xXx=xXx+1      
  229.                      xAPEXx[xXx]=libx[i].start
  230.                      print("√√ math.max Xa Lib Found\n√√ "..libx[i].name)
  231.                      xLibRes=1  
  232.                      end
  233.                  end
  234.             end                        
  235.  
  236.             if xLibRes~=1 then
  237.             print("×× Correct Lib Not Found ××\n×× Direct/Split Config/Xa Max ××")
  238.             gg.setVisible(true)
  239.             os.exit()
  240.              return
  241.             end
  242.         end
  243.     end
  244. --███████████████████████
  245. function arm()
  246. o=tonumber(o)
  247.     for XxX=1,#(xAPEXx) do
  248.     xdump=nil xdump={}
  249.     xdump[1]={} xdump[2]={}
  250.     xdump[1].address=xAPEXx[XxX] + o
  251.     xdump[1].flags=4
  252.         if x==0 then xdump[1].value=xfalse end
  253.         if x==1 then xdump[1].value=xtrue end
  254.         if x~=0 and x~=1 then xdump[1].value=x end
  255.     xdump[2].address=xAPEXx[XxX]+(o+4)
  256.     xdump[2].flags=4
  257.     xdump[2].value=xEND
  258.     gg.setValues(xdump)
  259.     end
  260. end
  261. ------------------------------------------------------------------------------  
  262. function revert()
  263.     for XxX=1,#(xAPEXx) do
  264.     REVERT=nil REVERT={} xRx=nil xRx=1
  265.         for i, v in ipairs(ORIG) do
  266.             if tonumber(xAPEXx[XxX]+o)==ORIG[i].address then
  267.             REVERT[xRx]={}
  268.             REVERT[xRx].address=xAPEXx[XxX]+o
  269.             REVERT[xRx].flags=4
  270.             REVERT[xRx].value=ORIG[i].value
  271.             xRx=xRx+1
  272.             REVERT[xRx]={}
  273.             REVERT[xRx].address=xAPEXx[XxX]+o+4
  274.             REVERT[xRx].flags=4
  275.             REVERT[xRx].value=ORIG[i+1].value
  276.             gg.setValues(REVERT)
  277.             break
  278.             end
  279.         xRx=xRx+1
  280.         end
  281.     end
  282. end
  283. --███████████████████████
  284. if v.x64 then
  285. xtrue="h200080D2" -- MOV X0, #0x1
  286. xfalse="h000080D2" -- MOV X0, #0x0
  287. xEND="hC0035FD6" -- RET
  288. else
  289. xtrue="h0100A0E3" -- MOVW R0, #1
  290. xfalse="h0000A0E3" -- MOVW R0, #0
  291. xEND="h1EFF2FE1" -- BX LR
  292. end
  293.  
  294. --███████████████████████
  295. -- APEX[GG]v2
  296.  
  297. function clear()
  298. gg.getResults(gg.getResultsCount())
  299. gg.clearResults()
  300. end
  301. ------------------------------------------------------------------------------  
  302. function search()
  303. gg.getResults(gg.getResultsCount())
  304. gg.clearResults()
  305. gg.searchNumber(x,t)
  306. end
  307. ------------------------------------------------------------------------------  
  308. function refine()
  309. gg.refineNumber(x,t)
  310. end
  311. ------------------------------------------------------------------------------  
  312. function check()
  313. E=nil E=gg.getResultsCount()
  314. end
  315. ------------------------------------------------------------------------------  
  316. function offset()
  317. o=tonumber(o) addoff=nil
  318. addoff=gg.getResults(gg.getResultsCount())
  319.     for i, v in ipairs(addoff) do
  320.         addoff[i].address=addoff[i].address+o
  321.         addoff[i].flags=t
  322.     end
  323. gg.loadResults(addoff)
  324. end
  325. --███████████████████████
  326. function cancel()
  327. gg.toast("CANCELLED")
  328. end
  329. ------------------------------------------------------------------------------  
  330. function wait()
  331. gg.toast("Please Wait..")
  332. end
  333. ------------------------------------------------------------------------------  
  334. function error()
  335. gg.toast("× ERROR ×")
  336. gg.sleep(1000)
  337. end
  338. ------------------------------------------------------------------------------  
  339. function exit()
  340. gg.getListItems()
  341. gg.clearList()
  342. gg.getResults(gg.getResultsCount())
  343. gg.clearResults()
  344. gg.toast("[ EXIT ]")  
  345.     if xhaX~=nil then
  346.         print(printx)
  347.         print(xhaX)
  348.         print(printx)  
  349.     end
  350. gg.setVisible(true)
  351. os.exit()
  352. return
  353. end
  354. --███████████████████████
  355. if v.x64 then off1=-16 typ=32 else off1=-8 typ=4 end
  356. gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
  357. gmdx=gg.getRangesList("global-metadata.dat")
  358.     if #(gmdx)~=0 then        
  359.     gmds=gg.getRangesList("global-metadata.dat")[1].start
  360.     gmde=gg.getRangesList("global-metadata.dat")[1]["end"]
  361.     else gmds=nil gmde=nil
  362.     end
  363. ATOTAL=0
  364. for i = 1,100 do
  365.     if A[i].method==nil then break end
  366.     ATOTAL=ATOTAL+1
  367. end
  368.  
  369. ASTART=1 AEND=0 ATABT=ATOTAL+1 ATAB=1
  370. S=0
  371.     while ATAB<=ATOTAL do
  372.     ::AUTOSTART::
  373.     if gg.isVisible() then gg.setVisible(false) end
  374.         if ATAB>ATOTAL then break goto FINISHED end
  375.     gg.toast("Please Wait.. [ "..ATABT-ATAB.." ]")
  376.     A[ATAB].error=1
  377.     ANAME=nil ANAME={}
  378.     if A[ATAB].name~=nil then
  379.         for i = 1,#(tostring(A[ATAB].name)) do
  380.             ANAME[i]=string.byte(A[ATAB].name,i)
  381.         end
  382.     else
  383.         A[ATAB].name=0
  384.     end
  385.     ACLASS=nil ACLASS={}
  386.     if A[ATAB].class~=nil then
  387.         for i = 1,#(tostring(A[ATAB].class))+1 do
  388.             if i == #(tostring(A[ATAB].class))+1 then
  389.                 ACLASS[i]=0
  390.             else
  391.                 ACLASS[i]=string.byte(A[ATAB].class,i)
  392.             end
  393.         end
  394.     else
  395.         A[ATAB].class=0
  396.     end
  397.    
  398.                 ASTART=AEND+1
  399.                 clear() t=1
  400.                 gg.searchNumber(":"..tostring(A[ATAB].method),1,false,gg.SIGN_EQUAL,gmds, gmde)
  401.                 xm=gg.getResults(2) gg.getResults(gg.getResultsCount())
  402.                 check()
  403.                     if E==0 then ATAB=ATAB+1
  404.                         if ATAB>ATOTAL then break return end
  405.                     goto AUTOSTART return
  406.                     end
  407.                 x=xm[1].value..";"..xm[2].value.."::2" refine()
  408.                 x=xm[1].value refine()
  409.                 o=-1 offset() x=0 refine() oo=#(tostring(A[ATAB].method))
  410.                 o=oo+1 offset() refine() o=-oo offset()
  411.                 check()
  412.                     if E==0 then ATAB=ATAB+1
  413.                         if ATAB>ATOTAL then break return end
  414.                     goto AUTOSTART return
  415.                     end
  416.                 gg.searchPointer(0) xcount=gg.getResultsCount()
  417.                 xpoint=gg.getResults(xcount,nil, nil, nil, nil, nil, nil, nil,gg.POINTER_READ_ONLY)
  418.                     if #(xpoint)==0 then ATAB=ATAB+1
  419.                         if ATAB>ATOTAL then break return end
  420.                     goto AUTOSTART return
  421.                     end
  422.                 clear()
  423.                     for xp=1,#(xpoint) do
  424.                     xpoint[xp].address=xpoint[xp].address+off1
  425.                     xpoint[xp].flags=typ
  426.                     end
  427.                 gg.loadResults(xpoint)
  428.                 xoff=gg.getResults(#(xpoint),nil, nil, nil, nil, nil, nil, nil, gg.POINTER_EXECUTABLE)
  429.                     if #(xoff)==0 then ATAB=ATAB+1
  430.                         if ATAB>ATOTAL then break return end
  431.                     goto AUTOSTART return
  432.                     end
  433.                     xfin=1
  434.                     while xfin<=#(xoff) do
  435.                     ::XFIN::
  436.                         if xfin>#(xoff) then ATAB=ATAB+1
  437.                             if ATAB>ATOTAL then break return end
  438.                         goto AUTOSTART return
  439.                         end
  440.                         if gg.getTargetInfo().x64 then
  441.                             xadd=tonumber(xoff[xfin].value)  
  442.                         else
  443.                             xadd=string.format("%X",tonumber(xoff[xfin].value))
  444.                             xadd=string.sub(tostring(xadd), -8,-1)
  445.                             xadd=tonumber("0x"..xadd)
  446.                         end    
  447.                     gval1=nil gval1={} gval1[1]={}
  448.                         if gg.getTargetInfo().x64 then gvo=24 gvo1=16 gvo2=24 else gvo=12 gvo1=8 gvo2=12 end
  449.                     gval1[1].address=xoff[xfin].address+gvo
  450.                     gval1[1].flags=typ
  451.                     gval1=gg.getValues(gval1)
  452.                         if gg.getTargetInfo().x64 then
  453.                             gval=tonumber(gval1[1].value)  
  454.                         else
  455.                             gval=string.format("%X",tonumber(gval1[1].value))
  456.                             gval=string.sub(tostring(gval), -8,-1)
  457.                             gval=tonumber("0x"..gval)
  458.                         end    
  459.                     gval2=nil gval2={} gval2[1]={} gval2[2]={}
  460.                     gval2[1].address=gval+gvo1
  461.                     gval2[1].flags=typ
  462.                     gval2[2].address=gval+gvo2
  463.                     gval2[2].flags=typ
  464.                     gval2=gg.getValues(gval2)
  465.                         if gg.getTargetInfo().x64 then
  466.                             gval21=tonumber(gval2[1].value)  
  467.                             gval22=tonumber(gval2[2].value)
  468.                         else
  469.                             gval21=string.format("%X",tonumber(gval2[1].value))
  470.                             gval21=string.sub(tostring(gval21), -8,-1)
  471.                             gval21=tonumber("0x"..gval21)
  472.                             gval22=string.format("%X",tonumber(gval2[2].value))
  473.                             gval22=string.sub(tostring(gval22), -8,-1)
  474.                             gval22=tonumber("0x"..gval22)
  475.                         end    
  476.                          xrefine=0
  477.                          if A[ATAB].class~=0 then
  478.                             for xyz=1,#(ACLASS) do
  479.                                 gvalc={} gvalc[1]={}
  480.                                 gvalc[1].address=gval21+(xyz-1)
  481.                                 gvalc[1].flags=1                        
  482.                                 gvalc=gg.getValues(gvalc)
  483.                                 if gvalc[1].value~=ACLASS[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end
  484.                             end
  485.                         end
  486.                        
  487.                         if A[ATAB].name~=0 then
  488.                             for xyz=1,#(ANAME) do
  489.                                 gvalc={} gvalc[1]={}
  490.                                 gvalc[1].address=gval22+(xyz-1)
  491.                                 gvalc[1].flags=1                        
  492.                                 gvalc=gg.getValues(gvalc)
  493.                                     if gvalc[1].value~=ANAME[xyz] then xrefine=1 break xfin=xfin+1 goto XFIN end                                
  494.                             end
  495.                         end
  496.                          
  497.                          if xrefine==0 then
  498.                         A[ATAB].start=ASTART AEND=AEND+1
  499.                         A[ATAB].finish=AEND
  500.                         A[ATAB].error=0
  501.                         clear() I[AEND]=xadd-xAPEXx[xXx]
  502.                         end
  503.                     xfin=xfin+1            
  504.                     end -- xfin
  505.     ATAB=ATAB+1
  506.     end -- ATAB
  507.    
  508. ---------------------------------------------------
  509.  
  510. ::FINISHED::
  511.  xBAR=0
  512.     for i = 1, ATOTAL do
  513.         if A[i].error~=0 then xBAR=xBAR+1 end
  514.     end
  515.     if xBAR>=ATOTAL  then
  516.         gg.toast("×× FAILURE ××") gg.alert("× AUTO UPDATE FAILURE ×","EXIT",nil, xTAGx)  
  517.         exit()
  518.         return
  519.     end
  520.     if xBAR>=1 then gg.toast("× ERROR") gg.alert("× Auto Update Errors\nSome/All Hacks May Not Work","OK",nil, xTAGx)
  521.     else gg.toast("√ SUCCESS") gg.alert("\n√ Auto Update Success\n\n'Hacking is the Game'","OK",nil, xTAGx)
  522.     end
  523.  
  524. --███████████████████████
  525. if xREV==1 then
  526. xRx=1 ORIG={} xREV={}
  527.     for XxX=1,#(xAPEXx) do  
  528.         for i, v in ipairs(I) do
  529.         ORIG[xRx]={}
  530.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])
  531.         ORIG[xRx].flags=4
  532.         xRx=xRx+1
  533.         ORIG[xRx]={}
  534.         ORIG[xRx].address=xAPEXx[XxX]+tonumber(I[i])+4
  535.         ORIG[xRx].flags=4
  536.         xRx=xRx+1
  537.         end    
  538.     end
  539. ORIG=gg.getValues(ORIG)
  540. end
  541. --███████████████████████
  542. while true do
  543.     if gg.isVisible() then
  544.         gg.setVisible(false)
  545.         menu()
  546.     else
  547.         if apex==1 then
  548.             gg.setVisible(false)
  549.             menu()
  550.         end
  551.     end
  552. end
  553.  
Add Comment
Please, Sign In to add comment