Составители:
Рубрика:
struct IMAGE_DATA_DIRECTORY ExportAddressTableJumps;
struct IMAGE_DATA_DIRECTORY ManagedNativeHeader;
};
#endif
A.3. pe.c
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include “pe.h”
#include “macros.h”
void make_headers (FILE* file, PINPUT_PARAMETERS inP);
void make_text_section (FILE* file, PINPUT_PARAMETERS inP);
void make_cli_section (FILE* file, PINPUT_PARAMETERS inP);
void make_reloc_section (FILE* file, PINPUT_PARAMETERS inP);
unsigned long align(unsigned long x, unsigned long alignment)
{
div_t t = div(x,alignment);
return t.rem == 0 ? x : (t.quot+1)*alignment;
};
void make_file (FILE* file, PINPUT_PARAMETERS inP)
{
make_headers(file, inP); // Stage 1
make_text_section(file, inP); // Stage 2
make_cli_section(file, inP); // Stage 3
make_reloc_section(file, inP); // Stage 4
}
unsigned char msdos_header[128] = {
0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Исходный код программы pegen
281
unsigned long ImportLookupTableRVA;
unsigned long TimeDateStamp;
unsigned long ForwarderChain;
unsigned long NameRVA;
unsigned long ImportAddressTableRVA;
unsigned char zero[20];
/* Import Lookup Table */
unsigned long HintNameTableRVA1;
unsigned long zero1;
/* Hint/Name Table */
unsigned short Hint;
char Name[12];
/* Dll name (“mscoree.dll”) */
char DllName[12];
}IMPORT_TABLE;
};
//.reloc Section
struct RELOC_SECTION
{
unsigned long PageRVA;
unsigned long BlockSize;
unsigned short TypeOffset;
unsigned short Padding;
};
struct IMAGE_COR20_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 Resources;
struct IMAGE_DATA_DIRECTORY StrongNameSignature;
struct IMAGE_DATA_DIRECTORY CodeManagerTable;
struct IMAGE_DATA_DIRECTORY VTableFixups;
280
CIL и системное программирование в Microsoft .NET
280 CIL и системное программирование в Microsoft .NET Исходный код программы pegen 281 unsigned long ImportLookupTableRVA; struct IMAGE_DATA_DIRECTORY ExportAddressTableJumps; unsigned long TimeDateStamp; struct IMAGE_DATA_DIRECTORY ManagedNativeHeader; unsigned long ForwarderChain; }; unsigned long NameRVA; unsigned long ImportAddressTableRVA; #endif unsigned char zero[20]; /* Import Lookup Table */ A.3. pe.c unsigned long HintNameTableRVA1; unsigned long zero1; #include#include /* Hint/Name Table */ #include unsigned short Hint; #include “pe.h” char Name[12]; #include “macros.h” /* Dll name (“mscoree.dll”) */ void make_headers (FILE* file, PINPUT_PARAMETERS inP); char DllName[12]; void make_text_section (FILE* file, PINPUT_PARAMETERS inP); }IMPORT_TABLE; void make_cli_section (FILE* file, PINPUT_PARAMETERS inP); void make_reloc_section (FILE* file, PINPUT_PARAMETERS inP); }; unsigned long align(unsigned long x, unsigned long alignment) //.reloc Section { struct RELOC_SECTION div_t t = div(x,alignment); { return t.rem == 0 ? x : (t.quot+1)*alignment; unsigned long PageRVA; }; unsigned long BlockSize; unsigned short TypeOffset; void make_file (FILE* file, PINPUT_PARAMETERS inP) unsigned short Padding; { }; make_headers(file, inP); // Stage 1 make_text_section(file, inP); // Stage 2 struct IMAGE_COR20_HEADER make_cli_section(file, inP); // Stage 3 { make_reloc_section(file, inP); // Stage 4 unsigned long cb; } unsigned short MajorRuntimeVersion; unsigned short MinorRuntimeVersion; unsigned char msdos_header[128] = { struct IMAGE_DATA_DIRECTORY MetaData; 0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, unsigned long Flags; 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, unsigned long EntryPointToken; 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, struct IMAGE_DATA_DIRECTORY Resources; 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, struct IMAGE_DATA_DIRECTORY StrongNameSignature; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, struct IMAGE_DATA_DIRECTORY CodeManagerTable; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, struct IMAGE_DATA_DIRECTORY VTableFixups; 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
Страницы
- « первая
- ‹ предыдущая
- …
- 145
- 146
- 147
- 148
- 149
- …
- следующая ›
- последняя »