public void EIL_Load() { var el = new ElfImageLoader(sc, "foo", rawImg); el.LoadElfIdentification(); var lr = el.LoadProgram(Address.Ptr32(0)); Assert.AreSame(arch.Object, lr.Architecture); }
public override Program LoadProgram(Address?addrLoad) { var sr = new StructureReader <MorphosHeader>(new BeImageReader(this.RawImage)); var hdr = sr.Read(); var embeddedElfImage = new byte[this.RawImage.Length - hdr.ElfOffset]; //$PERF: this is a prime candidate for Span<T> Array.Copy(this.RawImage, hdr.ElfOffset, embeddedElfImage, 0, embeddedElfImage.Length); this.elfLdr = new ElfImageLoader(this.Services, this.ImageLocation, embeddedElfImage); var program = elfLdr.LoadProgram(addrLoad); return(program); }