鱼C论坛

 找回密码
 立即注册
查看: 2677|回复: 0

[学习笔记] 《解密系列-基础篇》第六讲:简单的认识PE格式

[复制链接]
发表于 2017-12-25 17:11:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
越努力,越幸运。欢迎大家来看我的笔记,不对的请各位大佬指正,谢谢
一、什么是PE格式
(1)PE 的意思就是 Portable Executable (可移植的执行体)。它是 Windows 环境自身所带的执行体文件格式。它的一些特性继承自 Unix 的 Coff (common object file format) 文件格式。

(2) "portable executable" (可移植的执行体)意味着此文件格式是跨 win32 平台的 : 也就是说即使 Windows 运行在非 Intel 的 CPU 上,任何 win32 平台的 PE 装载器都能识别和使用该文件格式。(关于跨平台的问题:其实就是和ASCII类似的,大家都约定好了的)

(3)基本上所有 win32 执行体 ( 除了 VxD 和 16 位的 Dll) 都使用 PE 文件格式,包括 NT 的内核模式驱动程序( kernel mode drivers )。因而研究 PE 文件格式给了我们洞悉 Windows 结构的良机。

二、PE文件结构
(1)按照PE格式存放的文件我们叫做PE文件。

(2)PE文件使用的是一个平面地址空间,所有代码和数据都合并在一起,组成一个很大的结构。文件的内容被分割为不同的区块(Section,又称为区段,节等),块中包含代码或数据。每个区块都有自己在内存中的属性,即可读/写,只读等。每个区块都有不同的名字,这用名字主要用来表示区块的功能。(保护模式)

(3)常见区块的含义:
.text     是在编译或汇编结束时产生的一种块,             它的内容全是指令代码   
.rdata   是运行期只读数据   
.data  是初始化的数据块   
.idata    包含其它外来DLL的函数及数据信息,              即输入表   
.rsrc      包含模块的全部资源:如图标、菜单、              位图等

(4)PE文件非常好的一个地方就是在磁盘上的数据结构与在内存中的结构是一致的。当系统装载一个可执行文件到内存中,主要就是将一个PE文件的某一部分映射到地址空间中。这样,PE文件的数据结构在磁盘和内存中就是一样的了。(通俗的讲就是:映射到内存中的PE文件结构都是和在硬盘里面的PE文件结构是一样的。)

(5)而那些什么加壳加花呢?就是在映射到内存的时候打乱顺序,然后再具体的到每个块中加壳加花。

三、PE相关名词解释
(1)入口点(Entry Point)。(程序的原始入口点:OEP)
PE文件执行时的入口点(Entry Point)。也就是说,程序在执行时的第一行代码地址应该就是这个值。有点像8086汇编语言中end start中start指向的入口地址。

(2)文件偏移地址(File Offset)
当PE文件储存在磁盘上的时候,各数据的地址称作文件的偏移地址。文件偏移地址从PE文件的第一个字节开始计数,起始值为0。

(3)虚拟地址(Virtual Address, VA)
由于Windows程序运行在保护模式下,所以应用程序访问存储器所使用的逻辑地址称为虚拟地址(因为他不是真正的物理地址,真正的物理地址被windows老大妈的保护机制保护起来),又称为内存偏移地址(Memory Offset)。

(4)虚拟地址与实地址模式下的“段地址:偏移地址”索引方式类似,虚拟地址也写成“段:偏移量”的形式。但是不同之处在于这里的段不再是段地址,而是指段选择子。
例如:“0123:00401000”
0123:表示段选择子,其数据存储在CS段选择器里边,同一程序在不同系统环境下,此值可能不同,因此我们不需要关心;
00401000:此处表示内存中的虚拟地址,一般来说,同一个程序的同一条指令在不同系统环境下,此值相同(PE映射原理)。

(5)基地址(ImageBase)
文件执行时将被映射到指定内存地址中,这个初始内存地址称为基地址。这个值是由PE文件本身设定的。(按照默认设置,用Visual C++建立的EXE文件基地址是00400000h,DLL文件基地址是10000000h。但是,这个值可以自己在编译器设定的。)

(6)PE编辑器
2.PNG
1.PNG





谢谢小甲鱼带来的视频教程,感谢!!

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记,不对的请各位大佬指教,谢谢

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-23 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表