retdec
ComHeaderDirectory.h
Go to the documentation of this file.
1 /*
2 * ComHeaderDirectory.h - Part of the PeLib library.
3 *
4 * Copyright (c) 2004 - 2005 Sebastian Porst (webmaster@the-interweb.com)
5 * All rights reserved.
6 *
7 * This software is licensed under the zlib/libpng License.
8 * For more details see http://www.opensource.org/licenses/zlib-license.php
9 * or the license information file (license.htm) in the root directory
10 * of PeLib.
11 */
12 
13 #ifndef RETDEC_PELIB_COMHEADERDIRECTORY_H
14 #define RETDEC_PELIB_COMHEADERDIRECTORY_H
15 
17 
18 namespace PeLib
19 {
21 
26  {
27  protected:
29 
30  public:
31  virtual ~ComHeaderDirectory() = default;
32 
34  int read(ImageLoader & imageLoader); // EXPORT
36  void rebuild(std::vector<std::uint8_t>& vBuffer) const; // EXPORT
38  unsigned int size() const; // EXPORT
40  int write(const std::string& strFilename, unsigned int dwOffset) const; // EXPORT
41 
43  std::uint32_t getSizeOfHeader() const; // EXPORT
45  std::uint16_t getMajorRuntimeVersion() const; // EXPORT
47  std::uint16_t getMinorRuntimeVersion() const; // EXPORT
49  std::uint32_t getMetaDataVa() const; // EXPORT
51  std::uint32_t getMetaDataSize() const; // EXPORT
53  std::uint32_t getFlags() const; // EXPORT
55  std::uint32_t getEntryPointToken() const; // EXPORT
57  std::uint32_t getResourcesVa() const; // EXPORT
59  std::uint32_t getResourcesSize() const; // EXPORT
61  std::uint32_t getStrongNameSignatureVa() const; // EXPORT
63  std::uint32_t getStrongNameSignatureSize() const; // EXPORT
65  std::uint32_t getCodeManagerTableVa() const; // EXPORT
67  std::uint32_t getCodeManagerTableSize() const; // EXPORT
69  std::uint32_t getVTableFixupsVa() const; // EXPORT
71  std::uint32_t getVTableFixupsSize() const; // EXPORT
73  std::uint32_t getExportAddressTableJumpsVa() const; // EXPORT
75  std::uint32_t getExportAddressTableJumpsSize() const; // EXPORT
77  std::uint32_t getManagedNativeHeaderVa() const; // EXPORT
79  std::uint32_t getManagedNativeHeaderSize() const; // EXPORT
80 
82  void setSizeOfHeader(std::uint32_t dwValue); // EXPORT
84  void setMajorRuntimeVersion(std::uint16_t wValue); // EXPORT
86  void setMinorRuntimeVersion(std::uint16_t wValue); // EXPORT
88  void setMetaDataVa(std::uint32_t dwValue); // EXPORT
90  void setMetaDataSize(std::uint32_t dwValue); // EXPORT
92  void setFlags(std::uint32_t dwValue); // EXPORT
94  void setEntryPointToken(std::uint32_t dwValue); // EXPORT
96  void setResourcesVa(std::uint32_t dwValue); // EXPORT
98  void setResourcesSize(std::uint32_t dwValue); // EXPORT
100  void setStrongNameSignatureVa(std::uint32_t dwValue); // EXPORT
102  void setStrongNameSignagureSize(std::uint32_t dwValue); // EXPORT
104  void setCodeManagerTableVa(std::uint32_t dwValue); // EXPORT
106  void setCodeManagerTableSize(std::uint32_t dwValue); // EXPORT
108  void setVTableFixupsVa(std::uint32_t dwValue); // EXPORT
110  void setVTableFixupsSize(std::uint32_t dwValue); // EXPORT
112  void setExportAddressTableJumpsVa(std::uint32_t dwValue); // EXPORT
114  void setExportAddressTableJumpsSize(std::uint32_t dwValue); // EXPORT
116  void setManagedNativeHeaderVa(std::uint32_t dwValue); // EXPORT
118  void setManagedNativeHeaderSize(std::uint32_t dwValue); // EXPORT
119  };
120 }
121 #endif
Class that handles the COM+ descriptor directory.
Definition: ComHeaderDirectory.h:26
void setCodeManagerTableVa(std::uint32_t dwValue)
Change the COM+ descriptor's CodeManagerTable (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:358
void setCodeManagerTableSize(std::uint32_t dwValue)
Change the COM+ descriptor's CodeManagerTable (Size) value.
Definition: ComHeaderDirectory.cpp:366
void setResourcesVa(std::uint32_t dwValue)
Change the COM+ descriptor's Resources (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:326
void setMetaDataVa(std::uint32_t dwValue)
Change the COM+ descriptor's MetaData (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:294
void setExportAddressTableJumpsVa(std::uint32_t dwValue)
Change the COM+ descriptor's ExportAddressTableJumps (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:390
void setExportAddressTableJumpsSize(std::uint32_t dwValue)
Change the COM+ descriptor's ExportAddressTableJumps (Size) value.
Definition: ComHeaderDirectory.cpp:398
std::uint32_t getFlags() const
Get the COM+ descriptor's Flags value.
Definition: ComHeaderDirectory.cpp:158
void setEntryPointToken(std::uint32_t dwValue)
Change the COM+ descriptor's EntryPointToken value.
Definition: ComHeaderDirectory.cpp:318
std::uint32_t getExportAddressTableJumpsVa() const
Get the COM+ descriptor's ExportAddressTable (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:238
void setSizeOfHeader(std::uint32_t dwValue)
Change the COM+ descriptor's SizeOfHeader (cb) value.
Definition: ComHeaderDirectory.cpp:270
void setVTableFixupsSize(std::uint32_t dwValue)
Change the COM+ descriptor's VTableFixups (Size) value.
Definition: ComHeaderDirectory.cpp:382
void setFlags(std::uint32_t dwValue)
Change the COM+ descriptor's Flags value.
Definition: ComHeaderDirectory.cpp:310
void setManagedNativeHeaderVa(std::uint32_t dwValue)
Change the COM+ descriptor's ManagedNativeHeader (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:406
std::uint32_t getEntryPointToken() const
Get the COM+ descriptor's EntryPointToken value.
Definition: ComHeaderDirectory.cpp:166
int read(ImageLoader &imageLoader)
Read a file's COM+ runtime descriptor directory.
Definition: ComHeaderDirectory.cpp:23
std::uint32_t getSizeOfHeader() const
Get the COM+ descriptor's SizeOfHeader (cb) value.
Definition: ComHeaderDirectory.cpp:118
std::uint32_t getCodeManagerTableSize() const
Get the COM+ descriptor's CodeManagerTable (Size) value.
Definition: ComHeaderDirectory.cpp:214
std::uint16_t getMinorRuntimeVersion() const
Get the COM+ descriptor's MinorRuntimeVersion value.
Definition: ComHeaderDirectory.cpp:134
std::uint32_t getVTableFixupsVa() const
Get the COM+ descriptor's VTableFixup (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:222
std::uint32_t getMetaDataVa() const
Get the COM+ descriptor's MetaData (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:142
void setMajorRuntimeVersion(std::uint16_t wValue)
Change the COM+ descriptor's MajorRuntimeVersion value.
Definition: ComHeaderDirectory.cpp:278
void rebuild(std::vector< std::uint8_t > &vBuffer) const
Rebuild the COM+ descriptor.
Definition: ComHeaderDirectory.cpp:46
unsigned int size() const
Returns the size of the current COM+ descriptor.
Definition: ComHeaderDirectory.cpp:74
void setStrongNameSignagureSize(std::uint32_t dwValue)
Change the COM+ descriptor's StrongNameSignatureVa (Size) value.
Definition: ComHeaderDirectory.cpp:350
std::uint32_t getCodeManagerTableVa() const
Get the COM+ descriptor's CodeManagerTable (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:206
std::uint16_t getMajorRuntimeVersion() const
Get the COM+ descriptor's MajorRuntimeVersion value.
Definition: ComHeaderDirectory.cpp:126
int write(const std::string &strFilename, unsigned int dwOffset) const
Writes the current COM+ descriptor directory to a file.
Definition: ComHeaderDirectory.cpp:83
void setMinorRuntimeVersion(std::uint16_t wValue)
Change the COM+ descriptor's MinorRuntimeVersion value.
Definition: ComHeaderDirectory.cpp:286
virtual ~ComHeaderDirectory()=default
std::uint32_t getMetaDataSize() const
Get the COM+ descriptor's MetaData (Size) value.
Definition: ComHeaderDirectory.cpp:150
void setVTableFixupsVa(std::uint32_t dwValue)
Change the COM+ descriptor's VTableFixups (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:374
std::uint32_t getResourcesVa() const
Get the COM+ descriptor's Resources (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:174
void setResourcesSize(std::uint32_t dwValue)
Change the COM+ descriptor's Resources (Size) value.
Definition: ComHeaderDirectory.cpp:334
PELIB_IMAGE_COR20_HEADER m_ichComHeader
The COM+ descriptor.
Definition: ComHeaderDirectory.h:28
std::uint32_t getVTableFixupsSize() const
Get the COM+ descriptor's VTableFixup (Size) value.
Definition: ComHeaderDirectory.cpp:230
std::uint32_t getManagedNativeHeaderVa() const
Get the COM+ descriptor's ManagedNativeHeader (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:254
std::uint32_t getStrongNameSignatureSize() const
Get the COM+ descriptor's StrongNameSignature (Size) value.
Definition: ComHeaderDirectory.cpp:198
void setMetaDataSize(std::uint32_t dwValue)
Change the COM+ descriptor's MetaData (Size) value.
Definition: ComHeaderDirectory.cpp:302
void setManagedNativeHeaderSize(std::uint32_t dwValue)
Change the COM+ descriptor's ManagedNativeHeader (Size) value.
Definition: ComHeaderDirectory.cpp:414
std::uint32_t getExportAddressTableJumpsSize() const
Get the COM+ descriptor's ExportAddressTable (Size) value.
Definition: ComHeaderDirectory.cpp:246
void setStrongNameSignatureVa(std::uint32_t dwValue)
Change the COM+ descriptor's StrongNameSignatureVa (VirtualAddress) value.
Definition: ComHeaderDirectory.cpp:342
std::uint32_t getStrongNameSignatureVa() const
Get the COM+ descriptor's StrongNameSignature (Virtual Address) value.
Definition: ComHeaderDirectory.cpp:190
std::uint32_t getResourcesSize() const
Get the COM+ descriptor's Resources (Size) value.
Definition: ComHeaderDirectory.cpp:182
std::uint32_t getManagedNativeHeaderSize() const
Get the COM+ descriptor's ManagedNativeHeader (Size) value.
Definition: ComHeaderDirectory.cpp:262
Definition: ImageLoader.h:138
Definition: BoundImportDirectory.h:21
Definition: PeLibAux.h:1021