123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #pragma once
- #include "../CommonDef.h"
- namespace hybridclr
- {
- namespace metadata
- {
- struct PEHeader
- {
- uint16_t matchine;
- uint16_t sections;
- uint32_t timestamp;
- uint32_t ptrSymbolTable;
- uint32_t numSymbols;
- uint16_t optionalHeadersize;
- uint16_t characteristics;
- };
- struct PEDirEntry
- {
- uint32_t rva;
- uint32_t size;
- };
- struct CLIHeader
- {
- uint32_t cb;
- uint16_t majorRuntimeVersion;
- uint16_t minorRuntimeVersion;
- PEDirEntry metaData;
- uint32_t flags;
- uint32_t entryPointToken;
- PEDirEntry resources;
- uint64_t strongNameSignature;
- uint64_t codeManagerTable;
- uint64_t vTableFixups;
- uint64_t exportAddressTableJumps;
- uint64_t managedNativeHeader;
- };
- struct PESectionHeader
- {
- char name[8];
- uint32_t virtualSize;
- uint32_t virtualAddress;
- uint32_t sizeOfRawData;
- uint32_t ptrRawData;
- uint32_t ptrRelocations;
- uint32_t ptrLineNumbers;
- uint16_t numRelocation;
- uint16_t numLineNumber;
- uint32_t characteristics;
- };
- struct MetadataRootPartial
- {
- uint32_t signature;
- uint16_t majorVersion;
- uint16_t minorVersion;
- uint32_t reserved;
- uint32_t length;
- byte versionFirstByte;
- };
- struct StreamHeader
- {
- uint32_t offset;
- uint32_t size;
- char name[1];
- };
- struct TableStreamHeader
- {
- uint32_t reserved;
- uint8_t majorVersion;
- uint8_t minorVersion;
- uint8_t heapSizes;
- uint8_t reserved2;
- uint64_t valid;
- uint64_t sorted;
- uint32_t rows[1];
- // tables;
- };
- struct CliStream
- {
- const char* name;
- const byte* data;
- uint32_t size;
- };
- struct UserString
- {
- const char* data;
- uint32_t size;
- uint8_t flags;
- };
- struct Blob
- {
- const byte* data;
- uint32_t size;
- };
- struct Table
- {
- const byte* data;
- uint32_t rowMetaDataSize;
- uint32_t rowNum;
- bool vaild;
- bool sorted;
- };
- }
- }
|