Skip to content

Libmem.NET v2.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 18:57
190ed68

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, TryPatternScan and TrySigScan with boolean match results and out UInt64 addresses (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) and TryWrite(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 pinned LM_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, Read and Write contracts, 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.0 for 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.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: 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.