Jump to content

VieGG

Ascended
  • Posts

    34
  • Joined

  • Last visited

  • Days Won

    1

VieGG last won the day on August 30

VieGG had the most liked content!

Recent Profile Visitors

8,318 profile views

VieGG's Achievements

Contributor

Contributor (5/14)

  • Well Followed Rare
  • One Year In
  • One Month Later
  • Collaborator Rare
  • Reacting Well Rare

Recent Badges

15

Reputation

  1. -- Il2CppGG by LeThi9GG require("Il2CppGG") -- Usage Instructions: -- This script demonstrates the core functionalities of Il2CppGG, a Lua-based toolkit for inspecting and manipulating Il2Cpp structures in GameGuardian. -- It covers image retrieval, class searching, method and field access, value modification, class dumping, and memory hooking. -- Prerequisites: Ensure GameGuardian is running and the target application uses Il2Cpp. Load this script in GameGuardian for execution. -- Note: Addresses and values are examples; adapt them to your specific game or application. -- For detailed API documentation, refer to the project's README.md or wiki. -- Example: Retrieve Image by Name -- Description: Fetches an Il2Cpp image (assembly) by its name. Use Il2Cpp.Image() without arguments to get all images. local Assembly = Il2Cpp.Image("Assembly-CSharp") -- Retrieves the "Assembly-CSharp" assembly. -- Example: Find Class within an Image -- Description: Searches for a class in the specified image using namespace and class name. Namespace can be nil for root-level classes. local PlayerScript = Assembly:Class(nil, "PlayerScript") -- Parameters: (namespace, classname) -- Alternative: Find Class by Name, Address, or Index -- Description: Directly searches for a class by name (recommended to use GetIndex() for performance optimization). --local PlayerScript = Il2Cpp.Class("PlayerScript") --print(PlayerScript:GetIndex()) -- Outputs the class index for faster future access. -- Example: Find Methods in a Class -- Description: Retrieves a specific method by name or lists all methods with GetMethods(). local LateUpdate = PlayerScript:GetMethod("LateUpdate") -- Finds the "LateUpdate" method. local addPoints = PlayerScript:GetMethod("addPoints") -- Finds the "addPoints" method. -- Example: Find Fields in a Class -- Description: Retrieves a specific field by name or lists all fields with GetFields(). local points = PlayerScript:GetField("points") -- Finds the "points" field. -- Alternative: Find Field by Name or Address -- Description: Global search for a field by name or direct address. --local points = Il2Cpp.Field("points") -- Searches globally by name. -- Alternative: Find Method by Name or Address -- Description: Global search for a method by name or direct address. --local AddPoints = Il2Cpp.Method("AddPoints") -- Searches globally by name. -- Example: Modify a Field Value -- Description: Locates an instance of the class and sets a new value for the field. local obj = PlayerScript:GetInstance() -- Retrieves instances of the class. points:SetValue(obj, 1000) -- Sets the "points" field to 1000 in the instance. -- Example: Dump Class to C# Format -- Description: Outputs the class structure in C# syntax for reverse engineering purposes. --print(PlayerScript:Dump()) -- Dumps the class definition, including fields, methods, and offsets. -- Hooking Examples -- Description: Demonstrates memory hooking for real-time modifications using the Hook module. -- Hooks allow intercepting and altering method calls, parameters, and fields. -- Hook a Field via a Method (e.g., hook "points" field using "LateUpdate" method) -- Description: Modifies the field value every time the method is called. local _LateUpdate = LateUpdate:field() -- Initializes hook on the method for field modification. _LateUpdate:setValues({{offset = points.offset, flags = "int", value = 9999}}) -- Sets the field to 9999. gg.sleep(10000) -- Pauses for 10 seconds to observe the effect. _LateUpdate:off() -- Disables the hook and restores original behavior. -- Hook Parameters of a Method (e.g., hook parameters of "addPoints") -- Description: Alters the parameter values passed to the method. local _addPoints = addPoints:method() -- Initializes hook on the method for parameter modification. _addPoints:param({{param = 1, flags = "int", value = 999999}}) -- Sets the first parameter to 999999. gg.sleep(10000) -- Pauses for 10 seconds. _addPoints:off() -- Disables the hook. -- Hook a Method Call (e.g., call "addPoints" from "LateUpdate") -- Description: Injects a call to another method with custom parameters during execution. local _addPoints = LateUpdate:call()(addPoints) -- Initializes hook to call "addPoints" from "LateUpdate". _addPoints:setValues({{param = 1, flags = "int", value = 999}}) -- Sets the parameter for the called method. gg.sleep(10000) -- Pauses for 10 seconds. _addPoints:off() -- Disables the hook. Il2CppGG Telegram Youtube
  2. VieGG

    Il2CppGG

    View File Il2CppGG Il2CppGG A comprehensive toolkit for inspecting and manipulating Il2Cpp structures within GameGuardian, implemented in Lua. Telegram Description Il2CppGG is an advanced Lua-based toolkit designed for GameGuardian, enabling detailed analysis and modification of Il2Cpp metadata, classes, methods, fields, types, and objects. It now includes memory hooking capabilities for game modification and reverse engineering, as well as class dumping to C# format. Author: LeThi9GG Features - Automatic Il2Cpp Version Detection: Supports versions from v22 to v31 with seamless adaptation. - Comprehensive Metadata Support: Parse global metadata, including strings, generics, and parameters. - Class Inspection: Retrieve class details, fields, methods, and properties; search by name for efficiency. - Type System Analysis: Detailed handling of types, including generics, arrays, and value types. - Object Manipulation: Locate and modify Il2Cpp objects in memory, with filtering for accuracy. - Safe Memory Operations: Read and write memory via GameGuardian for secure interactions. - Intelligent Caching: Optimized performance through caching mechanisms. - Name-Based Search: Easily locate fields and classes by name without requiring addresses. - Memory Hooking (New): Hook methods, parameters, fields, and calls for real-time modifications (from Hook.lua). Supports 32-bit and 64-bit architectures with jump opcodes. - Class Dumping (New): Export classes to C# format, including field offsets, method RVAs, and attributes (from Dump.lua). - Parameter Handling (New): Manage Il2Cpp parameters with names, tokens, and types (from Param.lua). Requirements - GameGuardian installed on an Android device. - A target application utilizing the Il2Cpp framework. - Basic proficiency in Lua programming. Installation 1. Download the [build/Il2CppGG.lua](/build/) file from the repository. 2. Place it in GameGuardian's scripts directory. 3. Load the `Il2CppGG.lua` script within GameGuardian. Build - Execute the `buildLT9.lua` script in GameGuardian to generate `build/Il2CppGG.lua`. Project Structure Il2CppGG/ ├── Androidinfo.lua (Android device information helper) ├── buildLT9.lua (Module bundling build script) ├── Class.lua (Il2Cpp class module) ├── Field.lua (Il2Cpp field module) ├── Il2Cpp.lua (Core module for versioning and utilities) ├── Image.lua (Il2Cpp image/assembly module) ├── init.lua (Development entry point) ├── Meta.lua (Il2Cpp metadata module) ├── Method.lua (Il2Cpp method module) ├── Object.lua (Memory object manipulation) ├── Struct.lua (Version-specific Il2Cpp structures) ├── Type.lua (Il2Cpp type module) ├── Universalsearcher.lua (Metadata and pointer locator) ├── Version.lua (Version detection and structure selection) ├── Param.lua (Parameter operations module) ├── Hook.lua (Memory hooking for modification and reverse engineering) ├── Dump.lua (Class dumping to C# format) ├── test.lua (Usage examples for hooking and dumping) └── build/ └── Il2CppGG.lua (Bundled production script) For general usage, only `build/Il2CppGG.lua` is required. The remaining files support development and contributions. Detailed API Documentation Core Module (Il2Cpp.lua) Handles initialization, versioning, and core utilities. require("Il2CppGG") -- Check architecture print("64-bit:", Il2Cpp.x64) print("Pointer size:", Il2Cpp.pointSize) -- Read value from memory local value = Il2Cpp.gV(0x12345678, Il2Cpp.pointer) print("Value at address:", value) -- Read pointer local ptr = Il2Cpp.GetPtr(0x12345678) print("Pointer value:", string.format("0x%X", ptr)) -- Convert UTF-8 string local text = Il2Cpp.Utf8ToString(0x12345678) print("String value:", text) Class Module (Class.lua) Represents an Il2Cpp class. -- Find class by name local playerClass = Il2Cpp.Class("Player") -- Retrieve information print("Class name:", playerClass:GetName()) print("Namespace:", playerClass:GetNamespace()) print("Instance size:", playerClass:GetInstanceSize()) -- Fields local fields = playerClass:GetFields() print("Number of fields:", #fields) local healthField = playerClass:GetField("health") -- Methods local methods = playerClass:GetMethods() local updateMethod = playerClass:GetMethod("Update", 0) -- 0 parameters -- Instances local instances = playerClass:GetInstance() print("Number of instances:", #instances) Field Module (Field.lua) Represents a field in an Il2Cpp class. -- Find field local health = Il2Cpp.Field("health") -- Information print("Field name:", health:GetName()) print("Offset:", health:GetOffset()) print("Type:", health:GetType():GetName()) -- Get/Set value local objAddress = 0x12345678 local val = health:GetValue(objAddress) health:SetValue(objAddress, 100) -- Static fields if health:IsNormalStatic() then health:StaticSetValue(9999) end Method Module (Method.lua) Represents an Il2Cpp method. local method = Il2Cpp.Method(0x12345678) print("Method name:", method:GetName()) print("Return type:", method:GetReturnType():GetName()) print("Parameter count:", method:GetParamCount()) local params = method:GetParam() for i, param in ipairs(params) do print("Parameter " .. i .. ":", param.name, param.type:GetName()) end Type Module (Type.lua) Represents an Il2Cpp type. local typeObj = Il2Cpp.Type(0x12345678) print("Type name:", typeObj:GetName()) print("Is value type:", typeObj:IsValueType()) print("Is generic instance:", typeObj:IsGenericInstance()) Object Module (Object.lua) Locates and manipulates objects in memory. local players = Il2Cpp.Object:FindObjects(playerClass.address) print("Number of players:", #players) Image Module (Image.lua) Represents an Il2Cpp assembly. local image = Il2Cpp.Image("Assembly-CSharp") print("Image name:", image:GetName()) local types = image:GetTypes() local player = image:Class("", "Player") Meta Module (Meta.lua) Handles global Il2Cpp metadata. local str = Il2Cpp.Meta:GetStringFromIndex(123) print("String:", str) Hook Module (Hook.lua) (New) Enables memory hooking for modifications. -- Hook field via method local lateUpdate = playerClass:GetMethod("LateUpdate") local points = playerClass:GetField("points") local _lateUpdate = lateUpdate:field() _lateUpdate:setValues({{offset = points.offset, flags = "int", value = 9999}}) gg.sleep(10000) _lateUpdate:off() -- Hook method parameters local addPoints = playerClass:GetMethod("addPoints") local _addPoints = addPoints:method() _addPoints:param({{param = 1, flags = "int", value = 999999}}) gg.sleep(10000) _addPoints:off() Dump Module (Dump.lua) (New) Dumps classes to C# format. local dump = require("Dump") print(dump(playerClass)) -- Outputs C# class representation Advanced Examples From test.lua: -- Retrieve image local Assembly = Il2Cpp.Image("Assembly-CSharp") -- Class retrieval local PlayerScript = Assembly:Class(nil, "PlayerScript") -- Method/Field local LateUpdate = PlayerScript:GetMethod("LateUpdate") local points = PlayerScript:GetField("points") -- Set field value local obj = PlayerScript:GetInstance() points:SetValue(obj, 1000) -- Dump class print(PlayerScript:Dump()) -- Hooking examples as above Notes - This toolkit is intended for educational and research purposes only. Use it responsibly. - Certain features may depend on specific Il2Cpp versions. - Exercise caution when modifying memory, as it may lead to application instability. Author LeThi9GG – Specialist in Il2Cpp reverse engineering. Contributing Contributions, bug reports, and feature requests are welcome. Please refer to the issues page. License This project is licensed for educational and research use. Respect the terms of service for any analyzed applications. --- Full documentation is available on the Wiki Submitter VieGG Submitted 08/29/2025 Category Tools  
  3. VieGG

    Il2CppGG

    Version 1.0.1

    1,743 downloads

    Il2CppGG A comprehensive toolkit for inspecting and manipulating Il2Cpp structures within GameGuardian, implemented in Lua. Telegram Github Description Il2CppGG is an advanced Lua-based toolkit designed for GameGuardian, enabling detailed analysis and modification of Il2Cpp metadata, classes, methods, fields, types, and objects. It now includes memory hooking capabilities for game modification and reverse engineering, as well as class dumping to C# format. Author: LeThi9GG Features - Automatic Il2Cpp Version Detection: Supports versions from v22 to v31 with seamless adaptation. - Comprehensive Metadata Support: Parse global metadata, including strings, generics, and parameters. - Class Inspection: Retrieve class details, fields, methods, and properties; search by name for efficiency. - Type System Analysis: Detailed handling of types, including generics, arrays, and value types. - Object Manipulation: Locate and modify Il2Cpp objects in memory, with filtering for accuracy. - Safe Memory Operations: Read and write memory via GameGuardian for secure interactions. - Intelligent Caching: Optimized performance through caching mechanisms. - Name-Based Search: Easily locate fields and classes by name without requiring addresses. - Memory Hooking (New): Hook methods, parameters, fields, and calls for real-time modifications (from Hook.lua). Supports 32-bit and 64-bit architectures with jump opcodes. - Class Dumping (New): Export classes to C# format, including field offsets, method RVAs, and attributes (from Dump.lua). - Parameter Handling (New): Manage Il2Cpp parameters with names, tokens, and types (from Param.lua). Requirements - GameGuardian installed on an Android device. - A target application utilizing the Il2Cpp framework. - Basic proficiency in Lua programming. Installation 1. Download the [build/Il2CppGG.lua](/build/) file from the repository. 2. Place it in GameGuardian's scripts directory. 3. Load the `Il2CppGG.lua` script within GameGuardian. Build - Execute the `buildLT9.lua` script in GameGuardian to generate `build/Il2CppGG.lua`. Project Structure Il2CppGG/ ├── Androidinfo.lua (Android device information helper) ├── buildLT9.lua (Module bundling build script) ├── Class.lua (Il2Cpp class module) ├── Field.lua (Il2Cpp field module) ├── Il2Cpp.lua (Core module for versioning and utilities) ├── Image.lua (Il2Cpp image/assembly module) ├── init.lua (Development entry point) ├── Meta.lua (Il2Cpp metadata module) ├── Method.lua (Il2Cpp method module) ├── Object.lua (Memory object manipulation) ├── Struct.lua (Version-specific Il2Cpp structures) ├── Type.lua (Il2Cpp type module) ├── Universalsearcher.lua (Metadata and pointer locator) ├── Version.lua (Version detection and structure selection) ├── Param.lua (Parameter operations module) ├── Hook.lua (Memory hooking for modification and reverse engineering) ├── Dump.lua (Class dumping to C# format) ├── test.lua (Usage examples for hooking and dumping) └── build/ └── Il2CppGG.lua (Bundled production script) For general usage, only `build/Il2CppGG.lua` is required. The remaining files support development and contributions. Detailed API Documentation Core Module (Il2Cpp.lua) Handles initialization, versioning, and core utilities. require("Il2CppGG") -- Check architecture print("64-bit:", Il2Cpp.x64) print("Pointer size:", Il2Cpp.pointSize) -- Read value from memory local value = Il2Cpp.gV(0x12345678, Il2Cpp.pointer) print("Value at address:", value) -- Read pointer local ptr = Il2Cpp.GetPtr(0x12345678) print("Pointer value:", string.format("0x%X", ptr)) -- Convert UTF-8 string local text = Il2Cpp.Utf8ToString(0x12345678) print("String value:", text) Class Module (Class.lua) Represents an Il2Cpp class. -- Find class by name local playerClass = Il2Cpp.Class("Player") -- Retrieve information print("Class name:", playerClass:GetName()) print("Namespace:", playerClass:GetNamespace()) print("Instance size:", playerClass:GetInstanceSize()) -- Fields local fields = playerClass:GetFields() print("Number of fields:", #fields) local healthField = playerClass:GetField("health") -- Methods local methods = playerClass:GetMethods() local updateMethod = playerClass:GetMethod("Update", 0) -- 0 parameters -- Instances local instances = playerClass:GetInstance() print("Number of instances:", #instances) Field Module (Field.lua) Represents a field in an Il2Cpp class. -- Find field local health = Il2Cpp.Field("health") -- Information print("Field name:", health:GetName()) print("Offset:", health:GetOffset()) print("Type:", health:GetType():GetName()) -- Get/Set value local objAddress = 0x12345678 local val = health:GetValue(objAddress) health:SetValue(objAddress, 100) -- Static fields if health:IsNormalStatic() then health:StaticSetValue(9999) end Method Module (Method.lua) Represents an Il2Cpp method. local method = Il2Cpp.Method(0x12345678) print("Method name:", method:GetName()) print("Return type:", method:GetReturnType():GetName()) print("Parameter count:", method:GetParamCount()) local params = method:GetParam() for i, param in ipairs(params) do print("Parameter " .. i .. ":", param.name, param.type:GetName()) end Type Module (Type.lua) Represents an Il2Cpp type. local typeObj = Il2Cpp.Type(0x12345678) print("Type name:", typeObj:GetName()) print("Is value type:", typeObj:IsValueType()) print("Is generic instance:", typeObj:IsGenericInstance()) Object Module (Object.lua) Locates and manipulates objects in memory. local players = Il2Cpp.Object:FindObjects(playerClass.address) print("Number of players:", #players) Image Module (Image.lua) Represents an Il2Cpp assembly. local image = Il2Cpp.Image("Assembly-CSharp") print("Image name:", image:GetName()) local types = image:GetTypes() local player = image:Class("", "Player") Meta Module (Meta.lua) Handles global Il2Cpp metadata. local str = Il2Cpp.Meta:GetStringFromIndex(123) print("String:", str) Hook Module (Hook.lua) (New) Enables memory hooking for modifications. -- Hook field via method local lateUpdate = playerClass:GetMethod("LateUpdate") local points = playerClass:GetField("points") local _lateUpdate = lateUpdate:field() _lateUpdate:setValues({{offset = points.offset, flags = "int", value = 9999}}) gg.sleep(10000) _lateUpdate:off() -- Hook method parameters local addPoints = playerClass:GetMethod("addPoints") local _addPoints = addPoints:method() _addPoints:param({{param = 1, flags = "int", value = 999999}}) gg.sleep(10000) _addPoints:off() Dump Module (Dump.lua) (New) Dumps classes to C# format. local dump = require("Dump") print(dump(playerClass)) -- Outputs C# class representation Advanced Examples From test.lua: -- Retrieve image local Assembly = Il2Cpp.Image("Assembly-CSharp") -- Class retrieval local PlayerScript = Assembly:Class(nil, "PlayerScript") -- Method/Field local LateUpdate = PlayerScript:GetMethod("LateUpdate") local points = PlayerScript:GetField("points") -- Set field value local obj = PlayerScript:GetInstance() points:SetValue(obj, 1000) -- Dump class print(PlayerScript:Dump()) -- Hooking examples as above Notes - This toolkit is intended for educational and research purposes only. Use it responsibly. - Certain features may depend on specific Il2Cpp versions. - Exercise caution when modifying memory, as it may lead to application instability. Author LeThi9GG – Specialist in Il2Cpp reverse engineering. Contributing Contributions, bug reports, and feature requests are welcome. Please refer to the issues page. License This project is licensed for educational and research use. Respect the terms of service for any analyzed applications. Full documentation is available on the Wiki
  4. VieGG

    SlowAES

    View File SlowAES slowAES slowAES is an open-source library written in Lua that provides encryption and decryption capabilities based on the AES (Advanced Encryption Standard) algorithm. Key Features - Supports AES key sizes: - 128-bit (16 bytes) - 192-bit (24 bytes) - 256-bit (32 bytes) - Supported encryption modes: - CBC (Cipher Block Chaining) - CFB (Cipher Feedback) - OFB (Output Feedback) - Includes padding/unpadding mechanisms to ensure data compatibility with AES requirements. - Operates independently without external library dependencies. Usege Import the library local slowAES = require("aes") Encryption local plaintext = { /* Data to encrypt as a byte array */ } local key = { /* Encryption key */ } local iv = { /* Initialization Vector (IV) */ } local mode = slowAES.modeOfOperation.CBC local ciphertext = slowAES:encrypt(plaintext, mode, key, iv) Decryption local decrypted = slowAES:decrypt(ciphertext, mode, key, iv) Submitter VieGG Submitted 01/22/2025 Category Tools  
  5. VieGG

    SlowAES

    Version 0.1

    402 downloads

    slowAES slowAES is an open-source library written in Lua that provides encryption and decryption capabilities based on the AES (Advanced Encryption Standard) algorithm. Key Features - Supports AES key sizes: - 128-bit (16 bytes) - 192-bit (24 bytes) - 256-bit (32 bytes) - Supported encryption modes: - CBC (Cipher Block Chaining) - CFB (Cipher Feedback) - OFB (Output Feedback) - Includes padding/unpadding mechanisms to ensure data compatibility with AES requirements. - Operates independently without external library dependencies. Usege Import the library local slowAES = require("aes") Encryption local plaintext = { /* Data to encrypt as a byte array */ } local key = { /* Encryption key */ } local iv = { /* Initialization Vector (IV) */ } local mode = slowAES.modeOfOperation.CBC local ciphertext = slowAES:encrypt(plaintext, mode, key, iv) Decryption local decrypted = slowAES:decrypt(ciphertext, mode, key, iv)
  6. View File library lua exports global symbols Support: 32 bit Preferred: libanogs Watch my video to see how to use it Submitter LTC Submitted 03/20/2024 Category Tools  
  7. Version 1.0.0

    444 downloads

    Support: 32 bit Preferred: libanogs Watch my video to see how to use it
  8. View File Lua Obfuscator Watch my video to see how to use it Submitter LTC Submitted 01/01/2024 Category Tools  
  9. VieGG

    Lua Obfuscator

    Version 1.0.0

    745 downloads

    Watch my video to see how to use it
  10. VieGG

    Tools DumpCS

    View File Tools DumpCS Tools Dump Script Gamegudian By name Class, Fields or address in memory Watch my video to see how to use it Submitter LTC Submitted 10/04/2023 Category Tools  
  11. VieGG

    Tools DumpCS

    Version 1.0.0

    1,789 downloads

    Tools Dump Script Gamegudian By name Class, Fields or address in memory Watch my video to see how to use it
  12. I will release it
  13. View File Script Template This sample makes working with il2cpp a lot easier, I have included examples in the script you can check out. Submitter LTC Submitted 07/27/2023 Category Templates  
  14. Version 1.0.0

    982 downloads

    This sample makes working with il2cpp a lot easier, I have included examples in the script you can check out.
  15. VieGG

    Call methods

    View File Call methods Support for 32&64bit Watch the video to know how to use it Join my telegram group if you can't download the script here https://t.me/LETHICHINGG Submitter LTC Submitted 05/31/2023 Category Tools  
×
×
  • 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.