当前位置: 首页 > news >正文

qq网页版登录官网登录入口网站南通单位网站建设

qq网页版登录官网登录入口网站,南通单位网站建设,中国网站建设平台,电商企业网站建设方案摘要 本文描述了Windows系统的PE文件格式。 PE文件格式简介 PE#xff08;Portable Executable#xff09;文件格式是一种Windows操作系统下的可执行文件格式。PE文件格式是由Microsoft基于COFF#xff08;Common Object File Format#xff09;格式所定义的#xff0c…摘要 本文描述了Windows系统的PE文件格式。 PE文件格式简介 PEPortable Executable文件格式是一种Windows操作系统下的可执行文件格式。PE文件格式是由Microsoft基于COFFCommon Object File Format格式所定义的它规定了Windows可执行文件.exe和动态链接库.dll的结构包括文件头、节表、导入和导出表、资源表、重定位表等。PE格式被广泛应用于Windows操作系统及Windows软件开发中它的特点是文件结构清晰、易于扩展、安全性高等。 PE文件格式分为PE32和PE32Windows 32位系统采用的是PE32Windows 64位系统采用的是PE32。PE32和PE32之间的区别如下 1. PE32将PE32中的32位RVA字段和尺寸相关字段扩展成了64位。 2. 在PE32中使用了新的数据结构其中重要的变化是IMAGE_OPTIONAL_HEADER结构的扩展以包括更多的字段和属性。 3. PE32中使用了更多的CPU指令集包括SSE2、SSE3和AVX等指令以提高程序的性能和处理能力。 本文以PE32文件格式和x86机器模型作为示例进行讲解。 PE文件主要由若干节Section构成节是PE文件格式的核心概念。 PE文件中节与CPU架构中的段Segment的概念相对应。加载器将不同内存访问属性的节被加载进内存后由CPU的LDTR和GDTR指示的段描述表来描述。程序运行时CPU通过的各种段选择子如CS、DS、SS、ES、FS、GS等来选择对应的段如代码段.text、数据段.data的段描述符通过前端总线FSB来访问段内的代码或数据。 COFF文件结构图 Windows系统中的VC编译出来的目标文件格式采用的COFF文件格式其结构如下 COFFCommon Object File Format文件格式起源于UNIX系统最早是由ATT Bell Laboratories和Microsoft合作开发出来的。这种文件格式最初用于存储编译后的目标文件和共享库并被广泛应用于UNIX系统中。COFF文件格式在1985年被POSIX标准所接受并逐渐成为了一种通用的目标文件格式。 在后来的Windows平台中微软对COFF进行了一些修改和扩展并将其用作PEPortable Executable文件的基础格式。PE文件包含了Windows中可执行文件和动态链接库的细节信息并成为了Windows系统中的主要二进制文件格式。在Windows上COFF和PE同宗同源联系紧密可统称为COFF/PE格式。 PE文件结构图 PE文件结构定义 PE文件结构的定义在winnt.h头文件中winnt.h典型路径为 C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\winnt.h DOS头 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE headerWORD e_magic; // Magic numberM,ZWORD e_cblp; // Bytes on last page of fileWORD e_cp; // Pages in fileWORD e_crlc; // RelocationsWORD e_cparhdr; // Size of header in paragraphsWORD e_minalloc; // Minimum extra paragraphs neededWORD e_maxalloc; // Maximum extra paragraphs neededWORD e_ss; // Initial (relative) SS valueWORD e_sp; // Initial SP valueWORD e_csum; // ChecksumWORD e_ip; // Initial IP valueWORD e_cs; // Initial (relative) CS valueWORD e_lfarlc; // File address of relocation tableWORD e_ovno; // Overlay numberWORD e_res[4]; // Reserved wordsWORD e_oemid; // OEM identifier (for e_oeminfo)WORD e_oeminfo; // OEM information; e_oemid specificWORD e_res2[10]; // Reserved wordsLONG e_lfanew; // File address of new exe header} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; DOS stub DOS存根程序一般只打印程序不能在DOS下运行的提示也可以是具备完整功能的DOS程序。 在Windows上.exe和.dll文件都包含了DOS头和DOS stub。 映像文件头 PE的映像文件头采用了与COFF的映像文件头一致的结构。 typedef struct _IMAGE_FILE_HEADER {WORD Machine; // 例如intel 386 | 486 | 568DEC Alpha AXP, IBM Power PC。WORD NumberOfSections; // 节数量DWORD TimeDateStamp;DWORD PointerToSymbolTable;DWORD NumberOfSymbols;WORD SizeOfOptionalHeader; // 可选头尺寸可为0也可比标准定义更大。WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; PE可选头 #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16// // 镜像数据目录项结构 // typedef struct _IMAGE_DATA_DIRECTORY {DWORD VirtualAddress;DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;// // Optional header format. // typedef struct _IMAGE_OPTIONAL_HEADER {//// Standard fields.//WORD Magic; // 魔法标记P, EBYTE MajorLinkerVersion;BYTE MinorLinkerVersion;DWORD SizeOfCode;DWORD SizeOfInitializedData;DWORD SizeOfUninitializedData;DWORD AddressOfEntryPoint;DWORD BaseOfCode;DWORD BaseOfData;//// NT additional fields.//DWORD ImageBase;DWORD SectionAlignment;DWORD FileAlignment;WORD MajorOperatingSystemVersion;WORD MinorOperatingSystemVersion;WORD MajorImageVersion;WORD MinorImageVersion;WORD MajorSubsystemVersion;WORD MinorSubsystemVersion;DWORD Win32VersionValue;DWORD SizeOfImage;DWORD SizeOfHeaders;DWORD CheckSum;WORD Subsystem; // 子系统类型Windows | ConsoleWORD DllCharacteristics;DWORD SizeOfStackReserve;DWORD SizeOfStackCommit;DWORD SizeOfHeapReserve;DWORD SizeOfHeapCommit;DWORD LoaderFlags;DWORD NumberOfRvaAndSizes;IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; DataDirectory[16]根据索引值定义了不同的数据内容的起始RVA和尺寸此数组是理解PE节内容语义的关键数据结构它直接描述了导入表、导出表、资源等数据在内存中的RVA和尺寸。 数据是按照内存访问属性合并存储在特定的节中的而不是按照语义分节的数据语义和节名称没有对应关系。 节头表 PE文件中的代码、数据、资源全部是存储在不同内存访问属性的节中的类似竹子的多节结构。 节头用于描述一节的名称、节内容的RVA、节大小、特征是否缓存、代码、数据等。 节头由定长尺寸的结构体组成所有节的节头构成一个节头表。 节头表以一个空的节头结构作为结束标记。 // // Section header format. //#define IMAGE_SIZEOF_SHORT_NAME 8typedef struct _IMAGE_SECTION_HEADER {BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; // 节名称最多8个字符union {DWORD PhysicalAddress;DWORD VirtualSize;} Misc;DWORD VirtualAddress; // 节内容的起始RVADWORD SizeOfRawData;DWORD PointerToRawData;DWORD PointerToRelocations;DWORD PointerToLinenumbers;WORD NumberOfRelocations;WORD NumberOfLinenumbers;DWORD Characteristics; // 内存访问属性可读 | 可写 | 可执行 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;// 节头固定长度为40 #define IMAGE_SIZEOF_SECTION_HEADER 40 节内容 读者可将可节内容理解为于节头header对应的节体body类似HTML的头和体。 每一个节的内容是链接器根据代码或数据的内存访问属性合并而成的。 每一个节内容的起始地址和尺寸由节头表中的一个节头项描述。 节内的数据语义分界由IMAGE_DATA_DIRECTORY结构定义。 PE文件分析 dumpbin.exe是微软Visual Studio的一个工具它可以用于检查和显示二进制文件的详细信息。它可以显示一个可执行文件、静态库、动态库或任何其他二进制文件的导出表、导入表、资源表、头文件、符号表和其他详细信息。它可以被用于分析和调试二进制文件以了解它们内部的结构和内容。 dumpbin.exe的典型路径为 %VS_INSTALL_DIR%\VC\Tools\MSVC\14.36.32532\bin\Hostx86\x86\dumpbin.exe 以下是一些dumpbin.exe的用法示例: 1. 显示可执行文件的导入表 dumpbin /imports myapp.exe 2. 显示静态库的符号表 dumpbin /symbols mylib.lib 3. 显示动态库的导出表 dumpbin /exports mydll.dll 4. 显示PE文件的各种头结构 dumpbin /headers myfile.bin 5. 显示可执行文件的资源表 dumpbin /resources myapp.exe 6.显示线程局部存储节的汇总信息和原始数据 dumpbin /section:.tls /rawdata myapp.exe 7.显示代码节的反汇编数据 dumpbin /section:.text /disasm myapp.exe 8.显示RVA重定位表 dumpbin /relocations myapp.exe dumpbin.exe还有许多其他选项和用法可以通过运行“dumpbin /?”命令来查看完整的用法和选项列表。 参考资料 PE文件结构详解-1 PE文件结构详解-2 PE Format - Win32 apps | Microsoft Learn PE文件结构详解_大囚长的博客-CSDN博客 PE结构详解_weixin_44870554的博客-CSDN博客 PE文件格式 - 随笔分类 - 不会笑的孩子 - 博客园 (cnblogs.com) PE结构分析 - Lonely Blog (wuhao13.xin) DUMPBIN 选项 | Microsoft Learn 总结 PE文件格式是学习Windows系统反病毒、手动查杀木马技术所要求的前置基础知识需要深刻领会。
http://www.zqtcl.cn/news/681030/

