汉化PE可执行文件的基础知识

  • 汉化PE可执行文件的基础知识已关闭评论
  • 37 次浏览
  • A+
所属分类:编程开发

(1)在Windows下所谓PE文件即Portable Executable,意为可移植的可执行的文件。常见的.EXE、.DLL、.OCX、.SYS、.COM都是PE文件。PE文件有一个共同特点:前两个字节为4D 5A(MZ),*如果一个文件前两个字节不是4D 5A则其肯定不是可执行文件*。
PE文件结构:DOS头+PE头+节表+.data/.rdata/.text。注意:一个exe文件本身是一个PE文件,但是由于包含dll库,所以一个exe文件也是许多PE文件组成的(包含多个dll)一个PE文件。
(2)打开一个PE文件,其头2个字节必为字符串“MZ”,这是Mark Zbikowski的姓名缩写,他是最初的MS-DOS设计者之一。然后是一些在MS-DOS下的一些参数,这些参数是在MS-DOS下运行该程序时要用到的。在这些参数的末尾也就是文件的偏移0x3C(第60字节)处是是一个4字节的PE文件签名的偏移地址。该地址有一个专用名称叫做“E_lfanew”。这个签名是“PE00”(字母“P”和“E”后跟着两个空字节)。紧跟着E_lfanew的是一个MS-DOS程序。那是一个运行于MS-DOS下的合法应用程序。当可执行文件(一般指exe、com文件)运行于MS-DOS下时,这个程序显示“This program cannot be run in DOS mode(此程序不能在DOS模式下运行)”这条消息。用户也可以自己更改该程序,有些还原软件就是这么干的。同时,有些程序既能运行于DOS又能运行于Windows下就是这个原因。
下面以简单软件示例:
(1)kanwenjian.exe
****DOS头
①e_magic:判断一个文件是不是PE文件
②e_lfanew:相对于文件首的偏移量,用于找到PE头;
汉化PE可执行文件的基础知识4字节(共4行)的DOS头,第一个成员2个字节是可执行文件的标志信息;最后一个成员4字节是PE头的偏移地址为000000D0h,我们可以根据000000D0h来获取PE头的地址。然后我们发现这个文件没有PE头,所以我们要在这给它加个PE头, 汉化PE可执行文件的基础知识
DOS头和PE头中间的空余位置是一些垃圾值以及编译器填充的一些“is program cannot be run in DOS mode.”或“This program must be run under Win32”等信息
(2)reverseMe
打开后看到
汉化PE可执行文件的基础知识……….

汉化PE可执行文件的基础知识

  • 官方微信公众号
  • 扫一扫关注微信公众号,如果你觉得本站帮到了你,请通过下面的赏字按钮捐赠本站,谢谢!
  • weinxin
  • 本站官方头条号
  • 扫一扫关注官方头条号,新老用户扫描下载今日头条极速版,可领取最高32元现金,每天使用都可领钱。
  • weinxin