private static void Rewrite(Program program, Assembler asm, string configFile) { var fakeDiagnosticsService = new FakeDiagnosticsService(); var fakeConfigService = new FakeDecompilerConfiguration(); var eventListener = new FakeDecompilerEventListener(); var sc = new ServiceContainer(); sc.AddService(typeof(IDiagnosticsService), fakeDiagnosticsService); sc.AddService(typeof(IConfigurationService), fakeConfigService); sc.AddService <DecompilerEventListener>(eventListener); sc.AddService <DecompilerHost>(new FakeDecompilerHost()); var loader = new Loader(sc); var project = string.IsNullOrEmpty(configFile) ? new Project() : new ProjectLoader(sc, loader, eventListener).LoadProject(FileUnitTester.MapTestPath(configFile)); var scan = new Scanner( program, new ImportResolver(project, program, eventListener), sc); scan.EnqueueImageSymbol(new ImageSymbol(asm.StartAddress), true); foreach (var f in project.Programs) { foreach (var sp in f.User.Procedures.Values) { scan.EnqueueUserProcedure(sp); } } scan.ScanImage(); }
private static void Rewrite(Program program, IAssembler asm, Action <Program> postLoad) { var fakeDiagnosticsService = new FakeDiagnosticsService(); var fakeConfigService = new FakeDecompilerConfiguration(); var eventListener = new FakeDecompilerEventListener(); var sc = new ServiceContainer(); sc.AddService <IDiagnosticsService>(fakeDiagnosticsService); sc.AddService <IConfigurationService>(fakeConfigService); sc.AddService <DecompilerEventListener>(eventListener); //sc.AddService<IDecompiledFileService>(new FakeDecompilerHost()); sc.AddService <IFileSystemService>(new FileSystemServiceImpl()); var loader = new Loader(sc); var project = new Project { Programs = { program } }; postLoad(program); var scan = new Scanner( program, new DynamicLinker(project, program, eventListener), sc); scan.EnqueueImageSymbol(ImageSymbol.Location(program.Architecture, asm.StartAddress), true); foreach (var f in project.Programs) { foreach (var sp in f.User.Procedures.Values) { scan.EnqueueUserProcedure(program.Architecture, sp); } } scan.ScanImage(); }
private static void Rewrite(Program prog, Assembler asm, string configFile) { var fakeDiagnosticsService = new FakeDiagnosticsService(); var fakeConfigService = new FakeDecompilerConfiguration(); var sc = new ServiceContainer(); sc.AddService(typeof(IDiagnosticsService), fakeDiagnosticsService); sc.AddService(typeof(IConfigurationService), fakeConfigService); var loader = new Loader(sc); var project = string.IsNullOrEmpty(configFile) ? new Project() : new ProjectLoader(sc, loader).LoadProject(FileUnitTester.MapTestPath(configFile)); var scan = new Scanner( prog, new Dictionary <Address, ProcedureSignature>(), new ImportResolver(project), new FakeDecompilerEventListener()); scan.EnqueueEntryPoint(new EntryPoint(asm.StartAddress, prog.Architecture.CreateProcessorState())); foreach (var f in project.Programs) { foreach (var sp in f.UserProcedures.Values) { scan.EnqueueUserProcedure(sp); } } scan.ScanImage(); }
private static void Rewrite(Program program, IAssembler asm, string configFile) { var fakeDiagnosticsService = new FakeDiagnosticsService(); var fakeConfigService = new FakeDecompilerConfiguration(); var eventListener = new FakeDecompilerEventListener(); var sc = new ServiceContainer(); sc.AddService <IDiagnosticsService>(fakeDiagnosticsService); sc.AddService <IConfigurationService>(fakeConfigService); sc.AddService <DecompilerEventListener>(eventListener); sc.AddService <IDecompiledFileService>(new FakeDecompiledFileService()); sc.AddService <IFileSystemService>(new FileSystemServiceImpl()); var loader = new Loader(sc); var project = string.IsNullOrEmpty(configFile) ? new Project() : new ProjectLoader(sc, loader, eventListener).LoadProject(FileUnitTester.MapTestPath(configFile)); var scan = new Scanner( program, new DynamicLinker(project, program, eventListener), sc); scan.EnqueueImageSymbol(ImageSymbol.Procedure(program.Architecture, asm.StartAddress), true); foreach (var f in project.Programs) { foreach (var sp in f.User.Procedures.Values) { scan.EnqueueUserProcedure(program.Architecture, sp); } } scan.ScanImage(); }