zoukankan      html  css  js  c++  java
  • 2.md

    二、

    MS-DOS头部

    PE文件头部第一个字节起始于一个传统的MS-DOS头部,IMAGE-DOS-IHEADER

    struct _IMAGE_DOS_IHEADER{
        0X00 WORD e_magic;			// MAGIC DOS sigture MZ(4Dh 5Ah)  dos可执行文件
        //......
        //......
        0X3C DWORD e_lfanew;		//指向pe头
        
    }iMAGE_DOS_IHEASER;
    
    

    PE-文件头

    PE 文件头紧跟DOS stub

    1568108527498

    IMAGE_NT_HEADERS struct{
        +0h 	DWORD 	Signature;
        +4h		IMAGE_FILE_HEADER		FileHeader;
        +18h	IMAGE_OPTIONAL_HEADER32	OptionHeader;
    }IMAGE_NT_HEADERS_ENDS;
    

    一个有效的pe文件,Signature == 00004550h,ASCII码为PE00。DOS头部e_lfanew

    指向这里。

    IMAGE_FILE_HEADER

    1568109821990

    IMAGE_OPTIONAL_HEADER32

    https://www.cnblogs.com/kuangke/p/5393514.html

    typedef struct _IMAGE_OPTIONAL_HEADER {
        +18h WORD Magic;	 // 标志字, ROM 映像(0107h),普通可执行文件(010Bh)
        //...
        +28h    DWORD   AddressOfEntryPoint;    // 程序执行入口RVA
        //...
        +34h    DWORD   ImageBase;      // 程序的首选装载地址
    	+38h    DWORD   SectionAlignment;      // 内存中的区块的对齐大小	默认1000h,4k
    	+3Ch    DWORD   FileAlignment;      // 文件中的区块的对齐大小		默认为200h
        //...
        +78h    IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
           // 数据目录表
    }
    
    IMAGE_DATA_DIRECTORY
     IMAGE_DATA_DIRECTORY struct{
    
      VirtualAddress DWORD ??? // ;数据的起始RVA
    
      isize DWORD 	???	// ;数据块的长度
    
     } IMAGE_DATA_DIRECTORY ENDS
    
  • 相关阅读:
    sql,linq基础再一次学习
    position与aop
    java基础常用类!
    JNI初步!
    java基础动态代理!
    java基础面向对象!
    php初步!
    java基础泛型!
    java基础对象多态性!
    java基础io流!
  • 原文地址:https://www.cnblogs.com/nsfoxer/p/14348050.html
Copyright © 2011-2022 走看看