public Workspace(WritingParameters writingParameters) { WritingParameters = writingParameters; Members = new Dictionary <MetaDataTableType, MetaDataMemberInfo[]>(); MethodBodyTable = new MethodBodyTable(); NewDataDirectories = new DataDirectory[16]; NewNetHeader = new NETHeader(); }
public void RebuildAndWrite(WritingParameters parameters) { Workspace workspace = new Workspace(parameters); foreach (RebuildingTask task in Tasks) { task.RunProcedure(workspace); } }
internal PEWriter(Win32Assembly original, WritingParameters parameters) { this.OriginalAssembly = original; this.Parameters = parameters; this.Tasks = new IWriterTask[] { new PEReconstructor(this), // Fix all offsets new PEHeaderWriter(this), // Write vital pe headers new SectionWriter(this), // Temp solution to make exe working. Need to be removed once all rebuilding is done, or maybe just write the code section(s). new DataDirectoryWriter(this), // Rewrite data directories that don't need to be rebuilded. new ImportExportWriter(this), // Rewrite exports and imports if specified. new ResourceWriter(this), // Rewrite resources if specified. new ManagedDataWriter(this), // Rewrite managed data if specified. }; }