Skip to content

Releases: CardResearchLab/Libmem.NET

Libmem.NET v2.5.0

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.

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.

Libmem.NET v2.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 19:15
e73393d

Libmem.NET v2.4.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 read-only AssemblyManager.ReadAlignedCode to inspect complete target instructions with explicit short-read protection.
  • Add SymbolManager.TryFindAddress for ordinary not-found results while preserving FindAddress's existing native sentinel contract.
  • Exercise both features in self-process and external-process runtime tests.
  • Add 2.4 API argument/identity regression coverage and independent NuGet consumer API checks.
  • Demonstrate native symbol discovery and read-only instruction inspection in C# consumer samples.

Compatibility

  • No native ABI upgrades or 2.x breaking changes; x64/x86 remain the only supported targets.

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.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: 40c8200010302c4ffc0cf3b227f1e531bd2258d71cb4f38a1dcee480a579225d
  • x86 archive SHA-256: 7436940c8580ade544c0987035fc0a0c9365b4766d733c99dbe2f6d69c154eb9
  • Repository commit: e73393d9805862db32c4e58dba1eadd91a191e56
  • 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.

Libmem.NET v2.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 16:13
561bf1d

Libmem.NET v2.3.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

  • Extend MemoryManager with ReadInt64 / WriteInt64 and target-bitness-aware ReadPointer / WritePointer for Windows x64/x86 consumers.
  • Cover new typed memory operations in self-process and external-process runtime tests.
  • Add an executable pinned native-API audit: 71 C functions reviewed, 69 direct wrapper references, and two documented managed command-line workarounds.

Compatibility

  • Add managed API members without changing existing 2.2.1 signatures, pinned libmem revision, or supported Windows x64/x86 targets. No ARM64 or cross-platform change.

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.3.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: 739072f66b1ac48445d4ce4b2678ead54869665bb2dd56401362665fe45f145b
  • x86 archive SHA-256: 8d1be9577511da23265bde8f1792f32b5f811e79f0bac7b5505d19e320cc7359
  • Repository commit: 561bf1dfa82b7df2da4dc649a016c103f3af71ff
  • 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.

Libmem.NET v2.2.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 12:14
5e2b051

Libmem.NET v2.2.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

  • Prevent duplicate Release workflow runs for the same ref from publishing concurrently; preserve duplicate-package safeguards.
  • Enable architecture-selectable x64/x86 manual Hook/VMT and Injector diagnostic workflows.
  • Report existing-but-unloadable DLL injection as LM_LoadModuleEx failure rather than a successful-enumeration LM_EnumModulesEx failure.
  • Recover the omitted final legal scan candidate for DataScan, PatternScan, and SigScan, including exact-size windows; reject address-width range wrap.
  • Reject unsupported explicit NuGet PlatformTarget values (including AnyCPU and arm64) instead of silently falling back to Platform.

Compatibility

  • Preserve the 2.2.0 Public API, pinned native libmem revision, and Windows x64/x86 package layout.
  • ARM64 and AnyCPU remain unsupported; x64/x86 consumers must select a supported architecture.
  • This patch release does not add ARM64 or change the supported Public API; publish only after exact-version release validation.

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.2.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: 91e68be67390dea91b7a833dd9f57db0069a594b920bce3fdcd9691d813503c5
  • x86 archive SHA-256: 5637858b687b7af45ab409da39e2f8262e500da0e7407af955da2d768f446cd5
  • Repository commit: 5e2b051a61943d0ac0825b2ac0125ffb29cf1721
  • 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.

Libmem.NET v2.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 21:17
fefc081

Libmem.NET v2.2.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

Platform support

  • Promote Windows x86 to a first-class supported release architecture alongside Windows x64 on .NET 8.
  • Add required x86 CI coverage for smoke, Hook/VMT, Injector, runtime packaging, and architecture-aware external-process tests.
  • Make the external-process TestTarget architecture-aware with isolated x64/x86 machine-code fixtures and an explicit extension seam for future ARM64 work.
  • Package x64 and x86 C++/CLI assemblies plus matching native runtimes in one NuGet package, selecting assets from explicit Platform / PlatformTarget and rejecting AnyCPU.
  • Extend formal Release output to include x64 and x86 runtime ZIPs/checksums plus one verified multi-architecture NuGet package.

Compatibility

  • Preserve the 2.1.1 Public API and pinned rdbo/libmem revision; 2.2.0 does not intentionally introduce managed API breaking changes.
  • Require consumers to select x64 or x86 explicitly. AnyCPU and cross-bitness operation remain unsupported.
  • Keep ARM64 outside the 2.2.0 production support scope while preserving architecture-neutral shared packaging/test structure for later enablement.

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.2.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: 57615efad451832584c510e83ff60656c8e6d81a241bd1d8d288d56e6f19eff3
  • x86 archive SHA-256: dbf07c4047f61505e95ca45f5a3cc0e93802bda933ac6713269c49220fa9e94e
  • Repository commit: fefc0819d6b1c62a00f469ad64f98c64c4accc0f
  • 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.

Libmem.NET v2.1.1

Choose a tag to compare

@github-actions github-actions released this 07 Oct 16:17
6a03b9c

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

Release highlights

