深入理解Win32PE文件格式(1)

作者:Matt Pietrek
本文中大部分内容翻译自MSDN.如有翻译不正确的地方,还望大家多多指点.

摘要:  对PE文件格式的深入理解能够帮助我们更好的理解操作系统.如果你真正理解DLL和EXE的本质是什么,那么将有助于你成为一名更加优秀的程序员.这篇是两篇中深入理解关于PE格式中的第一篇,首先浏览一下最近几年PE格式所发生的变化,以及PE格式
              大约有好几年前(1994年),我为Microsoft System Journal所写的第一篇文章<<Peering Inside the PE: A Tour of the Win32 Portable Executable File Format",结果出乎我的意料之外.一直到今天,我仍然知道许多人在用这篇文件来帮助他们理解PE格式,而且现在在MSDN中这篇文件仍是可以查阅的.不过不幸的是,Win32世界已经发生一些变化,而我那篇文章是写于好几年前,所以很多东西是过时的.所以我从这个月开始写这篇文章来弥补这些.
            
 你可能奇怪为什么要这么关注PE格式呢.答案是:一个操作系统的可执行文件格式能够反映一些在操作系统层面的一些东西.通过理解DLL和EXE,你能变成一个更加优秀的程序员.
              当然,你可以阅读Microsoft的规范,但是这将会牺牲可读性.在这篇文件,我的重点是解释一些与之相关的的部分,来填补在规范中没有关于"怎么样"和"为什么".另外,我也有一些在规范是所没有的东西.

              首先我用一个例子来说一下自从我在1994年写的那篇文章以后所发生的变化.16位的Windows已经成为了历史,所以也就没有去与16 位Windows 可执行文件格式进行比较的必要.一个受欢迎的变化是从Win32 .在Windows3.1上运行Win32 的程序是相当的不稳定的.
   那时,Windows95(代号为"Chicago")还没有发行,WindowsNT版本仍在3.5,Microsoft 的连接器的设计者还没有开始为他们的可执行文件进行优化.然而,在这时Windows NT能够实现在MIPS 和DEC Alpha 平台上的运行.
   自从这篇文章以后有哪些新的东西呢?64位的Windows提出了自已的PE格式.Windows CE添加了新的处理器类型.在优化方面添加了诸如DLL的延时加载,section合并....


             


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值