PE是Portable Executable File Format(可移植的运行体)简写,它是眼下Windows平台上的主流可运行文件格式。

PE文件里包括的内容非常多,详细我就不在这解释了,有兴趣的能够參看之后列出的參考资料及其它相关内容。

近期我也在学习PE文件格式,參考了很多资料。用C++封装了一个高效方便的PE文件格式解析的类。

该类对想学PE文件结构的朋友可算一份可贵的资料。代码均非常易懂,考虑较全面,具有一定的通用性。

同一时候该类也能够让想创建自己的PE文件解析软件的朋能够轻松在此基础上实现。

最后。错误在所难免。假设大家发现有错误,欢迎大家指正。



下面是该类中接口函数的定义代码(完整代码附于之后下载链接中):







凝视部分已经具体说了各功能。主要操作例如以下:

1、调用Attach成员函数使类对象附加到一个PE文件

2、通过ReadXXX 读取须要的文件夹(包含导入表、导出表、资源表、基址重定位....)

3、调用相关处理函数获取对应信息(依据读取内容的不同而不同,详细參看凝视)

4、将获得的数据做你想要的操作(如显示出来等)

5、ClearXXX释放资源(可选,对象析构时会自己主动调用)

6、Detach释放对该文件的关联(可选。对象析构时会自己主动调用)


眼下基本数据文件夹中的大部分都能够获取。.Net部分(IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR)还未实现,之后会继续完好

之后的链接中附有一个Demo演示怎样使用该类,如仍有不清楚的朋友能够回复寻问我



最后发一个自己写的获取PE文件信息的软件,能够Dump出PE文件的各信息,该软件是用该PE解析类实现的,详细代码较多,初看并不易懂,所以在这不提供了国。

该软件我会附载之后的下载链接里。能够方便获取PE文件里各信息,因为精力有限,写的是控制台下的。有兴趣的朋友能够自己实现一个GUI版本号的~

软件中,仅仅需在控制台下输入PE文件路径。或者将文件拖拽进窗体(插入.lnk快捷方式也行)。程序会将须要的信息输出来。

下面附上软件的一部分截图:

C++PE文件格式解析类(轻松制作自己的PE文件解析器)

C++PE文件格式解析类(轻松制作自己的PE文件解析器)


C++PE文件格式解析类(轻松制作自己的PE文件解析器)

C++PE文件格式解析类(轻松制作自己的PE文件解析器)


C++PE文件格式解析类(轻松制作自己的PE文件解析器)


C++PE文件格式解析类(轻松制作自己的PE文件解析器)



哈。啰嗦了这么多,接下来就留给各位去体验吧。事实上PE文件没想像那么难~


相关资源下载地址:

点击打开链接

(内含PE文件解析类源代码文件、简单DEMO、以及自已实现的控制台PE文件查看器)



參考书籍:

《Windows PE权威指南》戚利

《加密与解密(第三版)》段钢

《软件加密技术内幕》看雪学院

《Windows环境下32位汇编语言程序设计(典葳版)》罗云彬

《加密与解密》吴强

《逆向project核心原理》李承远


參考软件:

Stud_PE

LordPE

StudyPE+

eXeScope-ha

CFF Explorer

Resource Hacker

PEID

PEview

ExeinfoPe

OllyDbg

IDA Pro


參考源代码:

PEDump

libpe-master

The Portable Executable File Format from Top to Bottom


PE文件格式官方文档:Microsoft PE and COFF Specification


在线PEDump工具:PEdump - dump your PE!


同一时候參考了CSDN、看雪学院、吾爱破解上等资料,在此一并感谢!



相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2021-10-21
  • 2021-09-26
  • 2021-07-23
  • 2021-05-13
猜你喜欢
  • 2021-09-13
  • 2022-12-23
  • 2021-10-05
  • 2022-12-23
  • 2021-11-05
相关资源
相似解决方案