Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
