Составители:
Рубрика:
struct IMAGE_DATA_DIRECTORY STUB1;
struct IMAGE_DATA_DIRECTORY IMPORT_DIRECTORY; // import directory
struct IMAGE_DATA_DIRECTORY STUB2[3];
struct IMAGE_DATA_DIRECTORY BASE_RELOC_DIRECTORY;
struct IMAGE_DATA_DIRECTORY STUB3[6];
struct IMAGE_DATA_DIRECTORY IAT_DIRECTORY; // IAT directory
struct IMAGE_DATA_DIRECTORY STUB4;
struct IMAGE_DATA_DIRECTORY CLI_DIRECTORY; // CLI directory
struct IMAGE_DATA_DIRECTORY STUB5;
struct IMAGE_SECTION_HEADER TEXT_SECTION; // .text section header
struct IMAGE_SECTION_HEADER CLI_SECTION; // .cli section header
struct IMAGE_SECTION_HEADER RELOC_SECTION; // .reloc section header
};
typedef struct HEADERS *PHEADERS;
// .CLI Section
struct CLI_SECTION_IMAGE {
struct _JMP_STUB { // entry point
unsigned short JmpInstruction;
unsigned long JmpAddress;
}JMP_STUB;
struct _CLI_HEADER { // CLI header
unsigned long cb;
unsigned short MajorRuntimeVersion;
unsigned short MinorRuntimeVersion;
struct IMAGE_DATA_DIRECTORY MetaData;
unsigned long Flags;
unsigned long EntryPointToken;
struct IMAGE_DATA_DIRECTORY NotUsed[6];
}CLI_HEADER;
struct _IMPORT_TABLE { // Import table
/* Import Address Table */
unsigned long HintNameTableRVA2;
unsigned long zero2;
/* Import Directory Entry */
Исходный код программы pegen
279
unsigned short Machine;
unsigned short NumberOfSections;
unsigned long TimeDateStamp;
unsigned long PointerToSymbolTable;
unsigned long NumberOfSymbols;
unsigned short OptionalHeaderSize;
unsigned short Characteristics;
}PeHdr;
struct _IMAGE_OPTIONAL_HEADER { // optional PE header
unsigned short Magic;
unsigned char LMajor;
unsigned char LMinor;
unsigned long CodeSize;
unsigned long SizeOfInitializedData;
unsigned long SizeOfUninitializedData;
unsigned long EntryPointRVA;
unsigned long BaseOfCode;
unsigned long BaseOfData;
unsigned long ImageBase;
unsigned long SectionAlignment;
unsigned long FileAlignment;
unsigned short OSMajor;
unsigned short OSMinor;
unsigned short UserMajor;
unsigned short UserMinor;
unsigned short SubsysMajor;
unsigned short SubsysMinor;
unsigned long Reserved;
unsigned long ImageSize;
unsigned long HeaderSize;
unsigned long FileCheckSum;
unsigned short Subsystem;
unsigned short DllFlags;
unsigned long StackReserveSize;
unsigned long StackCommitSize;
unsigned long HeapReserveSize;
unsigned long HeapCommitSize;
unsigned long LoaderFlags;
unsigned long NumberOfDataDirectories;
}OptHdr;
278
CIL и системное программирование в Microsoft .NET
278 CIL и системное программирование в Microsoft .NET Исходный код программы pegen 279 unsigned short Machine; struct IMAGE_DATA_DIRECTORY STUB1; unsigned short NumberOfSections; struct IMAGE_DATA_DIRECTORY IMPORT_DIRECTORY; // import directory unsigned long TimeDateStamp; struct IMAGE_DATA_DIRECTORY STUB2[3]; unsigned long PointerToSymbolTable; struct IMAGE_DATA_DIRECTORY BASE_RELOC_DIRECTORY; unsigned long NumberOfSymbols; struct IMAGE_DATA_DIRECTORY STUB3[6]; unsigned short OptionalHeaderSize; struct IMAGE_DATA_DIRECTORY IAT_DIRECTORY; // IAT directory unsigned short Characteristics; struct IMAGE_DATA_DIRECTORY STUB4; }PeHdr; struct IMAGE_DATA_DIRECTORY CLI_DIRECTORY; // CLI directory struct IMAGE_DATA_DIRECTORY STUB5; struct _IMAGE_OPTIONAL_HEADER { // optional PE header unsigned short Magic; struct IMAGE_SECTION_HEADER TEXT_SECTION; // .text section header unsigned char LMajor; struct IMAGE_SECTION_HEADER CLI_SECTION; // .cli section header unsigned char LMinor; struct IMAGE_SECTION_HEADER RELOC_SECTION; // .reloc section header unsigned long CodeSize; unsigned long SizeOfInitializedData; }; unsigned long SizeOfUninitializedData; unsigned long EntryPointRVA; typedef struct HEADERS *PHEADERS; unsigned long BaseOfCode; unsigned long BaseOfData; // .CLI Section unsigned long ImageBase; struct CLI_SECTION_IMAGE { unsigned long SectionAlignment; unsigned long FileAlignment; struct _JMP_STUB { // entry point unsigned short OSMajor; unsigned short JmpInstruction; unsigned short OSMinor; unsigned long JmpAddress; unsigned short UserMajor; }JMP_STUB; unsigned short UserMinor; unsigned short SubsysMajor; struct _CLI_HEADER { // CLI header unsigned short SubsysMinor; unsigned long cb; unsigned long Reserved; unsigned short MajorRuntimeVersion; unsigned long ImageSize; unsigned short MinorRuntimeVersion; unsigned long HeaderSize; struct IMAGE_DATA_DIRECTORY MetaData; unsigned long FileCheckSum; unsigned long Flags; unsigned short Subsystem; unsigned long EntryPointToken; unsigned short DllFlags; struct IMAGE_DATA_DIRECTORY NotUsed[6]; unsigned long StackReserveSize; }CLI_HEADER; unsigned long StackCommitSize; unsigned long HeapReserveSize; struct _IMPORT_TABLE { // Import table unsigned long HeapCommitSize; unsigned long LoaderFlags; /* Import Address Table */ unsigned long NumberOfDataDirectories; unsigned long HintNameTableRVA2; }OptHdr; unsigned long zero2; /* Import Directory Entry */
Страницы
- « первая
- ‹ предыдущая
- …
- 144
- 145
- 146
- 147
- 148
- …
- следующая ›
- последняя »