Jump to content
  • GameGuardian APK 101.1

       178,780,165  
    Overview: Play games your way!
    “GameGuardian” is a game cheat / hack / alteration tool. With it, you can modify money, HP, SP, and much more. You can enjoy the fun part of a game without suffering from its unseasonable design.
    Requires Android: 2.3.3+
    GameGuardian Features Summary
    Runs on ARM, x64 and x86 devices, including x86 emulators (LDPlayer, Droid4X, MOMO, KOPlayer, Andy, Memu, Leapdroid, AMIDuOS, Windroye, RemixOS, PhoenixOS, AVD, Genymotion, Nox, BlueStacks etc.) Supports Android 2.3.3+ (Gingerbread) through Lollipop (5+), Marshmallow (6+), Nougat (7+), Oreo (8+), Pie (9+), 10+. Support work without root via different virtual spaces. Support different emulators like PPSSPP, ePSXe, GameBoy etc. Game deceleration and acceleration (speedhack) for ARM and x86 devices, including x86 emulators.  Also supports both 32-bit and 64-bit applications on 64-bit devices using speedhack. Search feature: encrypted values. Search of unknown values when specifying the difference between values. Search addresses by mask. Explicit and "fuzzy" numeric searches. Text (String, Hex, AoB) search. Supports: Double, Float, Qword, Dword, XOR, Word, Byte, or Auto data-type searches. Lua scripting support. Modify all search results at once. Filtering of search results (address greater than and less than, value greater than and less than). Search in the background feature. 'The fill' feature. Time jump feature. Dump memory. Copy memory. Customizable UI. App locale for over 50 languages. And, much, much more. Notes:
    ** ROOT or VIRTUAL ENVIRONMENT ONLY **
    This tool only works on rooted devices or in virtual environment (without root in limited mode)!
    GG can work in limited mode without root, through a virtual environment. For example, through Parallel Space, VirtualXposed, Parallel Space Lite, GO multiple, 2Face and many others.
    Read the help for more details. You can find more information about rooting your device at XDA Developers. Want to help us improve, or add a translation? Then please visit thread "If you want to add a new translation or improve an existing". If you are having issues with the app, please visit thread "Gathering information about GG errors". Want to donate and help keep the project going? That's awesome! You can donate any amount (anything helps) here: Donate Need help with how to use this application? Please visit "Video tutorials" and forum "Guides". Credit:
    @d2dyno - Owner, lead designer, project management. @Enyby - Lead coder, project management. @Trasd - Technical consultant, project management. @Aqua - Creator (retired).  
     
  • Recently updated

