计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明

计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明

ID:47651506

大小:201.79 KB

页数:38页

时间:2019-10-16

计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明_第1页
计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明_第2页
计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明_第3页
计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明_第4页
计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明_第5页
资源描述:

《计算机病毒原理与防范(第2版)实验PELOADER文档和代码说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、推荐参考资料:《PECOFF官方说明文档》、《老码识途》、MSDN、各大搜索引擎实验一:设计和实现一个基于PE文件结构的加载程序1•什么是PEPE的定义什么的就不多介绍了,随便一搜一大把,我们只要知道PE是一种为了便于组织数据而产生的一种文件格式。打个比方,每个程序、链接库都好比是一个图书馆,内部有大量的书籍(数据),另外哪些书是什么属性、放在哪都有明确的记录。PE文件就是图书馆,里面包含了大量的数据和数据摆放的规定。下面我们来一点点的解析PE当中的摆放规则和数据。2•用机器码构造一个PE格式的可执行文件了解了什么是PE,接下来我们要自己

2、动手写一个PE格式的可执行文件了。首先要准备的是WinHex编辑器。打开之后新建一个文件,输入文件长度为1之后确定,就会看到如下界面,我们就要在这里面,把所需数据按规则填到合适的位置,最后保存成exe就可以直接运行了。这个程序要能弹出一个对话框,显示一句HelloPE,然后结束。nonameOffset012-3456789ABCDEF0000000000在填充它之前,我们要先了解一下PE文件数据的摆放方式。如下图,是32位系统下的PE文件格式。DOS头PE头PE数据区它分为三块,第一块是DOS头,第二块是PE头,第三块是PE数据区。我们

3、先来解释DOS头。它是为了兼容DOS系统而存在的,当此程序运行在DOS系统下时,会运行DOS头里的程序,一般只是打印一句话:ThisProgramcannotberuninDOSmode。DOS头中包含两个部分:DOSMZ和DOSSTUBoDOSMZ是一个IMAGE_DOS_HEADER结构,IMAGE_DOS_HEADER是一个在系统中定义好的一种结构体,可以直接当变量类型申明使用,需要包含windows.h头文件,这个结构体在字节码文件中按顺序存储,下而所有类似的结构都是如此。它的定义如下:typedefstruetIMAGEDOSH

4、EADER{e_magic;//DOS・EXEheader//MagicWORDnumberWORDeeblp;//BytesonlastpageoffileWORDe_cp;//PagesinfileWORDe_crlc;//RelocationsWORDe_cparhdr;//SizeofheaderinparagraphsWORDeminalloc;//MinimumextraparagraphsneededWORDemaxalloc;//MaximumextraparagraphsncededWORDess;//Initial(r

5、elative)SSvalueWORDe_sp;//Init关于它的每个成员的详细含义,如果需要了解可以在PEC0FF官方文档中查找,我们在这里只关心我们需要用到的成员。在这些成员中,需要用到且马上可以确定其值的成员,我们标为绿色;需要用到但是其值需要根据后而的信息来计算的成员,我们标为红色,并暂时将其值设为若于个A;其他在这暂时用不到的成员标为黑色,大家可以选择性的进行了解。后面所有成员都是如此。ialSPvalueWORDecsum;//ChecksumWORDe_ip;//InitialIPvalueWORDe_cs;//Initi

6、al(relative)CSvalueWORDe_lfarlc;//FileaddressofrelocationtableWORDeovno;//OverlaynumberWORDeres[4];//ReservedwordsWORDe_oemid;//OEMidentifier(foreoeminfo)WORDe_oeminfo;//OEMinformation;eoemidspecificWORDe_res2[10];//ReservedwordsLONGelfanew;//Fileaddressofnewexeheader};了解

7、完DOSMZ部分的结构之后,我们就要开始构造其内容并填进文件中了首先计算一下DOS头的大小。DOSMZ部分是固定大小的结构体。它由30个WORD和1个DWORD组成,总共64,也就是40H个字节,每行16个字节的话,正好是四行。在填充文件Z前,我们要让文件尺寸增加为64个字节。在已有的那个字节处点击右键,选edit->pastezerobytes,输入63(DOSMZ大小为64字节,之前已经输入过一个字节,所以增加63个字节)点确定,63个00(每4位表示一个16进制值,两个值止好就是8位,即一个字节)就被增加到了开始那个字节的后而。然后

8、我们来设计一下DOSMZ屮各成员的值,其屮对我们有用的只有两个值:e_magic和e_lfanew。e_magic相当于一个标志,所有PE文件都必须以“MZ”开始(MZ是MarkZbikows

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。