2024年5月7日发(作者:)

黑客老鸟讲逆向分析:什么是pe文件

/ 2008-02-25 14:18 子明 我要评论(0)

专家特稿】讲到逆向,更多的人都是考虑到既然是逆向那就应该反着来推或者

相反,其实则不然,这里我们要讲的是为了更深入的研究windows编写机制,更好的研究他

们的安全,谁让微软这么保守虽然曾经流出过windows的部分代码,但是还是有更多的秘密

值得我们去深挖,每天都有新的发现,做为逆向分析的第一步,我们首先来学习下什么是

pe文件?

针对pe的认识

PE是Portable Executable File Format(可移植的执行体)简写,它是目前Windows

平台上的主流可执行文件格式。

Pe的文件格式

PE("portable executable")文件格式是针对MS windows NT, windows 95 and win32s

的可执行二进制代码(DLLs and programs) 。在windows NT内, 驱动程序也是这个格式,

也可以用于对象文件和库。

这个格式是Microsoft设计的,并在1993经过TIS (tool interface standard)委员

会(Microsoft, Intel, Borland, Watcom, IBM等)标准化。它基于在UNIX和VMS上运行的

对象文件和可执行文件的COFF"common object file format"格式。

Pe格式结构图

以上就是逆向分析的第一课程,有关pe的认识。下面我们接着将软件的保护甲——壳。

【 独家特稿,转载请注明出处及作者!】

【相关文章】

黑客老鸟讲逆向分析:什么是壳及壳的加载过程

/ 2008-02-25 14:27 子明 我要评论(0)

【 专家特稿】上节课程我主要介绍了什么是pe,本次课程我们主要来讲一

下壳,这也是破解软件的必修课程,也是逆向分析里面的必修功课。

在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序。它们一般

都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。由于这段程序和自然界的

壳在功能上有很多相同的地方,基于命名的规则,就把这样的程序称为“壳”了。壳分为私

密壳和压缩壳。

壳的示意图

壳的加载过程

1)获取壳所需要使用的API地址

如果用PE编辑工具查看加壳后的文件,会发现未加壳的文件和加壳后的文件的输入表

不一样,加壳后的输入表一般所引入的DLL和API函数很少,甚至只有以及

GetProcAddress这个API函数。

壳实际上还需要其他的API函数来完成它的工作,为了隐藏这些API,它一般只在壳的

代码中用显式链接方式动态加载这些API函数。

2)解密原程序的各个区块(Section)的数据