Skip to content

Releases: MonoMod/MonoMod

v20.11.16.01

16 Nov 22:26
afeba6d
Compare
Choose a tag to compare

Detour

  • When applying a Detour, apply the top native detour after the detour chain has been built.
    • This changes the "method gets called while being hooked" race condition behavior from "fail hard with 'chain not ready' message" to "passthrough to original method temporarily."

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.11.05.01

05 Nov 17:56
1775ec9
Compare
Choose a tag to compare

Utils

  • Call dlerror at least once in DynDll to fix false result on first user call (Thanks, @denikson!).

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.08.28.01

05 Nov 14:30
59434ba
Compare
Choose a tag to compare

Utils

  • Allow PlatformHelper.Current to be set externally (Thanks, @bbepis!).

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.08.03.05

03 Aug 10:11
7b5c8c2
Compare
Choose a tag to compare

Utils

  • Fix a part of Harmony#297.
  • Allow giving DynamicMethodDefinitions fully manual names.
  • Attach volatile optional modifier on runtime parsed method body field references.
  • Merge @nike4613's resolve fallback: Added fallback when resolving tokens in DMD.CopyMethodToDefinition to let it pull from the target module's metadata table if the target could not be found.
  • Merge @denikson's corlib_internal hack fix - dynamic_method can be an UIntPtr.
  • Merge @denikson's "unopened" generic type import fix.
  • Merge @denikson's DynDll improvement - Win32 funcs can raise an "error" and return a valid return value.
  • (Internal) DynDll is now part of MonoMod.Common.

Patcher

  • Fix retrying to read the input stream.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.05.21.05

23 May 11:40
5d8210d
Compare
Choose a tag to compare

General

  • Add basic debug logging
    • Enabled via MONOMOD_DBGLOG environment variable
    • Path can be changed via MONOMOD_DBGLOG_PATH, defaults to mmdbglog
    • Enabled by default for DebugTrace and ReleaseTrace builds

Utils

  • Make ResolveReflection handle multiple assemblies with the same name in one AppDomain.
  • Implement support for multiple mappings for DynDll and other fixes (Thanks, @bbepis!).

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.05.14.01

17 May 11:11
2aaf57f
Compare
Choose a tag to compare

RuntimeDetour

  • JMPs are signed, so treat the JMP offset properly as well. Fixes OverflowException on certain NGEN'd methods.
  • Update and enable NGEN fix for Linux and macOS.

Utils

  • Add GetStateMachineTarget extension method.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.05.07.01

07 May 16:45
11f35df
Compare
Choose a tag to compare

RuntimeDetour

  • Fix regression (inexplicable StackOverflowException) caused by hooking ThePreStub by accident.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.05.06.05

07 May 12:05
8354261
Compare
Choose a tag to compare

HookGen

  • Improve generic return / argument type handling.

RuntimeDetour

  • "Parse" some .NET JIT stubs, required to hook NGEN'd methods.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.05.02.05

02 May 11:40
b4c4869
Compare
Choose a tag to compare

General

  • Add conditional netcoreapp5.0 testing.
  • Re-enable Azure Linux mono tests.

Utils

  • Fix ILGeneratorProxy containing "invalid" IL and being unable to access MonoMod.Utils' internals on some runtimes.
  • Make RuntimeILReferenceBag FastDelegateInvokers take arg, ret and byref into account.
  • Implement DynamicData (dynamic DynData) for .NET 4.0+
  • Fix GetLdftnPointer, use it for virtual struct methods on .NET

RuntimeDetour

  • Implement DynamicHookGen for .NET 4.0+

Patcher

  • Prevent the patcher from accidentally importing the patcher's runtime's mscorlib as a reference to the patched assembly.
  • Handle member and custom attribute list updates in the post processing pass more gracefully.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release

v20.04.03.01

03 Apr 16:58
231fd2a
Compare
Choose a tag to compare

Utils

  • Fix DynData being unable to set properties.
  • Make DynData safe to use with old versions of mono which still replicate CLR V1 weak reference implementation details.
  • Make ILGenerator proxies safe to use when MonoMod.Utils has been loaded manually (bypassing assembly resolving).
  • Prevent DynData from blocking AppDomain unloads and from keeping AssemblyLoadContexts alive.

RuntimeDetour

  • Properly dispose DetourModManager's ILHook event handlers.

NuGet: Patcher | Utils | RuntimeDetour | HookGen
Azure DevOps Pipelines: Build | Release