public async Task Zot() { var sc = new ServiceContainer(); var plSvc = new PluginLoaderService(); sc.AddService <IPluginLoaderService>(plSvc); var fsSvc = new FileSystemServiceImpl(); sc.AddService <IFileSystemService>(fsSvc); var cfgSvc = RekoConfigurationService.Load(sc, @"D:\dev\uxmal\reko\extras\parallel\UnitTests\bin\Debug\net5.0\reko\reko.config"); sc.AddService <IConfigurationService>(cfgSvc); var listener = new NullDecompilerEventListener(); sc.AddService <DecompilerEventListener>(listener); var dechost = new Reko.DecompiledFileService(sc, fsSvc, listener); sc.AddService <IDecompiledFileService>(dechost); var tlSvc = new TypeLibraryLoaderServiceImpl(sc); sc.AddService <ITypeLibraryLoaderService>(tlSvc); var loader = new Reko.Loading.Loader(sc); var program = (Program)loader.Load(ImageLocation.FromUri(@"D:\dev\uxmal\reko\users\smx-zoo\RELEASE_MIPS\RELEASE")); var project = Project.FromSingleProgram(program); var reko = new Reko.Decompiler(project, sc); TryFindSegment(program, ".text", out var seg); var scanner = new Scanner(seg.MemoryArea); var result = await scanner.ScanAsync(program.EntryPoints.Values); Console.Write(result.B.Count); }
private Reko.Decompiler CreateRekoInstance(CefV8Context context) { var fsSvc = new FileSystemServiceImpl(); var listener = new ListenerService(context, eventListeners); var dfSvc = new DecompiledFileService(fsSvc, listener); services.AddService(typeof(IFileSystemService), fsSvc); services.AddService(typeof(DecompilerEventListener), listener); var configSvc = RekoConfigurationService.Load(services, "reko/reko.config"); services.AddService(typeof(IConfigurationService), configSvc); services.AddService(typeof(IDecompiledFileService), dfSvc); services.AddService(typeof(ITypeLibraryLoaderService), new TypeLibraryLoaderServiceImpl(services)); services.AddService(typeof(IPluginLoaderService), new PluginLoaderService()); var loader = new Reko.Loading.Loader(services); return(new Reko.Decompiler(loader, services)); }