public virtual PeImageLoader CreatePeImageLoader() { ExeImageLoader mz = new ExeImageLoader(Services, Filename, RawImage); PeImageLoader pe = new PeImageLoader(Services, Filename, RawImage, mz.e_lfanew); return(pe); }
public void Setup() { this.writer = null; this.exeLoader = null; this.offNames = -1; this.arch = new X86ArchitectureReal("x86-real-16"); }
public void ValidateImage() { MemoryArea rawImage = new MemoryArea(Address.SegPtr(0x0C00, 0), CreateMsdosHeader()); ExeImageLoader exe = new ExeImageLoader(null, "foo.exe", rawImage.Bytes); Assert.IsTrue(PkLiteUnpacker.IsCorrectUnpacker(exe, rawImage.Bytes)); }
public void Setup() { this.writer = null; this.exeLoader = null; this.offNames = -1; this.arch = new X86ArchitectureReal(new ServiceContainer(), "x86-real-16", new Dictionary <string, object>()); }
public void Setup() { this.writer = null; this.exeLoader = null; this.offNames = -1; this.arch = new X86ArchitectureReal(new ServiceContainer(), "x86-real-16"); }
public void ValidateImage() { ByteMemoryArea rawImage = new ByteMemoryArea(Address.SegPtr(0x0C00, 0), CreateMsdosHeader()); ExeImageLoader exe = new ExeImageLoader(null, ImageLocation.FromUri("file:foo.exe"), rawImage.Bytes); Assert.IsTrue(PkLiteUnpacker.IsCorrectUnpacker(exe, rawImage.Bytes)); }
public void ValidateImage() { Program prog = new Program(); LoadedImage rawImage = new LoadedImage(Address.SegPtr(0x0C00, 0), CreateMsdosHeader()); ExeImageLoader exe = new ExeImageLoader(null, "foo.exe", rawImage.Bytes); Assert.IsTrue(PkLiteUnpacker.IsCorrectUnpacker(exe, rawImage.Bytes)); }
public virtual PeImageLoader CreatePeImageLoader() { ExeImageLoader mz = new ExeImageLoader(Services, Filename, RawImage); var e_lfanew = mz.LoadLfaToNewHeader(); if (!e_lfanew.HasValue) { throw new BadImageFormatException(); } PeImageLoader pe = new PeImageLoader(Services, Filename, RawImage, e_lfanew.Value); return(pe); }
private void emulatorToolStripMenuItem_Click(object sender, EventArgs e) { var sc = new ServiceContainer(); var fs = new FileStream(@"D:\dev\jkl\dec\halsten\decompiler_paq\upx\demo.exe", FileMode.Open); var size = fs.Length; var abImage = new byte[size]; fs.Read(abImage, 0, (int)size); var exe = new ExeImageLoader(sc, "foolexe", abImage); var peLdr = new PeImageLoader(sc, "foo.exe", abImage, exe.e_lfanew); var addr = peLdr.PreferredBaseAddress; var program = peLdr.Load(addr); var rr = peLdr.Relocate(program, addr); var win32 = new Win32Emulator(program.SegmentMap, program.Platform, program.ImportReferences); var emu = new X86Emulator((IntelArchitecture)program.Architecture, program.SegmentMap, win32); emu.InstructionPointer = rr.EntryPoints[0].Address; emu.ExceptionRaised += delegate { throw new Exception(); }; emu.WriteRegister(Registers.esp, (uint)peLdr.PreferredBaseAddress.ToLinear() + 0x0FFC); emu.Start(); }
private void Given_ExeLoader() { this.exeLoader = new ExeImageLoader(null, "FOO.EXE", writer.ToArray()); this.exeLoader.ReadCommonExeFields(); }
public void Setup() { this.writer = null; this.exeLoader = null; this.offNames = -1; }
private void Given_ExeLoader() { this.exeLoader = new ExeImageLoader(null, ImageLocation.FromUri("file:FOO.EXE"), writer.ToArray()); this.exeLoader.ReadCommonExeFields(); }