Beispiel #1
0
        internal CLRHeader(Location location, IMAGE_COR20_HEADER header)
        {
            _runtimeVersion     = null;
            _metaData           = null;
            _resources          = null;
            _snSig              = null;
            _codeManTable       = null;
            _vtableFixups       = null;
            _exportAddressTable = null;
            _nativeHeader       = null;

            Location            = location;
            HeaderSize          = header.cb;
            MajorRuntimeVersion = header.MajorRuntimeVersion;
            MinorRuntimeVersion = header.MinorRuntimeVersion;
            MetaDataAddress     = header.MetaData.VirtualAddress;
            MetaDataSize        = header.MetaData.Size;
            Flags = header.Flags;
            EntryPointTokenOrVirtualAddress = header.EntryPointTokenOrRVA;
            ResourcesAddress               = header.Resources.VirtualAddress;
            ResourcesSize                  = header.Resources.Size;
            StrongNameSignatureAddress     = header.StrongNameSignature.VirtualAddress;
            StrongNameSignatureSize        = header.StrongNameSignature.Size;
            CodeManagerTableAddress        = header.CodeManagerTable.VirtualAddress;
            CodeManagerTableSize           = header.CodeManagerTable.Size;
            VTableFixupsAddress            = header.VTableFixups.VirtualAddress;
            VTableFixupsSize               = header.VTableFixups.Size;
            ExportAddressTableJumpsAddress = header.ExportAddressTableJumps.VirtualAddress;
            ExportAddressTableJumpsSize    = header.ExportAddressTableJumps.Size;
            ManagedNativeHeaderAddress     = header.ManagedNativeHeader.VirtualAddress;
            ManagedNativeHeaderSize        = header.ManagedNativeHeader.Size;
        }
Beispiel #2
0
        public CLRDataDirectory GetExportAddressTableJumps()
        {
            if (_exportAddressTable == null)
            {
                _exportAddressTable = new CLRDataDirectory(ExportAddressTableJumpsAddress, ExportAddressTableJumpsSize);
            }

            return(_exportAddressTable);
        }
Beispiel #3
0
        public CLRDataDirectory GetManagedNativeHeader()
        {
            if (_nativeHeader == null)
            {
                _nativeHeader = new CLRDataDirectory(ManagedNativeHeaderAddress, ManagedNativeHeaderSize);
            }

            return(_nativeHeader);
        }
Beispiel #4
0
        public CLRDataDirectory GetVTableFixups()
        {
            if (_vtableFixups == null)
            {
                _vtableFixups = new CLRDataDirectory(VTableFixupsAddress, VTableFixupsSize);
            }

            return(_vtableFixups);
        }
Beispiel #5
0
        public CLRDataDirectory GetCodeManagerTable()
        {
            if (_codeManTable == null)
            {
                _codeManTable = new CLRDataDirectory(CodeManagerTableAddress, CodeManagerTableSize);
            }

            return(_codeManTable);
        }
Beispiel #6
0
        public CLRDataDirectory GetStrongNameSignature()
        {
            if (_snSig == null)
            {
                _snSig = new CLRDataDirectory(StrongNameSignatureAddress, StrongNameSignatureSize);
            }

            return(_snSig);
        }
Beispiel #7
0
        public CLRDataDirectory GetResources()
        {
            if (_resources == null)
            {
                _resources = new CLRDataDirectory(ResourcesAddress, ResourcesSize);
            }

            return(_resources);
        }
Beispiel #8
0
        public CLRDataDirectory GetMetaData()
        {
            if (_metaData == null)
            {
                _metaData = new CLRDataDirectory(MetaDataAddress, MetaDataSize);
            }

            return(_metaData);
        }