From 7ae8ab9b9b674d00707e5f7f8e7c2f250ae4fe5c Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 8 Dec 2019 03:54:34 -0500 Subject: [PATCH] actually supply the ExecutableObjectModel with section data --- .../Executable/ELF/ELFDataFormat.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.Executable/DataFormats/Executable/ELF/ELFDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.Executable/DataFormats/Executable/ELF/ELFDataFormat.cs index 00cbc37e..820a716e 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.Executable/DataFormats/Executable/ELF/ELFDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.Executable/DataFormats/Executable/ELF/ELFDataFormat.cs @@ -227,8 +227,29 @@ namespace UniversalEditor.DataFormats.Executable.ELF } br.Accessor.Position = pos; } + + + for (int i = 0; i < sections.Count; i++) + { + ExecutableSection sect = new ExecutableSection(); + sect.PhysicalAddress = sections[i].offset; + sect.VirtualSize = sections[i].size; + sect.DataRequest += sect_DataRequest; + exe.Sections.Add(sect); + } } + private void sect_DataRequest(object sender, DataRequestEventArgs e) + { + ExecutableSection sect = (sender as ExecutableSection); + if (sect == null) + return; + + Accessor.Reader.Seek(sect.PhysicalAddress, SeekOrigin.Begin); + e.Data = Accessor.Reader.ReadBytes(sect.VirtualSize); + } + + protected override void SaveInternal(ObjectModel objectModel) {