Repository navigation
Libmem.NET v2.5.0 is a Windows x64/x86 / .NET 8 official release of the reusable C++/CLI wrapper around the pinned rdbo/libmem native library.
Release highlights
Added
- Add session-bound
ScanManager.TryDataScan,TryPatternScanandTrySigScanwith boolean match results andout UInt64addresses (zero on a normal miss), avoiding architecture-dependent bad-address sentinel checks in consumers. - Cover x64/x86 scan hits, misses, exact-window final candidates, invalid inputs and detached sessions in the runtime smoke suite.
- Add session-bound
MemoryManager.TryRead(address, count, out data)andTryWrite(address, data, out bytesWritten): the boolean indicates a full transfer, while outputs retain partial read bytes / actual written byte counts. - Cover complete, zero-length and page-boundary incomplete operations, argument errors, detached sessions, external-process round trips and local NuGet consumers on x64/x86.
Fixed / hardened
- Preflight trampoline readability before the static local-process
HookHandle.Remove()path enters pinnedLM_UnhookCode, so an unreadable trampoline does not produce a false successful removal and discard the handle. Preserve live ownership, source bytes and page protection for retry. - Add deterministic VMT multi-entry partial-reset regression: a readable tracked slot is restored first, an inaccessible slot fails with ownership retained, and retry restores the remaining slot after recommit. No native VMT implementation change.
Compatibility
- Preserve existing
DataScan,PatternScan,SigScan,ReadandWritecontracts, pinned native libmem, Windows x64/x86 / .NET 8 support and existing public API signatures. The new methods are additive and are not available in the published 2.4.1 package. - Version metadata is advanced to
2.5.0for candidate verification; GitHub Release and nuget.org publication require separate explicit release gates. No ARM64, AnyCPU, cross-bitness, Linux/macOS, or game-specific functionality is added.
Platform and compatibility
- OS / architectures: Windows x64 and Windows x86
- Managed runtime: .NET 8
- Native backend: pinned rdbo/libmem revision
- AnyCPU: not supported; consumers must select x64 or x86 explicitly
Downloads
- Libmem.NET-windows-x64.zip — runtime package for Windows x64
- Libmem.NET-windows-x64.zip.sha256 — SHA-256 checksum for the x64 archive
- Libmem.NET-windows-x86.zip — runtime package for Windows x86
- Libmem.NET-windows-x86.zip.sha256 — SHA-256 checksum for the x86 archive
- Libmem.NET.2.5.0.nupkg — one PackageReference package carrying both architectures; nuget.org publication is a separate step
x64 package contents
CHANGELOG.mdIjwhost.dllLICENSELibmem.NET.dllLibmem.NET.pdbLibmem.NET.xmlMIGRATION.mdTHIRD_PARTY_NOTICES.mdVERSIONlibmem.dllmanifest.json
x86 package contents
CHANGELOG.mdIjwhost.dllLICENSELibmem.NET.dllLibmem.NET.pdbLibmem.NET.xmlMIGRATION.mdTHIRD_PARTY_NOTICES.mdVERSIONlibmem.dllmanifest.json
Integrity and provenance
- x64 archive SHA-256:
48d292938580a7b5284c6f9a665be9c14a2b35243e91c5d4c3e6423be94347aa - x86 archive SHA-256:
07a45b98d90de8142a152de3b6f20c9c04c9295e738eaaafee1b8cb7131b2f3e - Repository commit:
190ed68e3d420932e19a724edfdc0e9482518e14 - Pinned libmem commit:
a07c9942bf1358dabcc83eb0cd072736c749d7f8 - Both runtime manifests record each packaged file's size and SHA-256.
- Release publication verifies both package versions, repository commit, platform, configuration, archive contents, and checksums before upload.
Documentation
Libmem.NET remains a general-purpose libmem wrapper. Application snapshots, caches, game state, IPC, and other product-specific models belong in consuming projects.