Skip to content

4.6.0

Choose a tag to compare

@Washi1337 Washi1337 released this 26 May 15:31
· 1354 commits to master since this release
c27eb8b

New Features:

  • Replace IBinaryStreamReader classes with stack allocated BinaryStreamReader structs, reducing memory consumption by up to 40% (#136, #166).
  • Added concept of IFileServices and IInputFiles. This allows for memory mapped I/O on input binaries as well as caching of previously read PE files. This vastly reduces the memory consumption on reading large PE files and resolving dependent dll files (#115, #174).
  • Revisited representation of raw CIL method bodies, which reduces the memory consumption of the reader significantly when dealing with large method bodies that have megabytes worth of code in them (#171, #180)
  • Add rich read/write support for VTable entries in the .NET data directory (#63, #173, thanks @Anonym0ose)
  • Add support for reading PEs and modules from a HINSTANCE / module base address (#177).
  • Add read/write support for function pointer (FnPtr) type signatures (#167, #172)
  • Add shortcut method MethodSignature.MakeFunctionPointerType (655adc8)
  • Add shortcut method BlobSignature.MakeStandAloneSignature (08e510e)
  • Add ManifestResource.GetReader method (#161, thanks @JPaja).
  • Add PropertyAttributes.None (#170, thanks @oSumAtrIX)
  • Add support for unmanaged calling convention method signatures (a58b4c9)
  • Add support for managed entrypoints defined in a separate child module (975bda9)
  • Various improvements in reader and writer diagnostics.

Bug Fixes:

  • Importing corlib TypeDefinitions as signature now properly converts to CorLibTypeSignature instances instead of TypeDefOrRefSignature (#160)
  • Fixed a bug where a NullReferenceException would be thrown when trying to resolve .NET Core dependencies, while running AsmResolver using a .NET Framework host (695235e).
  • Set default hash algorithm for assemblies to SHA1, preventing all kinds of problems with invalid / incomplete metadata (a9f5eda)
  • Fixed incorrect column type in MethodSpec's Method column (afcb7a1).
  • Fixed an error where the scope of a parsed type from string was not set properly if the type refers to a type in the same module (d18fa67).
  • Fixed a bug where OptimizeMacros would crash if the unaligned prefix opcode was present in the method body (7b8e269).
  • Fixed a bug where ldc.i4.s and similar instructions would have the wrong operand set after calling Add(CilOpCode, int) (ad77103)
  • Fixed a bug where certain new metadata members (e.g. type references) that were manually assigned a metadata token using the TokenAllocator would not appear in the final binary (#175, #176).
  • Fixed a bug where assembly linked resources would be parsed incorrectly and throw exceptions on writing (7fe14d5)