示例#1
0
        public virtual PeImageLoader CreatePeImageLoader()
        {
            ExeImageLoader mz = new ExeImageLoader(Services, Filename, RawImage);
            PeImageLoader  pe = new PeImageLoader(Services, Filename, RawImage, mz.e_lfanew);

            return(pe);
        }
示例#2
0
 public void Setup()
 {
     this.writer    = null;
     this.exeLoader = null;
     this.offNames  = -1;
     this.arch      = new X86ArchitectureReal("x86-real-16");
 }
示例#3
0
        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));
        }
示例#4
0
 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>());
 }
示例#5
0
 public void Setup()
 {
     this.writer    = null;
     this.exeLoader = null;
     this.offNames  = -1;
     this.arch      = new X86ArchitectureReal(new ServiceContainer(), "x86-real-16");
 }
示例#6
0
        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));
        }
示例#7
0
        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));
        }
示例#8
0
        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);
        }
示例#9
0
        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();
        }
示例#10
0
 private void Given_ExeLoader()
 {
     this.exeLoader = new ExeImageLoader(null, "FOO.EXE", writer.ToArray());
     this.exeLoader.ReadCommonExeFields();
 }
示例#11
0
 public void Setup()
 {
     this.writer    = null;
     this.exeLoader = null;
     this.offNames  = -1;
 }
示例#12
0
 private void Given_ExeLoader()
 {
     this.exeLoader = new ExeImageLoader(null, ImageLocation.FromUri("file:FOO.EXE"), writer.ToArray());
     this.exeLoader.ReadCommonExeFields();
 }