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

福田网站-建设深圳信科成立网站建设公司要求

福田网站-建设深圳信科,成立网站建设公司要求,dedecms织梦和wordpress,已申请域名怎么做网站摘要 本文描述了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/921011/

相关文章:

  • 建外贸网站有效果吗开发电商平台需要多少钱
  • 成都网站建设维护网页制作价格私活
  • 建设银行网站登陆不上做本地的分类信息网站
  • 公司网站建设哪里实惠网页设计作业百度网盘
  • 如何seo网站挣钱不同企业的网络营销网站
  • 自己做网站有什么用网站怎样设计网址
  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特
  • 长治电子商务网站建设中国建设银行总行官方网站
  • 整站营销系统厚街镇网站仿做
  • 舆情分析网站wordpress文章聚合
  • 中国建设银行网站在哪上市cpa自己做网站
  • 网站建设服务支持jquery插件 wordpress
  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3
  • 深圳网站平台前程无忧招聘网
  • 个人业余做网站怎么弄wordpress子主题修改
  • 深圳营销型网站建设优化做虚拟币网站需要什么手续
  • 青海市建设局网站西安网站seo推广
  • 广元做网站的公司合肥市建设网
  • 如何做网站不被查如何做网站内部优化
  • 网站建设用什么框架好做网站需要用到哪些开发软件