Fixed

  • Reject the libmem bad-address sentinel in VmtManager construction before native VMT state is retained, matching the managed Hook/VMT argument contract and preventing an invalid VTable base from being accepted.
  • Add regression coverage for the invalid VTable sentinel and source-contract checks that keep the guard in place.
  • Lock the post-disposal VMT contract with runtime/source checks for Hook, Unhook, GetOriginal, and Reset, including disposed-state precedence over replacement-address validation.
  • Work around the pinned LM_VmtUnhook untracked-index protection leak: idempotent VmtManager.Unhook now skips the native call when no hook entry exists, preserving the VTable page's original protection, with runtime regression coverage.
  • Record and close the post-release delivery gap: an initial nuget.org-only restore exposed only 2.0.0, then 2.1.0 was published and adopted as the public-NuGet smoke baseline.
  • Refresh post-release README, roadmap, consumption, release-status, and package metadata; advance the automatic public-NuGet smoke baseline to 2.1.0 before the 2.1.1 publication.

Compatibility

  • Preserve the 2.1.0 Public API and pinned rdbo/libmem revision.
  • Keep Windows x64 / .NET 8 as the official support and release target.

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.1.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: 54ac1076da14de7f3260696bb7a7ac2cee9ce57b07b6046d3bc6db9cdfbe4bee
  • Repository commit: 6a03b9c8bd27950492416f23e70bae3da6fd052a
  • 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.

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.

Libmem.NET v2.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 21:30
792ddb2

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

Release highlights

Stable release

  • Promote the validated 2.0.0-preview.1 line to the first stable release under the Libmem.NET identity.
  • Preserve the public API baseline, native ABI mapping, ownership model, exception behavior, runtime layout, and pinned rdbo/libmem revision from the validated preview.
  • Keep the official support target at Windows x64 / .NET 8; x86 remains outside the supported Release and NuGet scope.

Documentation / Packaging

  • Add a NuGet-specific bilingual package README with English as the primary language and a complete Simplified Chinese translation.
  • Update NuGet package description and bilingual English/Chinese release notes for 2.0.0.
  • Verify that the packaged README contains both English and Simplified Chinese sections.
  • Retain the split release safety model: release branches dry-run exact artifacts, tags create GitHub downloads, and NuGet publication remains an explicit manual Trusted Publishing step.

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.0.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: 3259515a6bdc14db203f01b13d8c388ed611464c2334f8487272b26cd8aed30f
  • Repository commit: 792ddb206157a3f516785d14774d4c1eb3957c94
  • 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.

Libmem.NET v2.0.0-preview.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 12:32
d7af803

Libmem.NET v2.0.0-preview.1 is a Windows x64 / .NET 8 preview release of the reusable C++/CLI wrapper around the pinned rdbo/libmem native library.

Release highlights

Breaking identity migration

  • Unified the managed namespace, assembly, solution/project names, test projects and runtime assets as Libmem.NET; the NuGet PackageId remains Libmem.NET.
  • Existing LibmemCli consumers must update references, namespaces, paths and reflection strings, then recompile. See docs/MIGRATION.md.
  • Preserved public member signatures, native ABI mapping, ownership, exception behavior and the pinned native dependency. Static facade calls use an explicit type alias to avoid the new root namespace collision.
  • Corrected runtime manifest provenance to CardResearchLab/Libmem.NET.
  • Consolidated automatic PR validation into Build, including Release x64 by default, optional manual Debug, all runtime suites and local NuGet restore/run/publish. Specialized workflows retain manual entry points.

Release preparation

  • Bumped the major version because the already released LibmemCli v1.0.0 namespace and assembly identity are not binary compatible with Libmem.NET. Consumers must rebuild; renaming a DLL is insufficient.
  • Set VERSION and informational version to 2.0.0-preview.1; numeric assembly/file versions are 2.0.0.0.
  • Enabled prerelease version validation for runtime manifests, NuGet packaging and formal Release Notes; GitHub Release publication marks preview tags as prereleases.
  • Included the changelog and migration guide in runtime ZIP and NuGet packages. Build artifacts include an exact-version Libmem.NET.2.0.0-preview.1.nupkg for local-feed acceptance.
  • Separated GitHub downloads from nuget.org publication. NuGet Trusted Publishing is explicitly invoked after the GitHub release and account setup are ready.
  • Updated assembly company metadata to CardResearchLab and NuGet author attribution to xiaohei7972. Updated repository URLs, reusable workflow references, manifest provenance, and publishing setup for the renamed organization.

This section prepares the preview; it does not claim that a release tag, downloadable release or nuget.org package has already been published. The existing v1.0.0 tag and assets remain unchanged.

CI and documentation follow-up

  • Default automatic Build validation to Release x64; retain every Release runtime, example, consumer and package check. Manual workflow_dispatch can additionally enable Debug x64 build and smoke tests through debug.
  • Restrict GitHub Release creation to tags and NuGet OIDC login/push to an explicit manual run on an existing published tag. release/v* branches validate artifacts and render notes without publishing or deleting branches.
  • Consolidate the unfinished documentation from #70 and release readiness work from #75: concise bilingual README, release/versioning guide, historical v1.0.0 notes and a checklist for the next release. Keep historical LibmemCli assets distinct from the current Libmem.NET identity.

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.0.0-preview.1.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: 89e1b7f6d4159b1bc7a179abf2ca5311d1af1bcf057ac031719f094c7a6d9c2e
  • Repository commit: d7af803601ffae735ae5794b89a5864d8cdcb4f5
  • 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.