134 files

  1. BadCase's PasteBin API

    Set these values at top of pasteBin table
        api_dev_key = "YOUR_API_DEV_KEY",
        api_user_name = "YOUR_USERNAME",
        api_user_password = "YOUR_PASSWORD",
     
    Usage:
    --  api_paste_format https://pastebin.com/doc_api#5
    --  api_paste_expire_date https://pastebin.com/doc_api#6
    --  api_paste_private https://pastebin.com/doc_api#7
    -- Upload with username pasteBin.publishPaste(api_paste_code, api_paste_name, postAsUser, api_paste_private,api_paste_expire_date,api_paste_format)
    -- print(pasteBin.publishPaste(api_paste_code, api_paste_name, true,"2","N","lua"))
    -- Upload without username pasteBin.publishPaste(api_paste_code, api_paste_name, postAsUser, api_paste_private,api_paste_expire_date,api_paste_format)
    --print(pasteBin.publishPaste(api_paste_code, api_paste_name, false,"0", "N","lua"))
    -- List users pastes
    --print(pasteBin.listPastes())
    -- Delete a paste
    -- print(pasteBin.deletePaste("Jef8vQcX")) -- replace "Jef8vQcX" with valid paste key from users paste
    -- Get users info
    -- print(pasteBin.getUser())
    -- Get users private or public paste
    -- print(pasteBin.getUserPasteRaw("zbEbNh2n")) -- replace "zbEbNh2n" with valid paste key from users paste
    -- Get public or unlisted paste
    -- print(pasteBin.getPasteRaw("zbEbNh2n")) -- replace "zbEbNh2n" with valid paste key
     

    90 downloads

       (0 reviews)

    0 comments

    Updated

  2. EARG.lua

    • Block Auto Decrypt.
    • Block Log, Load, Loadfile, Dofile, Hook and Sstool.
    • Block VPN and Proxy.
    • Supports All Kinds Of Strings.
    • Block Packet Capture Applications.
    If you face any kind of error in my encryption then please report it to me on Telegram. My Telegram UserName: @ARGAMING_SCRIPTS

    977 downloads

       (0 reviews)

    0 comments

    Updated

  3. GGIl2cpp

    This script is only needed to make it easier to work with Il2cpp. More information can be found in the github repository.
    You can also report script errors either by writing to me in private messages or by creating an issue on github. You can also suggest an idea for the development of the module by sending it to me in private messages.

    5,212 downloads

       (3 reviews)

    6 comments

    Updated

  4. Auto speedhack finder

    Description: This script is made for those that either get error when using in build speed or those that have issues finding their own speed value and don't want to go through the trouble of spending 10+ min refining values.
    Requirements: Unity game

    8,052 downloads

       (0 reviews)

    0 comments

    Updated

  5. Pure Lua library

    MakeRequest : https://raw.githubusercontent.com/chihaamin/XEKEX/main/xLIB.lua
    • Comment if you find a bug / error or if you have Idea for implementation.
    • All the file is documented and commented for beginners.
    ♥ Add "XEKEX was here" in your script if it was helful 🙂 
    -------------------------------------------------------------------------------


    Text2Dword : 

     
    -- Text2Dword function Convert a text to dword value local DWORD = XEK.Text2Dword("berry") -- Print the result print(DWORD) --> Output: '6619234;7471218;121::9'

    Dword2Text :

     
    -- Dword2Text function Convert a Dword value to text local sampleValue = "6619234;7471218;121" local text = XEK.Dword2Text(sampleValue) -- Print the result print(text) --> Output: 'berry'
    hex : 

     
    The 'hex' function takes two arguments: a value to convert to hexadecimal and a boolean 'hx' indicating whether to add '0x' or 'h' prefix to the output. --[[ If hx is true, the function returns the hexadecimal value with '0x' prefix. If hx is false, the function returns the hexadecimal value with 'h' suffix. If hx is not provided or not a boolean, the function returns the hexadecimal value without any prefix or suffix. The function uses string formatting to convert the value to hexadecimal. ]] --> Examples: --Convert decimal value to hexadecimal with '0x' prefix print(XEK.hex(255, true)) --> Output: 0xFF --Convert decimal value to hexadecimal with 'h' suffix print(XEK.hex(255, false)) --> Output: FFh --Convert decimal value to hexadecimal without any prefix or suffix print(XEK.hex(255)) --> Output: FF

    dump : 

     
    --[[ dump function takes a table as input and returns a string representation of the table. If the input is not a table, it returns a string representation of the input. Parameters: tab (table): the table to be dumped Returns: (string): the string representation of the table ]] --> Example usage: local myTable = {name = "John", age = 30, hobbies = {"reading", "running"}} print(XEK.Dump(myTable)) -- Output: { ["name"] = "John", ["age"] = 30, ["hobbies"] = { [1] = "reading", [2] = "running", } }
    split : 

     
    --split function splits a string into a table of substrings using a specified delimiter --The function takes two parameters: s, which is the string to be split, and delimiter, which is the character or string used to separate the substrings --> Example usage: local myString = "apple,banana,cherry,orange" local myTable = XEK.split(myString, ",") -- The above code will split the string "apple,banana,cherry,orange" into substrings using the comma as the delimiter and store the result in a table called myTable --The resulting table will contain the following values: myTable[1] = "apple" myTable[2] = "banana" myTable[3] = "cherry" myTable[4] = "orange"

    ARMIT : 

     
    --# Example 1: Converting an Integer to Assembly Instructions local instructions = XEK.ARMIT(123456, "int", true) --The above function call will generate assembly instructions to move the value 123456 into a register in AArch64. --> Output: instructions = { [1] = '~A8 MOVK W0, #0xE240, LSL #16', [2] = '~A8 MOVK W0, #0x0001, LSL #32', [3] = '~A8 RET', } --# Example 2: Converting a Boolean to Assembly Instructions local instructions = XEK.ARMIT(true, "bool") --The above function call will generate assembly instructions to move the value 1 (true) into a register in AArch32. --> Output: instructions = { [1] = '~A MOV R0, #0x1', [2] = '~A BX LR', } --# Example 3: Converting a Float to Assembly Instructions local instructions = XEK.ARMIT(3.14159, "f", true) --The above function call will generate assembly instructions to move the value 3.14159 into a floating point register in AArch64. --> Output: instructions = { [1] = '~A8 MOVK W0, #0x0FD0, LSL #16', [2] = '~A8 MOVK W0, #0x4049, LSL #32', [3] = '~A8 FMOV S0, W0', [4] = '~A8 RET', } --# Example 4: Converting a Double to Assembly Instructions local instructions = XEK.ARMIT(123456789.987654321, "d") --The above function call will generate assembly instructions to move the value 123456789.987654321 into a double precision floating point register in AArch32. --> Output: instructions = { [1] = '~A MOVW R0, #0x5BA8', [2] = '~A MOVT R0, #0x57F3', [3] = '~A MOVW R1, #0x6F34', [4] = '~A MOVT R1, #0x419D', [5] = '~A VMOV D0, R1, R0', [6] = '~A BX LR', }

    readBytes   |  readWord  |  readDword  |  readFloat  |  readDouble :

     
    local words = XEK.readWord(addr, size, ';') <-| return a string local dwords = XEK.readDword(addr, size, '-') <-| return a string local floats = XEK.readFloat(addr, size, '|') <-| return a string local doubles = XEK.readDouble(addr, size, ':') <-| return a string -- OR local words = XEK.readWord(addr, size) <-| return a table local dwords = XEK.readDword(addr, size) <-| return a table local floats = XEK.readFloat(addr, size) <-| return a table local doubles = XEK.readDouble(addr, size) <-| return a table --<< these function purpose is to read values from memory for comparison >>--

    getResults : 

     
    --# Example usage of getResults function and its returned table local t = XEK.getResults(10) or t = XEK.getResults() <-|-- Get 10 results or all result | you can specified parameter same as GG print(t.data[1].address) <-|-- Print the address of the first result --# Example usage of focus function t:focus() <-|-- Save original values of results table print(t.original[1]) <-|-- Print the original value of the first result --# Example usage of update function t:update(999) <-|-- Set all values in result table to 999 --# Example usage of reset function t:reset() <-|-- Reset all values in result table to their original values --# Example usage of offset function t:offset(0x8) <-|-- Add 8 to the address of each result --# Example usage of append function local t2 = XEK.getResults(5) <-|-- Get 5 more results t:append(t2) <-|-- Append t2 results to t print(#t.data) <-|-- Print the total number of results in t --# Example usage of get function t:get() <-|-- Refresh the results table --# Example usage of clear function t:clear() <-|-- Destroy the results table and clear garbage

    MakeMenu : 

     
    -- Create a new menu object local myMenu = XEK.MakeMenu().Menu:new({"Option 1", "Option 2", "Option 3"}) | this will add Menues -- Add a new action to the menu myMenu.actions:new(1, function() -- argument 1 is the index of menu ( option 1 function ) | index must be a number print("Option 1 was selected!") end) myMenu.actions:new(2, function() print("Option 2 was selected!") end) -- etc -- . -- . -- . -- Display the menu and wait for the user to make a selection myMenu:display() --whenever the user select a menu item it will trigger the functions inside myMenu.actions ( created with myMenu.actions:new(index, function) )
     

    410 downloads

       (0 reviews)

    0 comments

    Updated

  6. Search Number Helper

    Search Number Helper
    When doing search in multiple region one after another, it can be annoying to change the region every time. This helper will  automatically prompt you to change the region when doing a new search.

    178 downloads

       (0 reviews)

    0 comments

    Updated

  7. Patcher

    Patcher
    Patcher is a game guardian library for patching memory address, it provides a simple interface and handle on/off state of patching.

    Installation
    Download the latest version of patcher from here and add it to your project.
    You can also load the latest version of Patcher from the cdn using the following code.
    local _, Patcher = pcall(load(gg.makeRequest("https://pastebin.com/raw/wz1sfmWF").content))  
    Usage
     
    Make sure to place the Patcher.lua file in the same directory as your script.
    local Patcher = require("Patcher") local il2cpp = Patcher.getBaseAddr("libil2cpp.so") local libunity = Patcher.getBaseAddr("libunity.so") local p = Patcher.new({ title = "Custom Title", }) p:add({ name = "Damage Multiplier", address = il2cpp + 0x18643A8, patch = "01 04 A0 E3 1E FF 2F E1r", }) p:add({ name = "HP Multiplier", address = libunity + 0x1864F88, patch = "01 04 A0 E3 1E FF 2F E1r" }) p:run()  
    For more information about how to use the library, please check the repo

    118 downloads

       (0 reviews)

    0 comments

    Updated

  8. Apk Update Version Checker (Apkcombo- Apkpure)

    This Script checks if the version of Apkcombo and apkpure games and applications stored in a table called "games" is up to date. Copy and paste the link of your Apkcombo or apkpure app or game for the game you want to the link stored in the "link" field of the game's entry in the "games" table.
    searches the content of the request for the version and date of the game's latest update.

    So how do you know if the game is updated or not?
    If the version is not the same as the version stored in the "version" field of the game entry in the "games" table,
    [⭕️] appears next to the version. And it always shows the latest version.
    If there is no update or
    When same as version = "the version you wrote", it shows [💚] next to the version.
    At the same time, by using this in your scripts, you can give a warning for the new version or do version control when the game is updated.
     
    Example I want to control a PK XD Game, add it.
    ["PK XD"] = { version = "1.44", --I set the version. If it is not the same as this version, it will appear as [⭕️]. link = "https://apkcombo.com/pk-xd/com.movile.playkids.pkxd/", --I searched the game from Apkcombo site and copied the http link and pasted it in quotes. }, --2 ["Roblox"] = { version = "2.561.359 ", link = "https://apkcombo.com/roblox/com.roblox.client/", }, If you are not crazy, you can feel a slowness of up to 200 games. If you just want to check version, you can remove Date Functions and speed up queries.

    212 downloads

       (0 reviews)

    0 comments

    Updated

  9. API For GG

    Api Tool For Gameguardian
    How to use:
    local apiTool = gg.makeRequest("https://raw.githubusercontent.com/AngellessS/Advance-Force/main/API/api.lua").content if apiTool == nil then gg.alert("Connection failed.") os.exit() end pcall(load(apiTool)) or
    io.open("/storage/emulated/0/api.lua","w"):wrire(gg.makeRequest("https://raw.githubusercontent.com/AngellessS/Advance-Force/main/API/api.lua").connect) apiTool = require("/storage/emulated/0/api.lua") Features:
    -string.split(string, separation) -> table
    -gg.newFolder(directory) -> nil
    -gg.replaceFile(old file dir, new file dir) -> nil
    -gg.checkPath(dir) -> bool
    -math.binToDec(string binary) -> number 
    -math.decToBin(number) -> string
    -math.decToHex(number) -> string
    -math.hexToDec(string hex) -> number
    -math.decToFloat(number) -> float number
    -math.hexToFloat(string hex) -> float number
    -math.floatToDec(float number) -> number
    -math.floatToHex(float number) -> string
    -adf. isRoot() -> bool
    -adf. readLines(file dir) -> table
    -adf. memorySearch(Value, Type) -> nil
    -adf. memoryOffser(Value, Offset, Type) -> nil
    -adf.memoryClear() -> nil
    -adf. memoryWrite(Value, Offset, Type) -> nil
    -info() -> table

    167 downloads

       (0 reviews)

    0 comments

    Updated

  10. Dump.CS to Lua Table

    This Script will change all the Dump.cs file into new file.lua contain a lua table
    • remove void function since they act on themself or on the class and no return values
    • filter all possible function / classes for hack usage
    • ENUM not included
    • seal / protected / Abstract are filterd
    • filter system and all other dll functions
    • Work for PC and GG script
    Note : use the script on PC for faster results + the dump name MUST be "Dump.cs"
    --Script not Encoded feel free to learn 🙂

    279 downloads

       (0 reviews)

    3 comments

    Updated

  11. Run CPP

    Run CPP in LUA
     
     MemorySearch("0.99000000954", gg.TYPE_FLOAT) 
     MemoryOffset("0.57735025883", -0x4, gg.TYPE_FLOAT) 
     MemoryOffset("0.00999999978-7", -0x8, gg.TYPE_FLOAT) 
     MemoryWrite("-1", -0x8, gg.TYPE_FLOAT) 
     MemoryClear() 
    Telegram

    140 downloads

       (0 reviews)

    0 comments

    Submitted

  12. API tool for developer

    support :
    -CSM
    -setvalue
    -SearchWrite
    -xgxc/xqmnb
    -ms
    -check gg version
    -rename check
    -sleep

    contact for help : https://t.me/learn_lua

    308 downloads

       (0 reviews)

    0 comments

    Updated

  13. Configuration System

    Configuration system
    I was bored, so I made this script
    The system works by adding the function name to the table, which is saved to a file. You can change the storage paths of configs and the file that stores all the names of configs (due to the lack of necessary functions, I had to do this).
    Most likely, the implementation is not the most successful, but I did not sweat much and did it in the simplest way.

    341 downloads

       (0 reviews)

    0 comments

    Updated

  14. Var Converter

    This script converts var to offset with the receipt of lib, hex, rhex.
    Save path: /storage/emulated/0/Offsets.lua
    Initially, the converter was not designed for publication, so if there are any errors: Telegram: @theayonil

    361 downloads

       (1 review)

    1 comment

    Updated

  15. Super Encryption Lua GG | SELGG.lua

    Script for encryption lua gg (offline).
    ✓ Anti loader.
    ✓ All type string.
    ✓ Super Hard Decrypt.
    ✓ Suport commentary.
    ✓ Easy for Update.
     
    Problem:
    Telegram

    33,379 downloads

       (2 reviews)

    35 comments

    Updated

  16. Lua to CPP

    lua to cpp

    499 downloads

       (0 reviews)

    0 comments

    Submitted

  17. NetflixSubtitle to SRT

    Convert Netflix subtitle to SRT

    907 downloads

       (0 reviews)

    2 comments

    Updated

  18. String Grabber by BadCase

    A tool that can find all strings in a games memory

    Find nearby pointed to strings

    And follow nearby pointer chains to find strings

    383 downloads

       (0 reviews)

    0 comments

    Submitted

  19. Unix/Epoch Timestamp Tool by BadCase

    A tool for generating ranged Unix/Epoch timestamp searches and timestamps.

    245 downloads

       (0 reviews)

    0 comments

    Submitted

  20. BadCase's GGIl2cpp Toolbox

    This script provides a frontend for all of the core functions of @Kruvcraft's 
    GGIl2cpp (#1zbicc50) as well as some additional functions.
    FindClass: Calls GGIl2cpp's Il2cpp.FindClass() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load Field instances, make Method edits and create Field and Method edits for exported scripts.
    FindFields: Calls GGIl2cpp's Il2cpp.FindFields() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, load instances of the Field and create Field edits for exported scripts.
    FindMethods: Calls GGIl2cpp's Il2cpp.FindMethods() function and loads results to the Save List. Selecting results in the Save List opens a menu to copy data, edit Methods and create Method edits for exported scripts.
    FindObject: Calls GGIl2cpp's Il2cpp.FindObject() function and loads results to the Save List. Selecting results in the Save List opens a menu to load Field instances.
    PatchesAddress: Calls GGIl2cpp's Il2cpp.PatchesAddress() function which edits a Method in Xa with a hex byte edit. The script can create the hex byte edits for you or you can enter them manually.
    Keyword Search: Allows you to search for Classes, Methods and Fields by keyword instead of exact name. Classes will be added to the Save List for Class and Field results, Methods will be added for Method results.
    Script Creator: Allows you to edit created function names, modify menu order and export scripts.

    945 downloads

       (1 review)

    0 comments

    Updated

  21. THE HOODS ENCRYPTION

    Block gg log
    Block gg load
    Block gg lasm
    Block sstools
    Block auto decrypt
    The encryption working in 2 - 3 second
    The script need access to the internet to work 
     
     
    VivaCut_video_1672129803208_HD.mp4

    362 downloads

       (0 reviews)

    0 comments

    Updated

  22. Obfuscated Class Finder by BadCase

    A tool to find new class names after updates in unity games that use obfuscated class, field and method names.
    You must have an old dump that you know the Namespace and Class name in and the current dump in order to find the new Class name.

    347 downloads

       (0 reviews)

    0 comments

    Submitted

  23. Unity Script Templates by BadCase

    These are a few templates to allow you to easily create scripts for Unity based games.
    Fields.Class.Name.Offset.Template.by.BadCase
    Add edits to the "fieldEdits" table in the following format
        [1] = {
            editName = "Free Clothes",
            emoji = "👖",
            edits = {
                {
                    className = "ClothesOriData",
                    armEdits = {0X18, 0X28},
                    editTo = 0,
                    editType = gg.TYPE_DWORD,
                    editIfEqual = nil
                }, {
                    className = "ClothesOriData",
                    armEdits = {0X1C, 0X28},
                    editTo = 0,
                    editType = gg.TYPE_DWORD,
                    editIfEqual = nil
                }}
        },
    className: is the name of the Class the Field belongs to
    armEdits: is a table in this format {arm7_field_offset,arm8_field_offset}
    editTo: is the value to edit the Field instances to
    editType: is the type of value to edit the Field instance as
    editIfEqual: use if you only want to edit fields of a certain value and or get user input for this value can bet set to
    nil: if editing all Field instance
    integer: for editing all Field instances of a single value
    integer range: in this format 0~100 for editing all Field instance with a value in that range
    text: for providing instructions to the user in a prompt asking them to specify the value to be edited
    Methods.Class.Method.Name.Template.by.BadCase
    Add edits to the "methodEdits" table in the following format
        [1] = {
            editName = "Unlimited Ammo",
            emoji = "♾️",
            edits = {
                {
                    className = "Player",
                    methodName = "HasBulletsClip",
                    armEdits = {{"~A MOV R0, #1", "~A BX LR"}, {"~A8 MOV W0, #1", "~A8 RET"}}
                }}
        },
        
    className: is the name of the Class the Method belongs to
    methodName: is the name of the Method to edit
    armEdits: is a table in this format {(arm7_lib_edits},{arm8_lib_edits}} edits can be GG assembler opcodes (~A BX LR), hex (00000000h) or reverse hex (00000000r)
    Combined.Field.Method.Template.by.BadCase
    This is the above 2 templates combined, make sure you have the same items in both the "methodEdits" and "fieldEdits"
    If a function only has one type of edits for example "fieldEdits" and no "methodEdits" then the "methodEdits" edit table for that function should be an empty table {}
    Check the last function in the script for an example.

     

    521 downloads

       (2 reviews)

    1 comment

    Submitted

  24. String replacer

    Often when editing strings in games there will be a limit on the length of the string. Script will put length equal to the modified string. This does not work if the game has a custom sized limit for the string you want to modify.




    545 downloads

       (0 reviews)

    0 comments

    Updated

  25. Value Finder/Searcher Script

    Value Searching , Editing

    436 downloads

       (0 reviews)

    0 comments

    Submitted


  • 103838 What virtual space do you use?

    1. 1. What virtual space do you use?


      • Parallel Space (best choice)
      • VirtualXposed
      • Parallel Space Lite
      • GO Multiple
      • Dr. Clone
      • Virtual Space
      • ES Parallel Accounts
      • NoxApp+
      • DualSpace
      • Octopus
      • AppBox
      • DualSpace Blue
      • DualSpace Lite
      • 2Face
      • Other virtual space
      • I have a root
      • Multiple Space
      • clonneapp
      • Parallel Accounts
      • APP Cloner
      • App Hider
      • Calculator+
      • Multi
      • App Hider Lite
      • Dual App
      • Phone (Dialer Vault)
      • Notepad
      • Parallel Space Pro
      • VMOS
      • Clone App
    2. 2. Do you use the Internet?


      • No, I don't.
      • Yes, I do.

×
×
  • 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.