相关文章:

  • 建网站跟建网店的区别怎样营销建设网站
  • 医院做网站的风格乐清网站建设哪家好
  • 手机商城网站方案如何自己搭建微信小程序
  • 做影视免费网站违法吗青岛快速排名优化
  • 网站建设在电子商务中的作用的看法360地图怎么添加商户
  • 网站域名备案与不备案的区别wordpress 注册审核
  • 大学生做企业网站网页设计免费模板情侣
  • 商城网站建设教程网站开发支付宝
  • 广安网站设计快递加盟代理
  • 建设网站的建筑公司宿迁华夏建设集团网站
  • 百度推广网站建设费利用阿里云虚拟主机做网站
  • 吐槽做网站论坛模板
  • 广水住房和城乡建设部网站简单网页制作代码html
  • 建设网站找什么仿门户网站
  • 贵阳手机网站建设公司沈阳图书设计公司
  • 哪里做网站比较好在哪里注册域名
  • 做搜狗pc网站软件下载广告设计与制作学什么
  • 软件工程 旅游网站开发er图昆山网站建设网站建设
  • 网站下载的网页修改下面版权所有企业建设营销型网站的目的有
  • 官方重大项目建设库网站手机ps软件如何做ppt下载网站
  • 全国加盟网站大全海尔网站建设目标
  • wordpress 企业站模版自己做视频网站可以吗
  • 建设电子商务网站的方法有广东网站开发收费
  • php网站页面转wordpress网站广告代码
  • 在线网站建设教程网站版面布局结构
  • 网站建设提议网站建设怎么在图片上加字
  • 网站模板但没有后台如何做网站家政网站开发
  • 自己办网站审批流程网页设计师的发展路径
  • 什么叫网站地图百度竞价排名费用
  • 企业网站建设顾问wordpress如何用API采集