MemoryEngine 1.4.6

There is a newer version of this package available.
See the version list below for details.
dotnet add package MemoryEngine --version 1.4.6
                    
NuGet\Install-Package MemoryEngine -Version 1.4.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MemoryEngine" Version="1.4.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MemoryEngine" Version="1.4.6" />
                    
Directory.Packages.props
<PackageReference Include="MemoryEngine" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MemoryEngine --version 1.4.6
                    
#r "nuget: MemoryEngine, 1.4.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MemoryEngine@1.4.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MemoryEngine&version=1.4.6
                    
Install as a Cake Addin
#tool nuget:?package=MemoryEngine&version=1.4.6
                    
Install as a Cake Tool

MemoryEngine 🚀

NuGet Version License

A high-performance, modular Game Hacking & Memory Manipulation Framework written in C# (.NET 6.0+). Supports internal & external tooling, pattern scanning, ICED detours, MinHook detours, event caves, and Windows Forms ESP overlays.


🛠 Features & API Surface

  • Engine.cs <ul> <li><code>GetModuleInfo(moduleName)</code></li> <li><code>ReadByte</code> / <code>ReadBool</code> / <code>ReadInt16</code> / <code>ReadUInt16</code> / <code>ReadInt32</code> / <code>ReadInt</code> / <code>ReadUInt32</code> / <code>ReadInt64</code> / <code>ReadUInt64</code> / <code>ReadFloat</code> / <code>ReadDouble</code> / <code>ReadString</code></li> <li><code>WriteByte</code> / <code>WriteBool</code> / <code>WriteInt16</code> / <code>WriteUInt16</code> / <code>WriteInt32</code> / <code>WriteInt</code> / <code>WriteUInt32</code> / <code>WriteInt64</code> / <code>WriteUInt64</code> / <code>WriteFloat</code> / <code>WriteDouble</code> / <code>WriteString</code></li> <li><code>Read<T>()</code> / <code>Write<T>()</code> (Generisch für Unmanaged Structs)</li> <li><code>ReadPointer(address)</code> / <code>ReadPointerChain(baseAddress, offsets)</code></li> <li><code>Nop(address, length)</code> / <code>Patch(address, bytes)</code></li> <li><code>FreezeMemory</code> / <code>FreezeInt</code> / <code>FreezeFloat</code> / <code>FreezeBool</code> / <code>UnfreezeMemory</code></li> </ul>

<details> <summary><b>📁 Core</b></summary> <ul> <li><b>HookInfo.cs</b> <ul> <li><code>HookAddress</code> (IntPtr)</li> <li><code>CaveAddress</code> (IntPtr)</li> <li><code>OriginalBytes</code> (byte[]?)</li> </ul> </li> <li><b>MemoryAccess.cs</b> <ul> <li><code>OpenProcess</code></li> <li><code>ReadProcessMemory</code> / <code>WriteProcessMemory</code></li> <li><code>VirtualAllocEx</code> / <code>VirtualProtectEx</code> / <code>VirtualFreeEx</code> / <code>CloseHandle</code></li> </ul> </li> <li><b>OffsetManager.cs</b> <ul> <li><code>AddAbsolute(name, address)</code></li> <li><code>AddModuleRelative(name, moduleName, offset)</code></li> <li><code>AddPointerChain(name, moduleName, baseOffset, chain)</code></li> <li><code>AddPattern(name, moduleName, pattern)</code></li> <li><code>Resolve(name, engine)</code></li> <li><code>Get(name)</code> / <code>Contains(name)</code></li> </ul> </li> <li><b>PatternScanner.cs</b> <ul> <li><code>FindPattern(moduleName, patternString)</code></li> <li><code>FindPattern(baseAddress, regionSize, patternString)</code></li> <li><code>FindPattern(regionSize, patternString)</code></li> </ul> </li> </ul> </details>

<details> <summary><b>📁 External</b></summary> <ul> <li><b>ExternalHooking.cs</b> <ul> <li><code>ApplyDetour(featureName, hookAddress, instructionLength, buildCaveCode)</code></li> <li><code>ApplyAobDetour(featureName, moduleName, pattern, instructionLength, buildCaveCode)</code></li> <li><code>GetOrCreateCave(name, size)</code> / <code>FreeCave(featureName)</code></li> <li><code>RegisterSymbol(name, address)</code> / <code>GetSymbolAddress(name)</code></li> <li><code>AllocateVariable<T>(symbolName, initialValue)</code></li> <li><code>InjectJMP(source, destination, totalLengthToNop)</code></li> <li><code>ReturnEarly(address)</code></li> <li><code>WriteMemory(address, data)</code></li> <li><code>RemoveHook(featureName)</code> / <code>RemoveAll()</code></li> </ul> </li> </ul> </details>

