因为dll跟exe文件都是pe文件格式,它们之间应该有某种互通性,使互相转换成为可能.从:
typedef struct _IMAGE_FILE_HEADER {
WORD Machine; //0x04
WORD NumberOfSections; //0x06
DWORD TimeDateStamp; //0x08
DWORD PointerToSymbolTable; //0x0c
DWORD NumberOfSymbols; //0x10
WORD SizeOfOptionalHeader; //0x14
WORD Characteristics; //0x16
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
结构中的WORD Characteristics标识本文件是属于dll还是exe,我试过单单改这个值,好象并不能把dll转换成exe,有没有高手研究过这个问题?
typedef struct _IMAGE_FILE_HEADER {
WORD Machine; //0x04
WORD NumberOfSections; //0x06
DWORD TimeDateStamp; //0x08
DWORD PointerToSymbolTable; //0x0c
DWORD NumberOfSymbols; //0x10
WORD SizeOfOptionalHeader; //0x14
WORD Characteristics; //0x16
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
结构中的WORD Characteristics标识本文件是属于dll还是exe,我试过单单改这个值,好象并不能把dll转换成exe,有没有高手研究过这个问题?
只是DLL一般用于更多的函数库而更少的消息循环,而EXE则反之;DLL可以被更多的进程共享,而EXE不是这样,这是最大的区别!
所以结构就应该不同了................
第八个男人欢迎你
http://www.debugman.com