-
Posts
547 -
Joined
-
Last visited
-
Days Won
19
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by MC874
-
Hi @JamesRalleca15, newer Android version has some limitations within the kernel. You need to use Virtual Machine in order it runs properly, I suggest using VPhoneGaGa: - VPhoneGaGa - VMOS Pro - x8Sandbox - F1VM
-
Hi @Dezo If the Virtual Machine freezes, it means that you don't have enough memory or the app itself is bugged out. You might want to try another VM, I suggest to use VPhoneGaGa: - VPhoneGaGa - VMOS Pro
- 1,987 replies
-
- GameGuardian APK
- Official Download
-
(and 1 more)
Tagged with:
-
Hi @san8067san, here's what you can do: - Use Fuzzy search, and scan for changed values. You need to always have some card/anything that can modify the damage each time you find the value. - If it's Unity game, you can dump the game and look for appropiate damage fields - You might want to find player class that might have damage value stored somewhere. Look for 'PlayerController', 'CharacterControl', etc as strings, and then find any pointer to that. Once you've found the player class, the next step is to find pointer inside that class. Some of them might have damage value.
- 1 reply
-
1
-
Hi @DSz, On Android 12-14, Android introduces 'phantom processes' that will kill any intensive app and also limiting app, so it can't access another app namespace. Read more about it here: Android Phantom. I'm refering "Game Breaking" feature to changes that significantly affect kernel, how app works, system, and etc.
-
Hi @Dontae798, Game Guardian works with any application. You're probably mistaken for "Car Parking Multiplayer" script. And yes, you can create your own Game Guardian lua script for other games, see our: documentation
-
Hi @St3gm4, Actually, Cheat Engine Android is already exist for a long time now. The only downside is, it is not as advanced as Game Guardian. We can just hope that Android doesn't introduce a game breaking feature, just like Microsoft did with their Windows 11.
-
Hi @angel88888, There's several ways to do this: - You can use pattern search from: games. - You can also debug the game library using: Ghidra or IDA Pro -> use it's string finder (Shift+F12) and look for GWorld/Gname -> Use (CTRL+X) to find any reference point -> GWorld should be in one of the references. - If the strings is somehow encrypted, try to read: Finding Offset in UE4 or try to look around/ask the people at the forum
-
Hi @broyashka, I don't have telegram so I can't try it myself. All data from /shared_prefs will loaded into memory at some point, so you can just attach the Game Guardian into Telegram processes, then find a pattern on how the string are stored in memory (pointer/debug symbol/group search). There's a thread similar to this, you might take your time to read it: HIWD Lock Script
-
Hi @astrooo, it depends, some virtual spaces does provide root settings and some of them only intended for cloning apps. You need to mess around with the virtual space app settings and look for root permission. But I suggest you to abandon using virtual space and use virtual machine instead: - VphoneGaGa - X8sandbox - VMOS Pro
-
Hi @gelo_19, Game Guardian requires root to access memory (RAM). I assume you're using Virtual Space, then I recommend you to change it with Virtual Machine: - VPhoneGaGa - x8Sandbox - VMos Pro - F1VM If you still find difficulties with daemon then run this command using: termux su setenforce 0 Then go inside Game Guardian -> "Fix it" button -> Switch to work with SELinux. I hope that helps.
-
Hi @Alex150 What are you trying to do here? This make no sense as you're doing nothing with it. You doesn't even store it as variable or using it at all. /*****************\ You have alot of unnecessary escape characters, just change "" with '' to fix it. Escaping character with \ makes it worse. /*****************\ *Note: If your script doesn't work after fixing the above, there's might something wrong with the payload or there's another problem in other part of the script.
-
Hi @OREW, Have you tried: GGIL2CPP. Field is different from methods. You need to find the class objects (pointer) then add it with the field offset. Or you can just find the class name string -> pointer (Usually Cd) -> add field offset to each pointer and find if the value is correct with the current in-game values. There's might be multiple pointer because some old field instance/class object have not yet flushed/removed from memory. "Walkspeed" field is public, so it should be modifiable.
-
Hi @Player686776, Sure...
-
Hi @Player686776, it is unexpected that PvZ has some kind of protection. To my knowledge you can just find the value, change it and it would works normally. So you can try several things: - Find the display value that works -> goto the address of that display value -> find the neighboring address that has purple colored address (also change if there's multiple of them) -> change the value to 0 -> the real value might close to that display value - Or you can try to find the xored sun value: number_of_sunX4 (7X4) and while editing you should retain the X4 (99999X4), something like that. You can also increment the X by 2 if there's no results found: (7X2, etc)
-
Types of protection that GameGuardian cannot bypass [game list]
MC874 replied to jbbj1's topic in General Discussion
Hi @KINGVINAYYY If that's the case. You can just use Zygisk Modmenu as replacement to Game Guardian: Zygisk-ImGui-Menu -
Hi @JoseCmanXD, It is most likely tobe auto-generated and it is not a class name. The field "f__mg$cache0" is derived from "LuaCSFunction" class, which perhaps a class that loads in-game LUA script. "CharacterBaseAttributeWrap" is also class name.
-
Types of protection that GameGuardian cannot bypass [game list]
MC874 replied to jbbj1's topic in General Discussion
Hi @KINGVINAYYY, Is it detecting Magisk Zygisk too? -
Types of protection that GameGuardian cannot bypass [game list]
MC874 replied to jbbj1's topic in General Discussion
Hi @KINGVINAYYY, This is not the case with LiApp, so Cheat Engine can still be used. You can either do: - Bypass Emulator: it is quite easy to do, you just have to spoof libBluetooth, libhoudini, build.prop, cpuinfo, and /proc related. You can pull this off by using "mount --bind" on /proc directory between emulator and real devices. - Or you can instead use Magisk Zygisk module or frida to disable AppSealling detection. -
Types of protection that GameGuardian cannot bypass [game list]
MC874 replied to jbbj1's topic in General Discussion
It is. It acts like external cheat program that runs outside Android, so the game couldn't be able to detect it. I mean you need some Android emulator to pull this off. Cheat Engine that runs on Windows and the game runs on Android emulator, it is separated. -
Hi @MooExplosion, you're handling it incorrectly, the 'for'-loop is only enumerating 'specify' table and not 'specifytwo' gg.searchNumber("1620;728;1620;728::13", gg.TYPE_DWORD) results = gg.getResults(gg.getResultsCount()) if results ~= nil then specify = {results[1], results[3], results[5], results[7], results[9], results[11]} specifytwo = {results[2], results[4], results[6], results[8], results[10]} --Notice the bracket: (specify) for k, v in ipairs(specify) do specify[k].value = '2400' specifytwo[k].value = '1080' end for k, v in ipairs(specifytwo) do specifytwo[k].value = '1080' end gg.setValues(specify) gg.setValues(specifytwo) end /*********\ Since this is group searches, You can just refine the value first to specific value then change it all Example 1: --'d' suffix is for DWORD gg.searchNumber('1620d;728d::5') results = gg.getResults(gg.getResultsCount()) --Refining '1620' from result then change it to '2400' gg.refineNumber('1620', gg.TYPE_DWORD) gg.editAll('2400', gg.TYPE_DWORD) --Reload results -> refine '728' -> Change it to '1080' gg.loadResults(results) gg.refineNumber('728', gg.TYPE_DWORD) gg.editAll('1080', gg.TYPE_DWORD) gg.clearResults() Example 2: --'d' suffix is for DWORD gg.searchNumber('1620d;728d::5') results = gg.getResults(gg.getResultsCount()) --Changing specific value from results for k, v in ipairs(results) do if tonumber(v.value) == 1620 then results[k].value = 2400 elseif tonumber(v.value) == 728 then results[k].value = 1080 end end gg.setValues(results) /*********\
-
Hi @machok, what do you mean by 'adding 1 unit'? Is it adding 1 to every value or address?
-
Hi @MooExplosion, gg.getResults() returns a table, and yes, you can specify which value to grab just by defining what index table that you want to get. So, you can either be specific or eliminate value to narrow it down (if changed value exist) --Get the 2nd and 9th position from the results results = gg.getResults() if results ~= nil then --Notice results[2] & results[9] specify = {results[2], results[9]} for k, v in ipairs(specify) do specify[k].value = '2400' end gg.setValues(specify) end --Eliminate changed values / refining results = gg.getResults() gg.refineNumber('2400', gg.TYPE_FLOAT)
-
Hi @St3gm4, Yes, it safe as it only sends signal for Android to allow lower sdk apps. /***********\ The development has been stagnated for almost 3 years. It looks like that it reaches EOL (end of life). /***********\
-
Hi @Nackszt, looks like Game Guardian can't reinstall itself, this is because changing it's name for random to hide from app detection. Basically, you need to install Game Guardian manually that located in the mentioned directory: This is usally happens because Game Guardian couldn't get Root permission upon installation. So I suggest you to migrate using Virtual Machine instead of Parallel Space: - VPhoneGaGa - x8Sandbox - F1VM
- 1 reply
-
1