<details> <summary><b>📁 Game</b></summary> <ul> <li><b>EntityManager.cs</b> <ul> <li><code>Entity</code> (Address, Health, X, Y, Z)</li> </ul> </li> <li><b>GameFunctionCaller.cs</b> <ul> <li><code>CallVoidFunction(functionAddress)</code></li> </ul> </li> <li><b>ViewMatrix.cs</b> <ul> <li><code>WorldToScreen(pos, out screenPos, width, height)</code></li> <li><code>MatrixSettings</code> (IsColumnMajor, IsZeroToOneRange, InvertY)</li> </ul> </li> </ul> </details>

<details> <summary><b>📁 Internal</b></summary> <ul> <li><b>InternalHooking.cs</b> <ul> <li><code>ApplyStandardHook<T>(targetAddress, detourDelegate)</code></li> <li><code>ApplyCodeCave(caveName, hookAddress, bytesToOverwrite, buildCaveCode)</code></li> <li><code>ApplyEventCave(name, hookAddress, bytesToOverwrite, buildAsm, onTrigger)</code></li> <li><code>SharedMemoryBridge</code> (Read, ResetFlag)</li> </ul> </li> </ul> </details>

<details> <summary><b>📁 Overlay</b></summary> <ul> <li><b>ESP.cs</b> <ul> <li><code>ESP.Launch()</code></li> <li><code>EnemyScreenData</code> (HeadPos, FeetPos, Distance, BoxColor, CustomText)</li> <li><code>EspData</code> (LockObject, Enemies)</li> </ul> </li> </ul> </details>


🚀 Usage Examples

-------------------------------- Initialization & Offset Resolution --------------------------------

using MemoryEngine;
using MemoryEngine.Core;

// 1. Setup OffsetManager
var offsets = new OffsetManager();
offsets.AddPointerChain("Health", "ac_client.exe", (IntPtr)0x109B74, new int[] { 0xF8 });
offsets.AddModuleRelative("LocalPlayer", "ac_client.exe", (IntPtr)0x109B74);

// 2. Attach Engine
using var engine = new Engine("ac_client");

// 3. Resolve & Read
IntPtr healthAddr = offsets.Resolve("Health", engine);
int health = engine.ReadInt(healthAddr);

// Write back
engine.WriteInt(healthAddr, 100);

-------------------------------- ESP --------------------------------

using System.Drawing;
using System.Numerics;
using MemoryEngine.Overlay;

// Launch Hardware Overlay Thread
ESP.Launch();

// Game Loop: Push rendered frames
var list = new List<EnemyScreenData>
{
    new EnemyScreenData
    {
        HeadPos = new Vector2(960, 300),
        FeetPos = new Vector2(960, 500),
        Distance = 12.5f,
        BoxColor = Color.Red,
        CustomText = "Enemy"
    }
};

lock (EspData.LockObject)
{
    EspData.Enemies = list;
}

⚠️ Disclaimer & Limitation of Liability

Educational Purposes Only: This software ("MemoryEngine") is provided solely for educational, research, and reverse-engineering purposes, as well as for single-player application modifications.

No Liability: In no event shall the author(s) or copyright holder(s) be liable for any claim, damages, or other liability—whether in an action of contract, tort, or otherwise—arising from, out of, or in connection with the software or the use or other dealings in the software.

Risk of Misuse & Account Bans: The user assumes full responsibility for any actions taken with this library. The author does not endorse, encourage, or condone the use of this software in online competitive environments, anti-cheat protected software, or any commercial products. The author is strictly not responsible for any account bans, hardware ID bans, financial losses, or software instability resulting from the use or misuse of this code.

📜 License

Licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net8.0-windows was computed.  net9.0-windows was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.0 85 10/12/2026
1.4.9 89 10/11/2026
1.4.8 92 10/7/2026
1.4.7 95 10/7/2026
1.4.6 106 10/2/2026
1.4.5 107 10/2/2026
1.4.4 93 10/2/2026
1.4.2 101 10/2/2026
1.4.1 99 10/2/2026
1.4.0 94 10/2/2026
1.3.2 224 6/29/2026
1.3.1 135 6/28/2026
1.3.0 131 6/27/2026
1.1.1 146 6/27/2026