retdec
clr_header.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_FILEFORMAT_TYPES_DOTNET_HEADERS_CLR_HEADER_H
8 #define RETDEC_FILEFORMAT_TYPES_DOTNET_HEADERS_CLR_HEADER_H
9 
10 #include <cstdint>
11 
12 namespace retdec {
13 namespace fileformat {
14 
18 class CLRHeader
19 {
20  private:
21  std::uint64_t headerSize;
22  std::uint64_t majorRuntimeVersion;
23  std::uint64_t minorRuntimeVersion;
24  std::uint64_t metadataDirectoryAddress;
25  std::uint64_t metadataDirectorySize;
26  std::uint64_t flags;
27  std::uint64_t entryPointToken;
28  std::uint64_t resourcesAddress;
29  std::uint64_t resourcesSize;
31  std::uint64_t strongNameSignatureSize;
32  std::uint64_t codeManagerTableAddress;
33  std::uint64_t codeManagerTableSize;
37  std::uint64_t exportAddressTableSize;
38  std::uint64_t precompileHeaderAddress;
39  std::uint64_t precompileHeaderSize;
40  public:
43  std::uint64_t getHeaderSize() const;
44  std::uint64_t getMajorRuntimeVersion() const;
45  std::uint64_t getMinorRuntimeVersion() const;
46  std::uint64_t getMetadataDirectoryAddress() const;
47  std::uint64_t getMetadataDirectorySize() const;
48  std::uint64_t getFlags() const;
49  std::uint64_t getEntryPointToken() const;
50  std::uint64_t getResourcesAddress() const;
51  std::uint64_t getResourcesSize() const;
52  std::uint64_t getStrongNameSignatureAddress() const;
53  std::uint64_t getStrongNameSignatureSize() const;
54  std::uint64_t getCodeManagerTableAddress() const;
55  std::uint64_t getCodeManagerTableSize() const;
56  std::uint64_t getVTableFixupsDirectoryAddress() const;
57  std::uint64_t getVTableFixupsDirectorySize() const;
58  std::uint64_t getExportAddressTableAddress() const;
59  std::uint64_t getExportAddressTableSize() const;
60  std::uint64_t getPrecompileHeaderAddress() const;
61  std::uint64_t getPrecompileHeaderSize() const;
63 
66  void setHeaderSize(std::uint64_t clrHeaderSize);
67  void setMajorRuntimeVersion(std::uint64_t clrMajorRuntimeVersion);
68  void setMinorRuntimeVersion(std::uint64_t clrMinorRuntimeVersion);
69  void setMetadataDirectoryAddress(std::uint64_t clrMetadataDirectoryAddress);
70  void setMetadataDirectorySize(std::uint64_t clrMetadataDirectorySize);
71  void setFlags(std::uint64_t clrFlags);
72  void setEntryPointToken(std::uint64_t clrEntryPointToken);
73  void setResourcesAddress(std::uint64_t clrResourcesAddress);
74  void setResourcesSize(std::uint64_t clrResourcesSize);
75  void setStrongNameSignatureAddress(std::uint64_t clrStrongNameSignatureAddress);
76  void setStrongNameSignatureSize(std::uint64_t clrStrongNameSignatureSize);
77  void setCodeManagerTableAddress(std::uint64_t clrCodeManagerTableAddress);
78  void setCodeManagerTableSize(std::uint64_t clrCodeManagerTableSize);
79  void setVTableFixupsDirectoryAddress(std::uint64_t clrVTableFixupsDirectoryAddress);
80  void setVTableFixupsDirectorySize(std::uint64_t clrVTableFixupsDirectorySize);
81  void setExportAddressTableAddress(std::uint64_t clrExportAddressTableAddress);
82  void setExportAddressTableSize(std::uint64_t clrExportAddressTableSize);
83  void setPrecompileHeaderAddress(std::uint64_t clrPrecompileHeaderAddress);
84  void setPrecompileHeaderSize(std::uint64_t clrPrecompileHeaderSize);
86 };
87 
88 } // namespace fileformat
89 } // namespace retdec
90 
91 #endif
Definition: clr_header.h:19
std::uint64_t getCodeManagerTableAddress() const
Definition: clr_header.cpp:115
void setCodeManagerTableAddress(std::uint64_t clrCodeManagerTableAddress)
Definition: clr_header.cpp:286
void setFlags(std::uint64_t clrFlags)
Definition: clr_header.cpp:232
std::uint64_t vTableFixupsDirectoryAddress
Definition: clr_header.h:34
std::uint64_t getMinorRuntimeVersion() const
Definition: clr_header.cpp:34
std::uint64_t getPrecompileHeaderAddress() const
Definition: clr_header.cpp:169
std::uint64_t getVTableFixupsDirectorySize() const
Definition: clr_header.cpp:142
void setStrongNameSignatureSize(std::uint64_t clrStrongNameSignatureSize)
Definition: clr_header.cpp:277
std::uint64_t getMajorRuntimeVersion() const
Definition: clr_header.cpp:25
std::uint64_t getExportAddressTableAddress() const
Definition: clr_header.cpp:151
std::uint64_t getEntryPointToken() const
Definition: clr_header.cpp:70
void setMinorRuntimeVersion(std::uint64_t clrMinorRuntimeVersion)
Definition: clr_header.cpp:205
std::uint64_t getMetadataDirectoryAddress() const
Definition: clr_header.cpp:43
std::uint64_t codeManagerTableAddress
Definition: clr_header.h:32
std::uint64_t getPrecompileHeaderSize() const
Definition: clr_header.cpp:178
std::uint64_t vTableFixupsDirectorySize
Definition: clr_header.h:35
void setMajorRuntimeVersion(std::uint64_t clrMajorRuntimeVersion)
Definition: clr_header.cpp:196
std::uint64_t precompileHeaderAddress
Definition: clr_header.h:38
std::uint64_t getHeaderSize() const
Definition: clr_header.cpp:16
void setResourcesAddress(std::uint64_t clrResourcesAddress)
Definition: clr_header.cpp:250
std::uint64_t headerSize
Definition: clr_header.h:21
void setPrecompileHeaderAddress(std::uint64_t clrPrecompileHeaderAddress)
Definition: clr_header.cpp:340
void setExportAddressTableAddress(std::uint64_t clrExportAddressTableAddress)
Definition: clr_header.cpp:322
std::uint64_t strongNameSignatureSize
Definition: clr_header.h:31
void setVTableFixupsDirectoryAddress(std::uint64_t clrVTableFixupsDirectoryAddress)
Definition: clr_header.cpp:304
void setMetadataDirectoryAddress(std::uint64_t clrMetadataDirectoryAddress)
Definition: clr_header.cpp:214
std::uint64_t strongNameSignatureAddress
Definition: clr_header.h:30
void setPrecompileHeaderSize(std::uint64_t clrPrecompileHeaderSize)
Definition: clr_header.cpp:349
std::uint64_t majorRuntimeVersion
Definition: clr_header.h:22
std::uint64_t codeManagerTableSize
Definition: clr_header.h:33
std::uint64_t getVTableFixupsDirectoryAddress() const
Definition: clr_header.cpp:133
void setHeaderSize(std::uint64_t clrHeaderSize)
Definition: clr_header.cpp:187
void setMetadataDirectorySize(std::uint64_t clrMetadataDirectorySize)
Definition: clr_header.cpp:223
std::uint64_t getStrongNameSignatureAddress() const
Definition: clr_header.cpp:97
std::uint64_t metadataDirectorySize
Definition: clr_header.h:25
std::uint64_t entryPointToken
Definition: clr_header.h:27
std::uint64_t getMetadataDirectorySize() const
Definition: clr_header.cpp:52
std::uint64_t flags
Definition: clr_header.h:26
void setStrongNameSignatureAddress(std::uint64_t clrStrongNameSignatureAddress)
Definition: clr_header.cpp:268
std::uint64_t precompileHeaderSize
Definition: clr_header.h:39
std::uint64_t exportAddressTableSize
Definition: clr_header.h:37
void setVTableFixupsDirectorySize(std::uint64_t clrVTableFixupsDirectorySize)
Definition: clr_header.cpp:313
std::uint64_t getResourcesAddress() const
Definition: clr_header.cpp:79
void setResourcesSize(std::uint64_t clrResourcesSize)
Definition: clr_header.cpp:259
void setExportAddressTableSize(std::uint64_t clrExportAddressTableSize)
Definition: clr_header.cpp:331
void setEntryPointToken(std::uint64_t clrEntryPointToken)
Definition: clr_header.cpp:241
std::uint64_t getFlags() const
Definition: clr_header.cpp:61
std::uint64_t getCodeManagerTableSize() const
Definition: clr_header.cpp:124
std::uint64_t resourcesAddress
Definition: clr_header.h:28
std::uint64_t minorRuntimeVersion
Definition: clr_header.h:23
std::uint64_t metadataDirectoryAddress
Definition: clr_header.h:24
std::uint64_t getExportAddressTableSize() const
Definition: clr_header.cpp:160
std::uint64_t resourcesSize
Definition: clr_header.h:29
std::uint64_t getStrongNameSignatureSize() const
Definition: clr_header.cpp:106
std::uint64_t exportAddressTableAddress
Definition: clr_header.h:36
void setCodeManagerTableSize(std::uint64_t clrCodeManagerTableSize)
Definition: clr_header.cpp:295
std::uint64_t getResourcesSize() const
Definition: clr_header.cpp:88
Definition: archive_wrapper.h:19