示例#1
0
        void CreateChunks()
        {
            peHeaders = new PEHeaders(Options.PEHeadersOptions);

            var  machine = Options.PEHeadersOptions.Machine ?? Machine.I386;
            bool is64bit = machine == Machine.AMD64 || machine == Machine.IA64 || machine == Machine.ARM64;

            relocDirectory = new RelocDirectory(machine);
            if (machine == Machine.I386)
            {
                needStartupStub = true;
            }

            importAddressTable = new ImportAddressTable(is64bit);
            importDirectory    = new ImportDirectory(is64bit);
            startupStub        = new StartupStub(relocDirectory, machine, (format, args) => Error(format, args));

            CreateStrongNameSignature();

            imageCor20Header = new ImageCor20Header(Options.Cor20HeaderOptions);
            CreateMetaDataChunks(module);
            managedExportsWriter = new ManagedExportsWriter(UTF8String.ToSystemStringOrEmpty(module.Name), machine, relocDirectory, metaData, peHeaders, (format, args) => Error(format, args));

            CreateDebugDirectory();

            importDirectory.IsExeFile = Options.IsExeFile;
            peHeaders.IsExeFile       = Options.IsExeFile;
        }
示例#2
0
 public VtableFixupsChunk(ManagedExportsWriter owner) => this.owner = owner;
示例#3
0
 public ExportDir(ManagedExportsWriter owner) => this.owner = owner;
示例#4
0
 public SdataChunk(ManagedExportsWriter owner)
 {
     this.owner = owner;
 }