通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
资源搜索:
热门搜索:Linux VB C语言 PhotoShop Flash TCP/IP
   首页 | 文章 | 软件 | 动画 | 资源 | 励志 | 骗术 | 论坛 | 邮箱 | 会员中心 | 军事 | 科技 | 博客 | 图片 | 商城 | 最新更新 | 800g资源 | 爱心黑客
您现在的位置: 爱国者黑客 >> 资源 >> 安全技术 >> 软件破解 >> 破解实例 >> 文章正文
PE文件格式(1)
责任编辑:ncic   更新日期:2007-4-5

  说明:希望本文能够对初级入门CRACKER有一定帮助,翻译存在疏漏或者不准确,希望来信指出。感谢您的指导!感谢看雪为我们提供这个交流平台,让我们技术与时俱进!!

  前言:

  PE("portableexecutable")文件格式是针对MSwindowsNT,windows95and

  win32s的可执行二进制代码(DLLsandprograms)。在windowsNT内,驱动程序也是这个格式。也可以用于对象文件和库。

  这个格式是Microsoft设计的,并在1993经过TIS(toolinterfacestandard)委员会(Microsoft,Intel,Borland,Watcom,IBM等)标准化了的。它基于在UNIX和VMS上运行的对象文件和可执行文件的COFF"commonobjectfileformat"格式。

  win32SDK包括一个头文件<winnt.h>包括对PE格式的定义。我将提及成员名和定义。你也可能发现DLL文件"imagehelp.dll"非常有用。它是NT的一部分,但文档很少。它的一些函数在"DeveloperNetwork"被描述。

  总览:

  在PE文件的开始,我们可以发现MSDOS执行部分("stub");这使得任何一个PE文件是有效的DOS执行文件。在DOS-stub之后是32位的魔数0x00004550(IMAGE_NT_SIGNATURE).然后是一个COFF格式的文件头,指明在何种机器上运行,多少个节在里面,连接的时间,是否是可执行文件或者DLL等。DLL和可执行文件的区别:DLL不能够启动,只可以被其他可执行文件使用,一个可执行文件不能够连接到另一个可执行文件。

  接着,我们看到一个可选文件头optionalheader(虽然叫“可选”,它实际上一直存在)。

  COFF把可选文件头用于库,不用于目标文件。这里告诉我们文件如何被调入:起始地址,预留堆栈数,数据段尺寸。

  一个有趣的部分是尾巴上的数组数据目录datadirectories,这些目录包含指向节内数据的指针。例如,如果文件有输出目录,可以在数组成员IMAGE_DIRECTORY_ENTRY_EXPORT内发现一个指针指向那个目录(目录描述结构->THUNKDATA结构->BYNAME结构)。他将指向一个节。

  在头的后面是节头,实际上,节的内容就是真正需要运行一个程序所需要的东西,所有的头和目录成员就是帮你找到它。每个节有几个标志:对齐,包含的数据类型(初始化数据等),是否可以共享等,及数据自身。多数节含有一个或多个通过“可选头”内的数据目录项引用的目录。没有目录类型的内容是初始化数据或者可执行代码。(节是物理意义上的内容组织,目录是逻辑意义上的内容组织,两者互相配合才能找到需要的东西。节是存储内容的地方,区域的安排,目录是如何对里面东西进行查找,目的是寻找里面的内容)

  • 上一篇文章:
  • 下一篇文章:
  • 热门文章
    Olldbg常见问题
    汇编语言的艺术(组合语言的艺术)--观
    汇编语言的艺术(组合语言的艺术)--准
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言的艺术(组合语言的艺术)--基
    汇编语言---程式设计 (4)
    虚拟8086模式
    SYS命令使用说明
    javascript + CSS 实现动态菜单显
    推荐文章
    自制Windows XP SP2自动安装光盘
    SQLServer注入工具改进版 v1.02
    使用photoshop CS进行自然美肤
    Photoshop绘制诺基亚手机
    PHOTOSHOP制作秋日之梦
    PHOTOSHOP鼠绘名模王爱萍
    Photoshop制作晶莹飞溅的水珠
    教你用PHOTOSHOP做放大镜
    鼠绘美女及服装修画全过程