Windows PE基础补充
0x00 前言
补充一些WIndows PE学习过程的基础知识。
0x01 过程
1.PE文件格式
Win16平台(Windows3.x)可执行格式是NE格式。
Win32平台(Windows 9x/NT/2000/xp/2003/vista/CE)可执行格式是PE格式。
PE 全称 Portable Executable File Format,可移植的执行体。是目前Windows平台的主流可执行文件格式。
2.EXE和DLL区别
EXE和DLL区别只是语义上的,他们使用的PE格式完全相同。区别在于有一个字段标识出文件为EXE或者DLL。
DLL的扩展,OCX控件和CPL文件(控制面板程序)等。
3.64位Windows和32位Windows区别
64位Windows是对PE格式做了一些修饰,新格式叫PE32+。将32位字段扩展位64位。
4.PE文件的数据结构
PE文件的数据结构也区分32位和64位。结构选择依赖用户正在编译的模式(例_WIN64是否被定义)。
5.PE格式定义
PE格式定义的主要地方位于我们的头文件: winnt.h 。这个头文件中几乎能找到关于PE文件的所有定义。
6.PE文件的概念
PE文件使用一个平面地址空间,所有代码和数据都被合并在一起,组成一个大型结构。文件的内容被分割位不同的区块(section,又称区段、节等)区块中包含代码或数据。
PE文件各个区块按页边界对齐,区块无大小限制,是一个连续结构。每个块都有自己在内存中的一套属性,例,单个区块是否包含代码,是否只读或可读/写等。
6.PE基地址
当PE文件通过Windows加载器加载到内存后,内存中的版本称为模块(Module)。
映射文件的起始地址被称为模块的句柄(hModule),可以用过句柄访问内存其他的数据结构。这个初始内存地址也称为基地址(ImageBase)。
标签:文件,Windows,DLL,补充,PE,格式,区块 来源: https://www.cnblogs.com/cunren/p/15601098.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。