Example #1
0
 public Workspace(WritingParameters writingParameters)
 {
     WritingParameters  = writingParameters;
     Members            = new Dictionary <MetaDataTableType, MetaDataMemberInfo[]>();
     MethodBodyTable    = new MethodBodyTable();
     NewDataDirectories = new DataDirectory[16];
     NewNetHeader       = new NETHeader();
 }
Example #2
0
        public void RebuildAndWrite(WritingParameters parameters)
        {
            Workspace workspace = new Workspace(parameters);

            foreach (RebuildingTask task in Tasks)
            {
                task.RunProcedure(workspace);
            }
        }
Example #3
0
        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.
            };
        }