把PE映像文件从内存中DUMP到磁盘

本文介绍了如何将内存中的PE映像文件导出到磁盘,利用PE文件在内存和磁盘中数据结构的相似性,通过分析DOS头、NT头和区块表等关键结构,结合ReadProcessMemory()等函数实现 Dump 功能。通过示例程序阐述了主要步骤,包括获取内存页大小、模块名、Dump PE文件、写入磁盘文件等过程。
摘要由CSDN通过智能技术生成
了解了EXE和DLL里面的奥秘,你将成为一名知识更加渊博的程序员!”
可以看到,作为网络安全爱好者的我们,掌握和熟练利用PE(Portable Executable)文件格式的知识将必定能为我们学习黑客技术和攻防知识打下良好的基础。
在网络攻防的对抗中,常常接触到有关PE文件格式方面的技术,比如缓冲区溢出技术中编写Win32 ShellCode时利用PE文件结构的特征查找API函数地址就是一个很经典的例子,又比如,令人寒心的PE型病毒都是利用PE文件结构而大规模感染系统的其他PE文件。
PE文件格式的基础知识,如果读者不熟悉的话,网上这方面的教程比比皆是。另外,对于习惯看书的读者们,强烈推荐看雪软件的《加密解密II》,《软件加密技术内幕》这两本经典之作。
现在,市面上有很多的静态分析PE文件方面的工具,像PeDump和Pe Explorer(附件中均有收录)这两款工具,可算的上是其中的佼佼者。前者是命令行下的,从它的可选参数就可以看出期功能的强大。后者是图形化的,界面友好而且功能也很强大。
读者肯定有疑问了,既然都有这么现成的工具了,那写本文目的是什么呢?这里说明一下,市面上出现的PE分析工具包括推荐的两款工具都有一个共同点,就是他们加载的都是磁盘上的PE文件,但有时候我们却要分析内存中的PE映象,这个又要如何实现呢?我们下面就自己来分析解决这个问题吧!

 

首先,要明确的一点是,PE文件格式在磁盘中的数据结构布局和内存中的数据格式布局是一致的,就是说, 知道如何在PE文件中寻找一些内容,那么几乎都能在被装入到内存的映射文件中找到相同的信息。
这样的话,就好办了,我们可以使用乾坤大挪移,用类似分析磁盘PE文件的方法来分析内存中的PE文件了。大家可以看到,所有PE文件(包括32位的DLL)都是以一个简单MZ-DOS头开始,MZ格式的文件头在WINNT.H中有定义,其IMAGE_DOS_HEADER结构如下(左边数字是到文件头的偏移量):
typedef struct _IMAGE_DOS_HEADER { // DOS .EXE 头
+0h WORD e_magic; // “MZ”
…...
+3Ch LONG e_lfanew; //指向PE文件头偏移
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
我只列出了两个最重要的成员,e_magic是DOS可执行文件标记“MZ”,而e_lfanew指向PE文件头“PE”,0,0。执行程序在执行的时候,PE文件装载器将从MZ-DOS头的e_lfanew字段找到PE头起始偏移,再跳到真正的PE文件头处。IMAGE_NT_HEADERS的数据结构如下:
typedef struct _IMAGE_NT_HEADERS {
+0h DWORD Signature; // PE文件标识
+4h IMAGE_FILE_HEADER

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PE文件格式研究及PEDUMP的实现 具 体 要 求: 1、 对PE文件格式作详细的分析研究。 2、 对PEDUMP工具开发做出系统需求分析报告及可行性研究。3、 完成WIN32环境下PEDUMP工具开发。 4、 对设计的要求:① 对现有的PEDUMP工具功能分析② 选取新技术进行软件设计开发③ 成果形式⑴ 以光盘形式提供软件及说明一套⑵ 按照要求完成规范的毕业论文 目 录 第一章 问题定义 ……………………………………………………… 1 第一节 PE格式简要介绍 ……………………………………………… 1 第二节 PE格式分析器开发意义 ……………………………………… 15 第三节 PE格式分析器开发目标 ……………………………………… 16 第二章 系统可行性分析 ……………………………………………… 17 第一节 可行性研究 …………………………………………………… 17 第二节 系统基本模型 …………………………………………………… 18 第三节 数据流图 ………………………………………………………… 19 第四节 数据字典 ………………………………………………………… 19 第三章 需求分析 ………………………………………………………… 23 第一节 系统需求分析 …………………………………………………… 23 第二节 目标确定 ………………………………………………………. 24 第三节 设计思想和性能设计 …………………………………………… 25 第四章 系统总体分析 …………………………………………………… 26 第一节 选择合理的方案 ………………………………………………… 26 第二节 系统功能分解 …………………………………………………… 27 第三节 资源数据导出导入的分析设计 ………………………………… 27 第四节 文本结果导出的分析设计 ……………………………………… 28 第五章 系统程序设计 …………………………………………………… 29 第一节 分析模块的实现 ………………………………………………… 29 第二节 基本信息显示模块的实现 ……………………………………… 29 第三节 资源数据导出导入模块的实现 ……………….……………… 42 第四节 文本结果导出模块的实现 ……………………………………… 46 第六章 运行结果及界面 ………………………………………………… 48 第七章 总结 ……………………………………………………………… 51 附录一 参考文献 ……………………………………………………… 52 附录二 文件分析文本结果事例 ………………………………………… 53
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值