系统级编程(二):通过读取PE文件获取EXE或者DLL的依赖
PE文件
Windows的PE文件(Portable Executable)是一种专为Windows操作系统设计的标准可执行文件格式,用于存储和管理可执行程序、动态链接库(DLL)、驱动程序等二进制文件。PE文件格式自Windows NT 3.1引入以来,已成为Windows平台上所有可执行文件的标准格式,并广泛应用于后续的Windows版本,包括Windows XP、Windows 7、Windows 10等。
PE文件中包含了应用程序所需要的代码,数据等必要信息,很多黑客使用的挂钩,恶意程序都是隐藏在PE文件中的,所以也是安全人员必须了解的文件结构。
PE文件的基本结构
一个PE文件有如下几类信息:
- MS-DOS头部,用于兼容MS-DOS环境,包含判断文件是否为可执行文件的标志(如MZ)以及偏移量信息,用于指示PE头的位置
- PE文件头部,包含文件的基本信息,如文件类型、入口点地址、节表等。PE头是PE文件的核心部分,定义了文件的加载方式和运行环境。包含了两个部分:
- PE file header
- PE optional header,别看是optional,其实是更重要的部分。
- 节表