Beispiel #1
0
 public DecompilerDriver(ILoader ldr, IServiceProvider services)
 {
     this.loader        = ldr ?? throw new ArgumentNullException("ldr");
     this.services      = services ?? throw new ArgumentNullException("services");
     this.host          = services.RequireService <DecompilerHost>();
     this.eventListener = services.RequireService <DecompilerEventListener>();
 }
		public void Setup()
		{
            mr = new MockRepository();
            form = new MainForm();
            sc = new ServiceContainer();
            loader = mr.StrictMock<ILoader>();
            dec = mr.StrictMock<IDecompiler>();
            sc = new ServiceContainer();
            uiSvc = new FakeShellUiService();
            host = mr.StrictMock<DecompilerHost>();
            memSvc = mr.StrictMock<ILowLevelViewService>();
            var image = new LoadedImage(Address.Ptr32(0x10000), new byte[1000]);
            var imageMap = image.CreateImageMap();
            var arch = mr.StrictMock<IProcessorArchitecture>();
            arch.Stub(a => a.CreateRegisterBitset()).Return(new BitSet(32));
            arch.Replay();
            var platform = mr.StrictMock<Platform>(null, arch);
            arch.BackToRecord();
            program = new Program(image, imageMap, arch, platform);
            project = new Project { Programs = { program } };

            browserSvc = mr.StrictMock<IProjectBrowserService>();

            sc.AddService<IDecompilerUIService>(uiSvc);
            sc.AddService(typeof(IDecompilerShellUiService), uiSvc);
            sc.AddService(typeof(IDecompilerService), new DecompilerService());
            sc.AddService(typeof(IWorkerDialogService), new FakeWorkerDialogService());
            sc.AddService(typeof(DecompilerEventListener), new FakeDecompilerEventListener());
            sc.AddService(typeof(IProjectBrowserService), browserSvc);
            sc.AddService(typeof(ILowLevelViewService), memSvc);
            sc.AddService<ILoader>(loader);

            i = new TestInitialPageInteractor(sc, dec);

		}
Beispiel #3
0
        public bool OpenBinaryAs(
            string file,
            IProcessorArchitecture arch,
            Platform platform,
            Address addrBase,
            DecompilerHost host)
        {
            var ldr = Services.RequireService <ILoader>();

            this.Decompiler = CreateDecompiler(ldr, host);
            IWorkerDialogService svc = Services.RequireService <IWorkerDialogService>();

            svc.StartBackgroundWork("Loading program", delegate()
            {
                Decompiler.LoadRawImage(file, arch, platform, addrBase);
                svc.SetCaption("Scanning source program.");
                Decompiler.ScanPrograms();
            });
            var browserSvc = Services.RequireService <IProjectBrowserService>();

            browserSvc.Load(Decompiler.Project);
            if (Decompiler.Project.Programs.Count > 0)
            {
                var memSvc = Services.RequireService <ILowLevelViewService>();
                memSvc.ViewImage(Decompiler.Project.Programs.First());
            }
            return(false);   // We never open projects this way.
        }
Beispiel #4
0
        public bool OpenBinary(string file, DecompilerHost host)
        {
            var ldr = Services.RequireService <ILoader>();

            this.Decompiler = CreateDecompiler(ldr, host);
            IWorkerDialogService svc = Services.RequireService <IWorkerDialogService>();
            bool isOldProject        = false;

            svc.StartBackgroundWork("Loading program", delegate()
            {
                isOldProject = Decompiler.Load(file);
            });
            if (Decompiler.Project == null)
            {
                return(false);
            }
            var browserSvc = Services.RequireService <IProjectBrowserService>();

            browserSvc.Load(Decompiler.Project);
            if (Decompiler.Project.Programs.Count > 0)
            {
                var memSvc = Services.RequireService <ILowLevelViewService>();
                memSvc.ViewImage(Decompiler.Project.Programs.First());
            }
            return(isOldProject);
        }
		public void Setup()
		{
            mr = new MockRepository();
            form = new MainForm();
            sc = new ServiceContainer();
            loader = mr.StrictMock<ILoader>();
            dec = mr.StrictMock<IDecompiler>();
            sc = new ServiceContainer();
            uiSvc = new FakeShellUiService();
            host = mr.StrictMock<DecompilerHost>();
            memSvc = mr.StrictMock<ILowLevelViewService>();
            var mem = new MemoryArea(Address.Ptr32(0x10000), new byte[1000]);
            var imageMap = new SegmentMap(
                mem.BaseAddress,
                new ImageSegment("code", mem, AccessMode.ReadWriteExecute));
            var arch = mr.StrictMock<IProcessorArchitecture>();
            var platform = mr.StrictMock<IPlatform>();
            program = new Program(imageMap, arch, platform);
            project = new Project { Programs = { program } };

            browserSvc = mr.StrictMock<IProjectBrowserService>();

            sc.AddService<IDecompilerUIService>(uiSvc);
            sc.AddService(typeof(IDecompilerShellUiService), uiSvc);
            sc.AddService(typeof(IDecompilerService), new DecompilerService());
            sc.AddService(typeof(IWorkerDialogService), new FakeWorkerDialogService());
            sc.AddService(typeof(DecompilerEventListener), new FakeDecompilerEventListener());
            sc.AddService(typeof(IProjectBrowserService), browserSvc);
            sc.AddService(typeof(ILowLevelViewService), memSvc);
            sc.AddService<ILoader>(loader);
            sc.AddService<DecompilerHost>(host);

            i = new TestInitialPageInteractor(sc, dec);

		}
