JCL.Memory
0.2.0
dotnet add package JCL.Memory --version 0.2.0
NuGet\Install-Package JCL.Memory -Version 0.2.0
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="JCL.Memory" Version="0.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JCL.Memory" Version="0.2.0" />
<PackageReference Include="JCL.Memory" />
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 JCL.Memory --version 0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JCL.Memory, 0.2.0"
#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 JCL.Memory@0.2.0
#: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=JCL.Memory&version=0.2.0
#tool nuget:?package=JCL.Memory&version=0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
🧠 JCLM — Lightweight External Memory Library
JCLM is a simple and lightweight C# library for external process memory reading and writing — similar to Swed32/Swed64 — built for .NET 8.0
✨ Features
- Attach to 32-bit or 64-bit processes by name or PID
- Read and write primitive types, structs, and byte arrays
- Read pointer chains
- Scan for AoB (Array of Bytes) patterns
- Safe resource cleanup with
IDisposable - Easy to use and fully managed C#
🚀 Installation
You can install JCLM via NuGet:
dotnet add package JCL.Memory
Usage
using JCLM;
// Attach to process (by name or PID)
JCLM jcl = new JCLM("game.exe", true); // true = 64bit | false = 32bit
// Get module base
IntPtr client = jcl.GetModuleBase("client.dll");
// Read values
int health = jcl.ReadInt32(client + 0x123456);
float posX = jcl.ReadFloat(client + 0x654321);
// Write values
jcl.WriteInt32(client + 0x123456, 1337);
// Read pointer chain
IntPtr localPlayer = jcl.ReadPointerChain(client + 0x123456, 0x10, 0x20, 0x30);
// Scan for an AoB pattern
IntPtr patternAddress = jcl.PatternScan(
module: Process.GetProcessesByName("game")[0].Modules[0],
pattern: new byte[] { 0xDE, 0xAD, 0xBE, 0xEF },
mask: "xxxx"
);
// Dispose safely when done
jcl.Dispose();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos 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.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed class naming and minor code cleanup.