开发学院WEB开发ASP PE文件学习笔记(1) 阅读

PE文件学习笔记(1)

 2009-12-28 10:43:33 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄妞ゆ劗鍘ч埥澶娢熼柨瀣偓濠氭⒑瑜版帒浜伴柛鎾寸☉閳绘柨顫濋懜纰樻嫼闂佸憡绋戦オ鏉戔枔閺冣偓缁绘稓浠﹂崒姘瀳闂佸磭绮幑鍥嵁鐎n亖鏀介柟閭﹀墯椤斿倹淇婇悙顏勨偓鏍ь潖婵犳艾鍌ㄧ憸蹇涘箟閹绢喗鏅搁柨鐕傛嫹
核心提示:Portable Executable 文件格式= PE;1.可移植性(portable )是因为任何机器(Intel 386 、MipS 、Alpha 、Power PC 等等)上的 NT 都可以使用相同的可执行档格式,当然啦,PE文件学习笔记(1),CPU 指令的二进制编码是完全不同的,你不可能把一个在 MIPS
Portable Executable 文件格式= PE;

1.可移植性(portable )是因
 为任何机器(Intel 386 、MipS 、Alpha 、Power PC 等等)上的 NT 都可以使用相同的可
 执行档格式。当然啦,CPU 指令的二进制编码是完全不同的,你不可能把一个在 MIPS 机
 器编译好的 PE 文件拿到 Intel 系统来跑。重要的是,程序加载器以及程序开发工具不需
 要针对每一个新的操作系统重写。

2. 磁盘中的可执行文件格式非常类似内存中的模块。因此 Windows 加载器无须非常辛苦地工作就能根据磁盘文件产生一个
 行程。加载器使用 Win32 内存映像档,把适当的 PE 文件加载程序的地址空间中。
 以建筑学的方式来说,PE 档就像是一栋预先制造组合配件的房屋:配件不多,每一个配
 件可以啪答一声就定位 -- 只要经过一些些努力。并且,就像组合屋很容易接上电路和水
 管一样,PE 档也很容易与外界产生关系
3.win32用来放置模块的码、资料、资源、import tables 、export tables 、以
 及其它东西的内存,是位于一块连续的线性地址空间中。所有你需要知道的,就是这
 个地址在哪里。然后你就可以轻轻松松根据储存在这个 "image"中的指针,找
 到模块的每一样资料。
4.相对虚拟地址(Relative Virtual
  Address ,RVA )。PE 文件中的许多字段内容都是以 RVA 表示。一个 RVA 是某一资
 料项的 offset (偏移)值 -- 从文件被映像进来的起点算起。

 由此想到从前看过的许多相关PE文件解析数据提取资料,总是对其中的减来减去莫名其妙,

 如今豁然开朗

5.PE文件格式如下,和以往看过资料相比,这个是倒着的,只不过都是后人整理的习惯都,将

结构倒置,不过文件的头还确实放在了下面然后向上线性排列



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangweishuang/archive/2009/12/27/5087283.aspx

Tags:PE 文件 学习

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接