Repository navigation
Libmem.NET v2.1.0
Libmem.NET v2.1.0 is a Windows x64 / .NET 8 official release of the reusable C++/CLI wrapper around the pinned rdbo/libmem native library.
Release highlights
Hook / VMT hardening
- Preserve the Libmem.NET 2.0.0 Public API baseline while tightening managed Hook/VMT argument, state, ownership, and failure contracts.
- Add real external-process Hook lifecycle coverage for installation, redirection, trampoline execution, explicit removal, target exit, and ownership convergence.
- Validate
HookHandle.PatchedBytesagainst x64 instruction boundaries using a generated 10-byte + 5-byte instruction sequence. - Verify failed
HookManager.Installis atomic: it throwsLibmemException("LM_HookCodeEx"), exposes no handle, and leaves source bytes/behavior unchanged. - Harden remote
HookHandle.Removeby preflighting the full trampoline read before the pinnedLM_UnhookCodeExpath; failed removal preserves source protection and ownership for retry. - Add VMT restore-failure retry coverage so failed
Reset/Disposekeeps bookkeeping until restoration can succeed. - Expand Hook/VMT XML IntelliSense and API documentation, and add a buildable x64 Hook lifecycle consumer sample with CI execution.
- Document that duplicate/overlapping code-hook coordination and relative-control-flow trampoline safety remain caller/pinned-libmem responsibilities; 2.1.0 does not add a managed conflict registry or relocation engine.
- Keep Mono/Unity/game-specific patch systems and official x86 release support outside the 2.1.0 scope.
Platform and compatibility
- OS / architecture: Windows x64
- Managed runtime: .NET 8
- Native backend: pinned rdbo/libmem revision
- x86: retained only as deferred/best-effort source compatibility; no x86 asset is published by this release
Downloads
- Libmem.NET-windows-x64.zip — runtime package for Windows x64
- Libmem.NET-windows-x64.zip.sha256 — SHA-256 checksum for the runtime archive
- Libmem.NET.2.1.0.nupkg — exact-version package for a local NuGet feed; nuget.org publication is a separate step
Package contents
CHANGELOG.mdIjwhost.dllLICENSELibmem.NET.dllLibmem.NET.pdbLibmem.NET.xmlMIGRATION.mdTHIRD_PARTY_NOTICES.mdVERSIONlibmem.dllmanifest.json
Integrity and provenance
- Archive SHA-256:
879a4adcb433de3e6872501766a060b87cdcd3a6c6770419cfabd8a462cc7333 - Repository commit:
f38eb2810b9b7823ba0fd921372e506bdae07ceb - Pinned libmem commit:
a07c9942bf1358dabcc83eb0cd072736c749d7f8 - The runtime manifest records each packaged file's size and SHA-256.
- Release publication verifies the package version, repository commit, platform, configuration, archive contents, and checksum 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.