Skip to content

Libmem.NET v2.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:07
f38eb28

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.PatchedBytes against x64 instruction boundaries using a generated 10-byte + 5-byte instruction sequence.
  • Verify failed HookManager.Install is atomic: it throws LibmemException("LM_HookCodeEx"), exposes no handle, and leaves source bytes/behavior unchanged.
  • Harden remote HookHandle.Remove by preflighting the full trampoline read before the pinned LM_UnhookCodeEx path; failed removal preserves source protection and ownership for retry.
  • Add VMT restore-failure retry coverage so failed Reset / Dispose keeps 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.md
  • Ijwhost.dll
  • LICENSE
  • Libmem.NET.dll
  • Libmem.NET.pdb
  • Libmem.NET.xml
  • MIGRATION.md
  • THIRD_PARTY_NOTICES.md
  • VERSION
  • libmem.dll
  • manifest.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.