计算机病毒原理防范(第2版)实验PE&PeLoader.docx

计算机病毒原理防范(第2版)实验PE&PeLoader.docx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、本文档付费后,不意味着付费购买了版权,只能用于单位或个人使用,不得用于商业用途(如:【转卖】进行直接盈利和【编辑后售卖】进行间接盈利)。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:18428362892(电话支持时间:9:00-19:00)。
计算机病毒原理防范(第2版)实验PE

推荐参考资料:《PECOFF官方说明文档》、《老码识途》、MSDN、各大搜索引擎1.什么是PEPE的定义什么的就不多介绍了,随便一搜一大把,我们只要知道PE是一种为了便于组织数据而产生的一种文件格式。打个比方,每个程序、链接库都好比是一个图书馆,内部有大量的书籍(数据),另外哪些书是什么属性、放在哪都有明确的记录。PE文件就是图书馆,里面包含了大量的数据和数据摆放的规定。下面我们来一点点的解析PE当中的摆放规则和数据。2.用机器码构造一个PE格式的可执行文件了解了什么是PE,接下来我们要自己动手写一个PE格式的可执行文件了。首先要准备的是WinHex编辑器。打开之后新建一个文件,输入文件长度为1之后确定,就会看到如下界面,我们就要在这里面,把所需数据按规则填到合适的位置,最后保存成exe就可以直接运行了。这个程序要能弹出一个对话框,显示一句HelloPE,然后结束。在填充它之前,我们要先了解一下PE文件数据的摆放方式。如下图,是32位系统下的PE文件格式。它分为三块,第一块是DOS头,第二块是PE头,第三块是PE数据区。我们先来解释DOS头。它是为了兼容DOS系统而存在的,当此程序运行在DOS系统下时,会运行DOS头里的程序,一般只是打印一句话:This Program cannot be run in DOS mode。DOS头中包含两个部分:DOS MZ和DOS STUB。DOS MZ是一个IMAGE_DOS_HEADER 结构,IMAGE_DOS_HEADER是一个在系统中定义好的一种结构体,可以直接当变量类型申明使用,需要包含windows.h头文件,这个结构体在字节码文件中按顺序存储,下面所有类似的结构都是如此。它的定义如下:typedef?struct?_IMAGE_DOS_HEADER?{??????//?DOS?.EXE?header????WORD???e_magic;?????????????????????//?Magic?number????WORD???e_cblp;??????????????????????//?Bytes?on?last?page?of?file????WORD???e_cp;????????????????????????//?Pages?in?file????WORD???e_crlc;??????????????????????//?Relocations????WORD???e_cparhdr;???????????????????//?Size?of?header?in?paragraphs????WORD???e_minalloc;??????????????????//?Minimum?extra?paragraphs?needed????WORD???e_maxalloc;??????????????????//?Maximum?extra?paragraphs?needed????WORD???e_ss;????????????????????????//?Initial?(relative)?SS?value????WORD???e_sp;????????????????????????//?Initial?SP?value????WORD???e_csum;??????????????????????//?Checksum????WORD???e_ip;????????????????????????//?Initial?IP?value????WORD???e_cs;????????????????????????//?Initial?(relative)?CS?value????WORD???e_lfarlc;????????????????????//?File?address?of?relocation?table????WORD???e_ovno;??????????????????????//?Overlay?number????WORD???e_res[4];????????????????????//?Reserved?words????WORD???e_oemid;?????????????????????//?OEM?identifier?(for?e_oeminfo)????WORD???e_oeminfo;???????????????????//?OEM?information;?e_oemid?specific????WORD???e_res2[10];??????????????????//?Reserved?words????LONG???e_lfanew;????????????????????//?File?address

您可能关注的文档

文档评论(0)

liwenhua11

相关文档

相关课程推荐