• 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

  • 相关阅读:
    行转列(FOR XML PATH)
    非聚集索引的注意事项
    避免JS全局变量冲突
    如何做个好员工?
    SQL Server 执行计划中的扫描方式举例说明
    SqlServer with递归查询的使用
    Excel插件类库的设计思路
    使用log4javascript记录日志
    布局
    Image控件的简单使用示例1
  • 原文地址:https://www.cnblogs.com/tk091/p/2670936.html
Copyright © 2020-2023  润新知