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

47,995 次浏览次阅读

共计 985 个字符,预计需要花费 3 分钟才能阅读完成。

原创文章,转载请注明: 转载自cnorg.12hp.de

注意:由于网站空间位于国外,建议避开晚上的访问高峰期,以免因访问缓慢而影响你的使用体验。

若下载链接为空,是由于国外空间速度缓慢,引发缓存问题所致。请私信本站反馈!

(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 可执行文件的基础知识

正文完
 413

扫一扫关注公众号和捐赠

自由家园
版权声明:本站原创文章,由 自由家园 于2025-10-17发表,共计985字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。