Jump to content

kiynox

Contributor
  • Posts

    484
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by kiynox

  1. kiynox

    offset help!!

    [ @Alessa- ] --- He wants the value to get refreshed for Player only, not changing values ---
  2. [ @Goofballfr ] --- Perhaps the termux you're downloading isn't compatible with your phone architecture. Make sure to download the "Universal" version: Termux ---
  3. kiynox

    offset help!!

    [ @qizhizhu ] --- Yes, there's caveat about this: - The game must need to call that "Fields" or "Methods" beforce changes can be applied. - "Fields" value sometimes revert to original values and often only works one time. To fix this is to patch the "Methods" rather than the "Fields" There's nothing you can do about it unless using a Mod Menu. --- Some idea is to make the changes to "Fields" or "Methods", then get some damage to your player (this will cause HP value to be updated), after your player HP is modified, you can revert the changes to "Fields" or "Methods" to it's original state. ---
  4. kiynox

    offset help!!

    [ @qizhizhu ] --- It is because of the methods you mentioned here is used for all entities. Here's what you can do: 1) Find a specific HP methods that relates to player, you can tell by ClassName or NameSpace it inherits to. 2) Since it affects all entity, you might want to find specific health for your Player by using ID's. Each entity should've it's own ID. 3) You can find pointers that uses the Methods / Fields. I suggest to find the Fields HP and not Methods, then, you can try one by one which pointer is the correct one that changes your HP and not the monsters. --- "long" here means it is Integer / DWORD, so your codes is correct. What I don't understand is, HP is usually stored as Float which perhaps your offset is not the correct one? I can't really sure. Please mention your games name so others can help you tests with different Offsets. ---
  5. [ @Goofballfr ] --- Screenshot the "Permission" section and not the settings menu. Try this command on Termux: su setenforce 0 Then go inside Game Guardian -> "Fix It" button -> "Switch to work with SELinux and restart the app" ---
  6. kiynox

    Ui click prompt menu

    [ @Luffy_Op ] --- I have fixed your entire script with proper naming, indentation, syntax. I will list some of the changes: cs = 'Oof' while(true)do if gg.isVisible(true) then XGCK=2 gg.setVisible(false) end gg.clearResults() if XGCK==2 then Main() end end You have 2 of these, doesn't make sense and will likely to interfere. The "cs" variable is useless since it is not being used anywhere --- print('Correct') print('WRONG PASSWORD') print(Error) Using print() on script doesn't shows you the message, it will be showed after you exit the script. I have replace it with gg.alert() and gg.toast() --- gg.toast ('script is loading.') gg.sleep (1000) gg.toast ('script is loading..') gg.sleep (1000) gg.toast ('script is loading...') gg.sleep (1000) gg.toast ('script is loading....') gg.sleep (1000) gg.sleep (1200) gg.toast("80%") gg.sleep (1200) gg.toast("95%") gg.sleep (1200) gg.toast("100%") gg.sleep (1200) gg.toast("Done✔") gg.setVisible(true) Fake loading screen is removed, you can add this back if you think this is "aesthetic" --- menu = if not menu then return Safety check is added, it will bring users back to main menu if user cancels the operation --- function b1() gg.setSpeed(0.0001) gg.toast ("Speed Hack Activated") end These kind of function are now merged for clarity if menu == 1 then gg.setSpeed(0.0001) elseif menu == 2 then gg.setSpeed(1.0) --- Variables name are changed to make it readable: X -> sflags (social flags) XGCK -> flags a1() -> suns() a2() -> coins() a3() -> speeds() a4() -> socials() --- gg.processPause() gg.searchNumber(menu[1], gg.TYPE_DWORD) gg.getResults(gg.getResultsCount()) gg.processResume() You added gg.processResume() and so I add gg.processPause(). The game will pause when values are being searched. --- if menu3 == 1 then b1() end if menu3 == 2 then b2() end Double if's are now replaced with elseif if choices == 1 then suns() elseif choices == 2 then coins() --- "Fixes" from @MonkeySAN is also been added. I hope you can improve your overall script in the future. Luffy_Op PVZ.lua
  7. kiynox

    Ui click prompt menu

    [ @Luffy_Op ] --- We are not wizards, here's what we need to help you: - Explain the exact problem concisely. So far, you're only doing request instead of asking for help. ("i need like that") - Attach your script here, so we can help you fixing it. - Use a better choice of words with proper punctuation. This will help us to better understand your problem. --- Judging of your video, is this what you are looking for? function menus() gg.alert('Click on GG button to continue') gg.setVisible(false) knxs = 1 end function continous() gg.alert('You reach the second code execution') gg.setVisible(false) knxs = 0 end knxs = 0 while true do if gg.isVisible(false) then if knxs == 1 then continous() else menus() end end end ---
  8. kiynox

    Ui click prompt menu

    [ @Luffy_Op ] --- Do you mean this? : function menus() inputs = gg.multiChoice({"Show Fields", "Show Methods", "EXIT"}, nil, "Knx") if inputs == nil then knxs = 0 else if inputs[1] then show_fields() elseif inputs[2] then show_methods() else os.exit() end end end function show_fields() print("menu_1") end function show_methods() print("menu_2") end while true do if gg.isVisible(true) then knxs = 1 gg.setVisible(false) end gg.clearResults() if knxs == 1 then menus() end end ---
  9. [ @Count_Nosferatu ] --- It is a web-browser games, you can't disassemble any binary here except just do some network engineering or some analysis on how it works. --- [ @Teito ] I have take a glance at the game, it looks like the score are saved on the client first before submitted to the server. However, it also have some synchronization to probably validate the score through webvisor (yandex) or whatever there is. I never tried to change anything on it since my browser have multiprocess, couldn't bother much to find the right PID that the game sits on. Lastly, the game requires you to login first before you can save your progress which seems that you need to deal with the game API, I've seen the game talks alot to "cdn.y8.com". It would be hardcore to submit edited score since you probably need to deal with account authorization. Looks hard it is. ---
  10. [ @AMIYA ] --- Google keeps autocorrect the searches and that's what I found on it. --- Right, you should have mention it "LTC" to be searchable. ---
  11. [ @AMIYA ] --- Ah great, another short answer and most importantly, vague. ---
  12. [ @Bloxxy ] --- Quic is build on top of UDP but it doesn't make it a Lossless protocol. Even though the UDP itself is unreliable and lossless but Quic is different, it is reliable, accurate and sure is fast. It is behaving like TCP but on top of UDP. There's a reason Google implemented this. --- Game Guardian is not a packet oriented application, it's only focusing on what memory debugging should have. I believe gg.makeRequest() is only added just for the shake of Lua extension support. ---
  13. [ @brubbribo ] --- For alternative, you can also use: GGIl2Cpp which you can see the documentation: here ---
  14. [ @Bloxxy ] --- Welp, I can only suggest you some workaround using HTTP. I don't even know How Game Guardian lua's handle HTTP/2 or HTTP/3. You might need to use HTTP/2 Multiplexing or take care of HTTP/3 which use UDP (Quic) which make it more reasonably faster if you care about connection speed. Connection speed involve many factor and not just at protocol perspective (using CDN for example). --- Second suggestion is to get your-self multipart body, this will avoids your sended data to be encoded first (\0x88\xblah), less hassle into connection speed. --- Third, switching protocol to Websocket from HTTP/1. I don't know how Game Guardian handles this but you can switch HTTP/1 to Websocket using this Headers: --- That's pretty much wraps any ideas I would have. It is very limited, you might find yourself using another way instead of doing it inside Game Guardian.
  15. [ @Bloxxy ] --- Yes, I mean it as partially. --- You can re-use existing socket by using HTTP Pipelining: See GET / HTTP/1.1\r\n Host: blah.com\r\n \r\n GET / HTTP/1.1\r\n Host: blah.com\r\n \r\n --- 200 bytes for headers, etc; is not a lot and still reasonable. ---
  16. [ @Bloxxy ] --- Lua that's bundled inside Game Guardian cannot use external module and even some Lua internal modules. But, Game Guardian do support HTTP bequest, so your server needs to also support HTTP/HTTPS protocol, otherwise there's nothing you can do about it. Yes, even plain TCP aren't do-able. --- See request documentation: gg.makeRequest
  17. kiynox

    Arm Patching

    [ @huanggua ] --- That's right. If it's doesn't fit, just replace the next instruction. ---
  18. [ @Wizzy2008 ] --- Glad that you figured it out. May explain how you can do it? ---
  19. [ @Teito ] --- Bytes is Signed Char, it ranges from -128 to 127, that's maybe the reason it is randomized to -126 --- Do note that DWORD is limited to: 4.294.967.295, so you can't exceed this limit. I've seen that your input still falls into the safe-range but aren't able to do some changes. It can be caused by the score is being capped and you're already reach the highest score. Find something like "MaxScore()" function to change the limits. --- Mention the game's name, so we can also test it ourself. ---
  20. kiynox

    Arm Patching

    [ @huanggua ] --- Make sure that you're know the difference between Arm and Thumb. The difference between both is that: Arm uses 4 hexes / 8 bytes, meaningwhile, Thumb usually uses only 2 hexes / 4 bytes. For example: --- It is important because you can only change one instruction with another one WITH the same hex length. You can replace the next instruction to fit your long-patches, but make sure that: if it's a function, you need to ends it with: Arm32: BX LR Arm64: RET ---
  21. [ @Abdulb, @AhGun] Explain your problem here with some screenshot or logs ("Fix It" button -> Generate Logs), so others can help ---
  22. [ @Wizzy2008 ] --- Depends, if the game allows multiple Host or has permission equivalent to Host, then you can. In most online games, you can gain Host level permissions through patching the game, you just need to find the function that will unlock the permissions (ex: is_murder() ) but you can't be the host (only permissions). This already happen on Among Us back then, where you can kick people or even be the impostor itself. --- [ @XEKEX ] Can confirm if the game is peer to peer, but you can also DDOS the in-game server (UDP) and have all players stuck. Ever tried it on PUBGM back in the day. ---
  23. kiynox

    Arm Patching

    [ @KabutHitam ] --- From what I understand, you're trying to set a large possible value. You can use this template: --- [ Float 0-65535 ] MOVW R0, #(1-65535) VMOV SO, R0 VCVT.F32.S32 S0, S0 VMOV R0, S0 BX LR --- [ Float 65535 - 131072 ]: R0 = R0 + R1 MOVW R0, #(0-65535) MOVW R1, #(0-65535) ADD R0, R0, R1 VMOV SO, R0 VCVT.F32.S32 SO, S0 VMOV RO, SO BX LR --- [ Float 131072 - 429503284]: R0 = (R0 x R1) + R1 MOVW R0, #(0-65535) MOVW R1, #(0-65535) --multiply here MUL R0, R0, R1 MOVW R1, #(0-65535) --addition here ADD R0, R0, R1 VMOV S0, R0 VCVT.F32.S32 S0, S0 VMOV R0, S0 BX LR --- *Above mnemonic are replicable for getting a really high value. *Do note that most function has it's own Max Limit, so you need to change them first (example: MaxHP & MinHP) *( credit: @BadCase )
  24. [ @Ayaanly ] --- Both format are bundle extension. APKS: bundles bunch of split apk, meanwhile, XAPKS: bundles APK with it's OBB. Well, atleast that's what I understand. ---
  25. [ @DoDevil ] --- On LDPlayer 9; once you install Magisk, you can still disable the root access from the settings but the "su" file still exist in "/system/bin". It is probably because of Magisk being installed into system partition which the "su" file, in this case, is in fact MagiskSu. --- Also based on my experiment, "/data/data/com.playhardlabs.heroes/files" is likely related to LIAPP Anti-Cheat. I'm still figuring things out. ---
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.