Beispiel #6
0
 public DecompilerDriver(ILoader ldr, IServiceProvider services)
 {
     if (ldr == null)
         throw new ArgumentNullException("ldr");
     if (services == null)
         throw new ArgumentNullException("services");
     this.loader = ldr;
     this.host = services.RequireService<DecompilerHost>();
     this.services = services;
     this.eventListener = services.GetService<DecompilerEventListener>();
 }
Beispiel #7
0
 public DecompilerDriver(ILoader ldr, DecompilerHost host, IServiceProvider services)
 {
     if (ldr == null)
     {
         throw new ArgumentNullException("ldr");
     }
     if (host == null)
     {
         throw new ArgumentNullException("host");
     }
     if (services == null)
     {
         throw new ArgumentNullException("services");
     }
     this.loader        = ldr;
     this.host          = host;
     this.services      = services;
     this.eventListener = services.GetService <DecompilerEventListener>();
 }
 public bool Assemble(string file, Assembler asm, DecompilerHost host)
 {
     var ldr = Services.RequireService<ILoader>();
     this.Decompiler = CreateDecompiler(ldr, host);
     var svc = Services.RequireService<IWorkerDialogService>();
     svc.StartBackgroundWork("Loading program", delegate()
     {
         Decompiler.Assemble(file, asm);
     });
     if (Decompiler.Project == null)
         return false;
     var browserSvc = Services.RequireService<IProjectBrowserService>();
     browserSvc.Load(Decompiler.Project);
     if (Decompiler.Project.Programs.Count > 0)
     {
         var memSvc = Services.RequireService<ILowLevelViewService>();
         memSvc.ViewImage(Decompiler.Project.Programs.First());
     }
     return false;
 }
Beispiel #9
0
        public void Setup()
        {
            mr     = new MockRepository();
            form   = new MainForm();
            sc     = new ServiceContainer();
            loader = mr.StrictMock <ILoader>();
            dec    = mr.StrictMock <IDecompiler>();
            sc     = new ServiceContainer();
            uiSvc  = new FakeShellUiService();
            host   = mr.StrictMock <DecompilerHost>();
            memSvc = mr.StrictMock <ILowLevelViewService>();
            var image    = new LoadedImage(Address.Ptr32(0x10000), new byte[1000]);
            var imageMap = image.CreateImageMap();
            var arch     = mr.StrictMock <IProcessorArchitecture>();

            arch.Stub(a => a.CreateRegisterBitset()).Return(new BitSet(32));
            arch.Replay();
            var platform = mr.StrictMock <Platform>(null, arch);

            arch.BackToRecord();
            program = new Program(image, imageMap, arch, platform);
            project = new Project {
                Programs = { program }
            };

            browserSvc = mr.StrictMock <IProjectBrowserService>();

            sc.AddService <IDecompilerUIService>(uiSvc);
            sc.AddService(typeof(IDecompilerShellUiService), uiSvc);
            sc.AddService(typeof(IDecompilerService), new DecompilerService());
            sc.AddService(typeof(IWorkerDialogService), new FakeWorkerDialogService());
            sc.AddService(typeof(DecompilerEventListener), new FakeDecompilerEventListener());
            sc.AddService(typeof(IProjectBrowserService), browserSvc);
            sc.AddService(typeof(ILowLevelViewService), memSvc);
            sc.AddService <ILoader>(loader);

            i = new TestInitialPageInteractor(sc, dec);
        }
        public void Setup()
        {
            mr     = new MockRepository();
            form   = new MainForm();
            sc     = new ServiceContainer();
            loader = mr.StrictMock <ILoader>();
            dec    = mr.StrictMock <IDecompiler>();
            sc     = new ServiceContainer();
            uiSvc  = new FakeShellUiService();
            host   = mr.StrictMock <DecompilerHost>();
            memSvc = mr.StrictMock <ILowLevelViewService>();
            var mem      = new MemoryArea(Address.Ptr32(0x10000), new byte[1000]);
            var imageMap = new SegmentMap(
                mem.BaseAddress,
                new ImageSegment("code", mem, AccessMode.ReadWriteExecute));
            var arch     = mr.StrictMock <IProcessorArchitecture>();
            var platform = mr.StrictMock <IPlatform>();

            program = new Program(imageMap, arch, platform);
            project = new Project {
                Programs = { program }
            };

            browserSvc = mr.StrictMock <IProjectBrowserService>();

            sc.AddService <IDecompilerUIService>(uiSvc);
            sc.AddService(typeof(IDecompilerShellUiService), uiSvc);
            sc.AddService(typeof(IDecompilerService), new DecompilerService());
            sc.AddService(typeof(IWorkerDialogService), new FakeWorkerDialogService());
            sc.AddService(typeof(DecompilerEventListener), new FakeDecompilerEventListener());
            sc.AddService(typeof(IProjectBrowserService), browserSvc);
            sc.AddService(typeof(ILowLevelViewService), memSvc);
            sc.AddService <ILoader>(loader);
            sc.AddService <DecompilerHost>(host);

            i = new TestInitialPageInteractor(sc, dec);
        }
 public bool OpenBinaryAs(string file, IProcessorArchitecture arch, Platform platform, Address addrBase, DecompilerHost host)
 {
     throw new NotImplementedException();
 }
 public bool OpenBinary(string file, DecompilerHost host)
 {
     OpenBinaryCalled = true;
     return false;
 }
 public bool OpenBinary(string file, DecompilerHost host)
 {
     OpenBinaryCalled = true;
     return(false);
 }
