当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>关于PE可履行文件的改正</b>[VC/C++编程]

赞助商链接



  本文“<b>关于PE可履行文件的改正</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

windows 9x、NT、2000下,全部的可履行文件都是基于Microsoft计划的一种新的文件格局Portable Executable File Format(可移植的履行体),即PE格局.有一些时刻,我们需求对这些可履行文件举行改正,下面文字试图具体的描写PE文件的格局及对PE格局文件的改正.

1、PE文件框架构成

DOS MZ header
DOS stub
PE header
Section table
Section 1
Section 2
Section ...
Section n

上表是PE文件构造的总体层次分布.全部 PE文件(乃至32位的 DLLs) 必须以一个简单的 DOS MZ header 开始,在偏移0处有DOS下可履行文件的“MZ标志”,有了它,一旦程序在DOS下履行,DOS就可以辨认出这是有效的履行体,然后运行紧随 MZ header 之后的 DOS stub.DOS stub实际上是个有效的EXE,在不支持 PE文件格局的操作系统中,它将简单显示一个错误提醒,近似于字符串 " This program cannot run in DOS mode " 大概程序员可按照自己的企图实现完好的 DOS代码.普通DOS stub由汇编器/编译器自动生成,对我们的用处不是很大,它简单调用中止21h服务9来显示字符串"This program cannot run in DOS mode".

紧接着 DOS stub 的是 PE header. PE header 是PE相关构造 IMAGE_NT_HEADERS 的简称,此中包含了很多PE装载器用到的重要域.可履行文件在支持PE文件构造的操作系统中履行时,PE装载器将从 DOS MZ header的偏移3CH处找到 PE header 的起始偏移量.因而跳过了 DOS stub 直接定位到真正的文件头 PE header.

PE文件的真正内容划分成块,称之为sections(节).每节是一块拥有共同属性的数据,比方“.text”节等,那么,每一节的内容都是什么呢?实际上PE格局的文件把具有相同属性的内容放入同一个节中,而没必要关心近似“.text”、“.data”的命名,其命名只是为了便于辨认,全部,我们假如对PE格局的文件举行改正,理论上讲可以写入任何一个节内,并调整此节的属性便可以了.


  以上是“<b>关于PE可履行文件的改正</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .