PE文件結構及其加載機制(四)

下面我們開始學習節表。

不知道還記不記得在前面哪個結構體中出現過節的數量?

 

嘿嘿,忘記了吧,我們翻開以前的記錄,看看。

原來是

typedef struct IMAGE_NT_HEADERS
  {
        DWORD Signature;
        IMAGE_FILE_HEADER FileHeader;
        IMAGE_OPTIONAL_HEADER32 OptionalHeader;
  }IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS; 

中的

複製代碼
typedef struct _IMAGE_FILE_HEADER {   
        WORD      Machine;                 //運行平臺 
        WORD      NumberOfSections;        //塊(section)數目      
        DWORD     TimeDateStamp;           //時間日期標記     
        DWORD     PointerToSymbolTable;    //COFF符號指針,這是程序調試信息    
        DWORD     NumberOfSymbols;         //符號數  
        WORD      SizeOfOptionalHeader;    //可選部首長度,是IMAGE_OPTIONAL_HEADER的長度    
        WORD      Characteristics;         //文件屬性 
}
複製代碼

第二個成員就是了。

我們回去找找這個程序的這個值是多少。

原來是四個節啊,當然了,也可以說四個段。

果然是四個段。

好了,複習完需要的知識,我們就繼續學習。

 

================================================

typedef struct _IMAGE_SECTION_HEADER {
  BYTE  Name[IMAGE_SIZEOF_SHORT_NAME];
  union {
    DWORD PhysicalAddress;
    DWORD VirtualSize;
  } Misc;
  DWORD VirtualAddress;
  DWORD SizeOfRawData;
  DWORD PointerToRawData;
  DWORD PointerToRelocations;
  DWORD PointerToLinenumbers;
  WORD  NumberOfRelocations;
  WORD  NumberOfLinenumbers;
  DWORD Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

 同樣的,這也是一個結構體,而且有幾個節,就有幾個這種類似的結構體。

"#define IMAGE_SIZEOF_SHORT_NAME 8"    原來是個8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章