Skip to content

6.1.0

Latest

Choose a tag to compare

@Washi1337 Washi1337 released this 06 Nov 15:58

This version main highlights are read/write support for PE loader configuration data directories and more support for legacy workflows for Silverlight processing. Additionally, lookup of .NET metadata should also see a good increase in performance when building / processing larger .NET binaries. Finally, as usual, this release comes with a variety of bug fixes across the board.

New Features

  • Add PE load configuration data directory parsing and writing support (#787)
  • Add legacy Silverlight 4 and 5 assembly resolution mechanisms (#777, #779, thanks @SychicBoy)

Improvements

  • Base relocations are now deduplicated by default when reassembling PEs (#787)
  • Add missing PortablePDB debug data types (#781, thanks @Sergio0694)
  • Significantly improve type lookup performance by namespace+name (#794, thanks @Sergio0694)
  • Mark TypeSignature::Name as non-nullable (#771, thanks @ds5678)
  • Add more diagnostic data sources when copying metadata from existing tables streams (3f240b4)
  • DotNetCorePathProvider now prefers DOTNET_ROOT installations of the runtime/SDK to better reflect the behavior of the loader (#797, thanks @Windows10CE).
  • AsmResolver no longer propagates IsExternalInit as a dependency (#785, thanks @Windows10CE)
  • Add TryReadX methods to BinaryStreamReader (775a3a8)

Bug Fixes

  • Fix an issue where the ordinal-name-table of export data directories would not be sorted as expected by the Windows PE Loader (#795)
  • Fix DebugDataType::FPO to the correct value (#781, thanks @Sergio0694)
  • Fix an issue where RSDS debug data segments with non-ASCII characters were not measured correctly, silently overriding bytes that were put after it and thus corrupting the final output PE (#772, #780)
  • Fix an issue where adding string literals to #US streams larger than 24-bit boundary would silently consume the literal and return invalid metadata tokens (#775, #776, thanks @Guflly)
  • Fix an issue where using TypeSignature::GetDirectBaseClass would throw a NullReferenceException if the type was not added to a context module (#770, #778)
  • Fix an issue where fields with enum FieldRVA data would not be read properly (#788, thanks @SychicBoy)
  • Fix an issue where invalid or unsupported corlib references are ignored when detecting the target runtime of a .NET module (#790, #791, thanks @SychicBoy)
  • Fix an issue where input file paths were not resolved to full paths before being adding to caches and exposed through PEFile::FullPath and friends (d9f587b)
  • Fix an issue in stack balance calculation for void-returning methods marked as runtime-async (4f10c8b)