-
Posts
547 -
Joined
-
Last visited
-
Days Won
19
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by MC874
-
Hi! @Marks01 At this point, You might just Check ALL on SudoHide. Or You might try: - Also use 'HideMyApplist' it's the Latest SudoHide Alternative (USE THIS FIRST, DONT INSTALL MAGISK). SudoHide is already Old and Deprecated. - Use Magisk Hide + Shamiko + SafetyNet. It will make GG runs on Magisk Su. - Does this Error shows after You're changing some values? (Please Confirm This) You might want to try the Termux step I gave Your earlier.
-
Hi! @Marks01 VirtualXPosed does NOT automaticly hide GG, it's a framework that provide core access to Your Android. Also "Memory Attack" is related to Memory Detection, here's several suggestion: - Since Game Guardian is attaching itself into the Game, it could be from PTrace Detection. You might want to Check ALL "Hide Game Guardian from the Game" Option - Setup the PTrace protection into 'Freeze' or 'Restore' - Disable Memory Reading: Use Termux or Terminal Emulator su pidof com.hidea.cat #Example: 4130 mount -o bind /proc/2/maps /proc/4130/maps Similar Thread - LIAPP Alert - Survivor.io Detected
-
This is exactly my initial Thought. I find it weird that You can compare Number via String on Lua. Usually it use Int or Floats, thanks for the clarity.
-
Hi! There's many Implementation to do this: Check Specific: You might want to use this ("If the version does not match the specified one, then the script exits.") Specified_Version = "101.1" if not (Specified_Version == gg.VERSION ) then print("Please use GG Version:" .. Specified_Version) os.exit() else do_function() end Specific Range: It will check if GG Version is in between 95 and 100. if (gg.VERSION < "95.0") and (gg.VERSION > "100.0") then do_function() else print("Only Supports GG Version 97,98,99,100") os.exit() end More Specific: This time We can use a List instead of (AND, OR, NOT). function check() versionList = {95.0, 80.0, 71.0} versionCurrent = tonumber(gg.VERSION) for i, j in pairs(versionList) do if j == versionCurrent then return true end end return false end if check() then print('Compatible!') else print('Not Compatible!') end
-
Hi! Yes, It's possible. ELSE will carries any Values other than 1 (On Above Script). You don't need to Specificly define all Condition, Unless You had to do something When 'That' Conditions met. local switch = 1 if switch == 1 then --Do Something if Condition is 1 function1() else if switch == 2 then --Do Something if Condition is 2 function2() else --Do Something if Condition is other than 1 and 2 (Accept any value A-Z 0-Infinite) function3() end This apply accross any language, In fact; checking every Conditions is NOT Recommended in Optimization Perspective even It is supported by ANY Hardware (Computer is basicly a bunch of 0 and 1 Input). Take some Example from Yandere Dev Simulator on How ELSE IF can Affect Performance: Code Review for Yandere Simulator Some demonstration in other language: # Good Practice switch = 1 if switch == 1: function1() elif switch == 2: function2() else: function3() # Bad Practice if switch == 1: function1() elif switch == 2: function2() elif switch > 2: function3() elif switch 0: print('errr')
-
Hi! There's several mistake in Your Script: - If You choose 'Exit' it will execute Menu 2: Which downloading the Script instead of Exitting. The reason is: Choices are Ordered on gg.choice (Call = 1, Exit = 2) - The First Option (Menu 1) doesn't have the same File Location to the File that have been Downloaded (/Dump and /.pass) - The Exec function is Unnecessary since You didn't use them. I have made 2 Script that has it's Own use: Temp Script local file = '/Dump/niggers.lua' --This is Your File location. menu = gg.choice({"Call File", "Exit"}, nil, "Main") --Ordered Choice (Call = 1, Exit = 2) if menu == 1 then --Check if User chooce 'Call' if not (io.open(gg.EXT_STORAGE .. file, 'r')) then --Check if Script is NOT Downloaded fileData = gg.makeRequest('https://pastebin.com/raw/hNhEbgVd').content --Read Script from URL if not fileData then --Check if Pastebin is Empty print('Site is Down') --Tell User that URL is Invalid else gg.saveList(gg.EXT_STORAGE .. '/' .. file, gg.LOAD_APPEND) --If Pastebin exist, makes a New Lua File fileAppend = io.open(gg.EXT_STORAGE .. file, 'w'):write(fileData) --Save Pastebin Script into the New Lua dofile(gg.EXT_STORAGE .. file) --Run the Downloaded Script end else dofile(gg.EXT_STORAGE .. file) --Run the Downloaded Script end else os.exit() --Exit the Script end - Choices are now Adjusted: 'Exit' will Exit the script and 'Call File' will runs a simple Directory check. - If the file is NOT Downloaded yet, it will Download the script from Pastebin and Save it into a Directory (/storage/emulated/0/Dump/niggers.lua) - If the file Exist, it will run the Script instead via dofile Direct Script menu = gg.choice({"Call Script", "Exit"}, nil, "Main") --Ordered Choice (Call = 1, Exit = 2) if menu == 1 then --Check if User chooce 'Call' fileData = gg.makeRequest('https://pastebin.com/raw/hNhEbgVd').content --Read URL Script if not fileData then --Check if URL is Empty print('Site is Down') --Tell User the URL is Invalid else pcall(load(fileData)) --Run Pastebin Script end else os.exit() --Exit the Script end This Script does NOT Save the Pastebin Script but instead Run them Directly. This is a good Practice if You do NOT want Your Script to be Stolen from Local Directory.
-
Hi! Are You using Game Guardian inbuilt Speedhack? I thought You're using some kind of script. Well, since PG3D is an Online Game, I thinkGG Speedhack no longer works on that game (But IDK). Probably @HorridModzcan help, since it's PG3D related. Also, I don't think it's the game fault, Perhaps compare libs (/data/data/com.pixel.gun3d/lib) on VPhoneGaGa and BlueStacks?
- 10 replies
-
- Speedhack issue
- speedhack
-
(and 1 more)
Tagged with:
-
Hi! Bluestack does support for Arm games but not as default. Here's how you can do it: - Goto Bluestack Multi-Emulator setting. - Add new Emulator and choose Nougat / Pie 64 variant. - Before downloading the new variant, set into 'Custom' - Now select Only Arm Architecture (Arm 32-bit & Arm 64-bit)
- 10 replies
-
- Speedhack issue
- speedhack
-
(and 1 more)
Tagged with:
-
Hi! If it's Server Sided value then You can't change it using Game Guardian. GG works by editing value from Client Side, once you refresh the game, the value will be overrided to Original from Server Side. But here's what You can do: - Once You change the Currency value, try to spend it. If it's not reverted back to Original, then close Your game and see if the Value sticks into Your account. - If the game has an Item that will Increase Currency, You can use that. First, get Items ID (by Scanning the Item Name, Inventory Orders, or etc) and change the Items Value to Your desired. (This is most used on Slots Game) - Next, if it's bound to Google Play Account, You might look into this: Hacking Rare Currencies - The last thing is: to find out Game API. Which do Client-Server transaction. You might try an Activity that will give You Currency. Beforehand, You must capture the Game Data using: PCAPDroid or HTTP Canary (or whatever). Now after getting the Currency Data from Captured Traffic, You can use Postman and do some Data Request to Game API. Here's some demonstration: API with Postman
-
Hi! I think Hero HP are defined on MaxHP and BaseHP. I assume the HeroID are stored somewhere on the game files (OBB for example) not inside the Libil2cpp. Or you can probably try each HpPercent on DnSpy, eventually You will get the correct one. OBB from Unity Game tends to be easy to open (Object-Texture) but no Idea about opening property file, they usually using some custom encryption.
-
Hi! Sorry for the Ambiguity: - You need to try any offset that relates to "get_HpPercent". Inside DnSpy, You can search "HpPercent". There will be many Results, including 0x1908880 offset. - You need to find HeroID first in order to change it's MaxHP. Every Item / Character has it's own Unique Identifier that may lead You into Character Properties. In that Properties, You might find Character Unique Skill and even MaxHP. Honestly, I didn't look-up more into the game, so I can't give You a specific way. You might need this reference about CharID from other Game: Jurassic World: Dino ID
-
Hi! Just shedding some Idea: - The codes keep storing a new Key to a global variable, the performance decrease could be because of the programs having a hard time to resize the table. It's not the global scope at fault, but the I/O Operation that should be blamed. - When dealing with this, I usually use cache for storing and delete them automaticly after recursion ends. You might need to limit I/O operation here. Maybe storing specific number of item into the table and immediately process them in Anon, the result are dumped into cache files and the cycle continue. More or less, I do agree with Mars. The Emulator part can be different from Native because most Emulator are using VBox that are slow by default compared to Qemu/Cemu. The thing is: even it's "Hard" operation, personally, I wouldn't rely on Emulator result but rather to test it directly on Native environment. EDIT1: Testing the script on an 8GB with 6GB Free Ram (Phone), Also freezes but not crashing.
-
Hi! Haven't tried it yet but are You using Game Guardian inbuilt SpeedHack? or using some SpeedHack script? - It's looks like because the Latest Version only offers Arm64 and Arm32 Architecture that usually causing SpeedHack doesn't work. - If You're using a script, then it might be because of the Developers have patch the values, so You need to find a new one. If You're using In-Built GG SpeedHack, You might want to try: x8Speeder. It's well know to work with Casino Games that has Arm Architecture but the result might different.
-
Hi! Are You using Modded Libil2cpp? Or you patch it on Game Guardian? - Isn't there's a function: set_HpPercent? Have you tried to make it return values? - Is it Online Matches? Servers might Override it through Packets. Might freeze the value or somehow blocks the Connection that has specific data related to Health. - Probably test 1 by 1 offset that related to get_HpPercent such as (0x1908880) - There's also MaxHP based on HeroID. So You might need to find the HeroID and modify it's HP. Just sheds some Idea...
-
Hi! From the logcat, I have seen so many Permission Denied and Utils are failing. Looks like GG still havent required Root permission, > Are you sure that MagiskSu are NOT Systemless? Magisk are patching some .img file to obtain Root access, a little bit different than regular SuperSu that located in /system/bin/su or /system/xbin/su. > GG will always Ask for Root each time You haven't granted it for Root. Make sure to Allow any apps to obtain Root. This can be done through Magisk App > Settings (Gear Icon on top-left) > Automatic Response > Grant. The reason is: Sometime if set to prompt, the Magisk Screen are delayed or not showing at all. > Also in the setting, set "SuperUser Access" to "Apps and ADB". > Also check SuperUser tab in Main Screen, and Enable the Switch to ON for GG. In case You've see some "[UID] .... was denied" toast. > Turn Off "Tapjacking Protection" in Magisk Setting, this is the reason Magisk Screen won't show if GG Overlay exist. > If You have Root before Installing Magisk, make sure to Delete that on /system/bin or /system/xbin, so it won't conflict with MagiskSu.
-
Hi! Thank You for replying. Here's some thought: Since it's Read Only, what the difference with .rodata? Isn't it .data is still writeable and .rodata not? The core function that contain codes is definitely on .TEXT segment. Upon checking, it's True that all the previous Pattern are on .TEXT Segment except: (ADD-LDR) are on separate .PLT Segment. Also come to realize that Other Segment (.bss, .data) are mostly for preservation, got it from this: Section and Label. This clears my confusion about Function on Other Segment, since Function are basicly calls to .data or .bss
-
This is certainly True, there's also different start-end for function. Identifying start-end Function is also still confuse me but there's some pattern: > MOV [Random?] - BX PC / BX LR > PUSH - POP > ADD - LDR Some Function can contain one instruction: CDPLT or Memory Segment that also have start-end. Altho those Pattern covers most of the Function, some Memory Segment such as .bss also have SHT Size which defines start-end, I'm not sure if this is a function but the Methodology I'm currently using is: - Using Dissasemblers such as IDA Pro or Ghidra - Using Patterns in Hex form - Find repeated AoB: In the end, I'm still confused to find function in other Memory Segment. The Patterns above is mostly are close to each other (In the same Memory Segment?) but what about in other segment?
-
It depends on what Kernel You're using. Some Kernels aren't allow changes to Selinux workload. But You can try it Yourself. Here's the step: - Alternative to that: Switch SELinux on Custom Android 10 ROMs - Download Termux: or create a Shell Script. - Change the SELinux into Permissive:
-
I have mixed feelings: Using Custom ROMs certainly recommended as it's mostly has wide Community Supports. While this can cause Unnecessary problem such as Bootloop. I think just downgrade GG should enough since the OP says it's working a day earlier before installing New Version:
-
this time when in install up to date version right away, it asked me to install newer version autamatically and it asked another name different than game guardina , so i dont know if its virus or it suppose to be that way, -why it installs another app with unrelated name ? Hi! It's supposed to be that way, when Updating GG, it will delete previous version and install the latest one with another different name. This hides GG from game that has App Checking (Checking Running App based on PKG Name). Mentioned above commenters. anyway after all this new stuff i open up game search for value moment i touch search button it causes my phone to reboot, and when i open back it says closed unexpectedly and never get it to work It would be helpful if You also provides some Logs.txt to see the reasons (Well, if GG ables to create it just in times before rebooting event). Alternatively, You can just install Older version of Game Guardian if it doesn't fit Your Device. Overall, the Latest Version is working fine on my Devices.
-
Easy to use virtual space that works for running GG?
MC874 replied to ronanfoster's question in Help
Hi! As non-rooted user, You have no choice other than installing Virtual Space or Virtual Machine. Or You can just 'JailBreak' Your Phone by Installing SuperSu or Custom ROMs. - Use VPhoneGaga Instead; it has more compability for Apps and Games. Check it here: VPhoneGaga. If You wish to use Root in there, I suggest use the Mod Version such as: VPhoneGaga - VMos. - Install Root to Pixel 2: Root Pixel 2: WallEye & Root Pixel 2 XL: Taimen (Check Your Pixel 2 Type first) - Get Your phone a Custom ROMs that has atleast Android 9-11 to Avoid deprecation.Might check: LineAge OS 18.1 for Pixel 2 or Pixel 2 ROMs - I see that You're not in favor of Virtual Machine. Sadly, Virtual Spaces are giving more problem as it's a Sandboxed Apps and not Sandboxed Android like Virtual Machine does. This means: it doesn't have a full Native Root ecosystem (For Daemon spawn) and also more poor in terms of Compability. the rest are too laggy Well to run Virtual Machine, You need more Memory (RAM) for smoother experience. From Reviews, Google Pixel has atleast 4GB Memory, this is pretty Standard. Virtual Machine are considered Mid-Heavy apps, to eliminate lags is to have a minimal 6/8GB RAM. Or You can Optimize Your phone: - Removing Bloatware Apps and Services [Need Root] - Set Unnecessary Apps to not Run in Background (Check Battery Settings for this) [No Root] or Disable the Apps using Shell command [Need Root] - Force GPU Uses for Apps (Check Developer Settings), I see that Google Pixel 2 has a good Snapdragon 835 [No Root] - Force OpenGL for Games (Check Developer Settings) [No Root] - Set Apps Priority to 1 using Shell Comment [Need Root] - Set SELinux to Permissive [Need Root] Even to Fix lags, You still need Roots. Other than that, there's little for what You can do. -
Yeah you're right, they have both MITM and Custom Proxy Method that's enough to do TLS Decryption. Is saving the Password on a script is more better? I mean, You can still get the Password from Memory using other Memory Editor such as Cheat Engine. Honestly, this left me Insecure xD.
-
I've been testing their API and discover some basic idea: - To get your Pastebin content, you need API_USER_KEY and API_DEV_KEY. The Dev Key are Hardcoded into your Account and User Key are Change-able. - There's no time limit on API_USER_KEY and can be defined into a script variable to access your Pastes. - Pastebin only accept HTTPS (SSL), entire Payloads are encrypted and not view-able. Safe from Packet Capturers. Here's some Python Script while testing Pastebin API for anyone interested (Might convert to Lua?) *Edit: (User Input -> Script with API_USER_KEY -> Compare Password from Pastebin -> If correct -> Get Online Script from Pastebin -> Use the script) A good idea? test.py
-
Hi! Yeah you're right, but I'm sorry for the misconception. Pastebin is infact use PHP and it does not use Headers but Payloads (POST Request) to get Your Private Pastes. Payloads can't be captured since decompressing HTTP Packets are required, so they aren't seen RAW but just scrambled hex data if captured. Reference: Getting Pastes.
-
Which one that's bad? and What's your Solution?. It would be more helpful if you also contribute Your own 'ways'.