private void UpdateDataDirectories()
{
var relocDirectory =
Assembly.NtHeaders.OptionalHeader.DataDirectories[ImageDataDirectory.BaseRelocationDirectoryIndex];
if (_relocSectionBuilder == null)
{
relocDirectory.VirtualAddress = 0;
relocDirectory.Size = 0;
}
else
{
relocDirectory.VirtualAddress = _relocSectionBuilder.Header.VirtualAddress;
relocDirectory.Size = _relocSectionBuilder.Header.VirtualSize;
}
var netDirectory =
Assembly.NtHeaders.OptionalHeader.DataDirectories[ImageDataDirectory.ClrDirectoryIndex];
netDirectory.VirtualAddress = (uint)Assembly.FileOffsetToRva(Assembly.NetDirectory.StartOffset);
netDirectory.Size = Assembly.NetDirectory.GetPhysicalLength();
}