Beispiel #14
0
 protected virtual IDecompiler CreateDecompiler(ILoader ldr, DecompilerHost host)
 {
     return(new DecompilerDriver(ldr, host, Services));
 }
 public bool OpenBinaryAs(string file, IProcessorArchitecture arch, Platform platform, Address addrBase, DecompilerHost host)
 {
     throw new NotImplementedException();
 }
 public bool Assemble(string file, Assembler asm, DecompilerHost host)
 {
     throw new NotImplementedException();
 }
Beispiel #17
0
 public TestDecompiler(ILoader loader, DecompilerHost host, IServiceProvider sp)
     : base(loader, host, sp)
 {
 }
 public bool OpenBinary(string file, DecompilerHost host)
 {
     var ldr = Services.RequireService<ILoader>();
     this.Decompiler = CreateDecompiler(ldr, host);
     IWorkerDialogService svc = Services.RequireService<IWorkerDialogService>();
     bool isOldProject = false;
     svc.StartBackgroundWork("Loading program", delegate()
     {
         isOldProject = Decompiler.Load(file);
     });
     if (Decompiler.Project == null)
         return false;
     var browserSvc = Services.RequireService<IProjectBrowserService>();
     browserSvc.Load(Decompiler.Project);
     if (Decompiler.Project.Programs.Count > 0)
     {
         var memSvc = Services.RequireService<ILowLevelViewService>();
         memSvc.ViewImage(Decompiler.Project.Programs.First());
     }
     return isOldProject;
 }
 protected virtual IDecompiler CreateDecompiler(ILoader ldr, DecompilerHost host)
 {
     return new DecompilerDriver(ldr, host, Services);
 }
 public bool OpenBinaryAs(
     string file, 
     IProcessorArchitecture arch,
     Platform platform, 
     Address addrBase, 
     DecompilerHost host)
 {
     var ldr = Services.RequireService<ILoader>();
     this.Decompiler = CreateDecompiler(ldr, host);
     IWorkerDialogService svc = Services.RequireService<IWorkerDialogService>();
     svc.StartBackgroundWork("Loading program", delegate()
     {
         Decompiler.LoadRawImage(file, arch, platform, addrBase);
         svc.SetCaption("Scanning source program.");
         Decompiler.ScanPrograms();
     });
     var browserSvc = Services.RequireService<IProjectBrowserService>();
     browserSvc.Load(Decompiler.Project);
     if (Decompiler.Project.Programs.Count > 0)
     {
         var memSvc = Services.RequireService<ILowLevelViewService>();
         memSvc.ViewImage(Decompiler.Project.Programs.First());
     }
     return false;   // We never open projects this way.
 }
 public bool Assemble(string file, Assembler asm, DecompilerHost host)
 {
     throw new NotImplementedException();
 }
 protected override IDecompiler CreateDecompiler(ILoader ldr, DecompilerHost host)
 {
     return decompiler;
 }
Beispiel #23
0
 public TestDecompiler(ILoader loader, DecompilerHost host, IServiceProvider sp)
     : base(loader, host, sp)
 {
 }
Beispiel #24
0
 protected override IDecompiler CreateDecompiler(ILoader ldr, DecompilerHost host)
 {
     return(decompiler);
 }