Skip to content

Libmem.NET v2.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:54
036556f

Libmem.NET v2.4.1 is a Windows x64/x86 / .NET 8 official release of the reusable C++/CLI wrapper around the pinned rdbo/libmem native library.

Release highlights

Fixed

  • Keep AssemblyManager.ReadAlignedCode reliable when complete instructions end at a readable page boundary followed by PAGE_NOACCESS; use bounded partial-read decoding without changing CodeLength.
  • Reject stale process identities (PID plus process start time) before remote memory allocation/free, page protection, Hook installation, and module load/unload. Align static and session-Manager paths; add deterministic external-process regression coverage.
  • Make the failed HookHandle.Remove external-process trampoline regression deterministic by setting the still-allocated trampoline page to PAGE_NOACCESS, rather than relying on a freed address staying unreadable.

Compatibility and limitations

  • Compatible 2.4.x maintenance only: unchanged Public API, native libmem revision, Windows x64/x86 / .NET 8 targets, multi-architecture NuGet layout, and existing Hook/VMT/Injector APIs.
  • Process-identity preflights reduce stale-PID risk but do not make native PID-only calls atomic: target exit or PID reuse between validation and the native call remains possible. No handle-bound native redesign is included.
  • No ARM64, AnyCPU, cross-bitness or game-specific features are 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.4.1.nupkg — one PackageReference package carrying both architectures; nuget.org publication is a separate step

x64 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

x86 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

  • x64 archive SHA-256: 847d696319c783f56b713d40b7ac41ffa3d5a930a265f7ec542eaca91c8a990e
  • x86 archive SHA-256: f1c65e651d3271ed6fc6ca086f748f17a57a5b8561363b66535f8bfdee13ff05
  • Repository commit: 036556f6a508edee9401fe02fe0a8f7cdca39083
  • 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.