- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机病毒原理与防范(第2版)实验PELOADR文档和代码说明
推荐参考资料:《PECOFF官方说明文档》、《老码识途》、MSDN、各大搜索引擎实验一:设计和实现一个基于PE文件结构的加载程序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头文件,这个结构体在字节码文件中按顺序存储,下面所有类似的结构都是如此。它的定义如下:关于它的每个成员的详细含义,如果需要了解可以在PECOFF官方文档中查找,我们在这里只关心我们需要用到的成员。在这些成员中,需要用到且马上可以确定其值的成员,我们标为绿色;需要用到但是其值需要根据后面的信息来计算的成员,我们标为红色,并暂时将其值设为若干个A;其他在这暂时用不到的成员标为黑色,大家可以选择性的进行了解。后面所有成员都是如此。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_o
文档评论(0)