信息安全课件(2010)6-2病毒在pe文件中的寄生和感染

上传人:f****u 文档编号:110573828 上传时间:2019-10-30 格式:PDF 页数:22 大小:211.08KB
返回 下载 相关 举报
信息安全课件(2010)6-2病毒在pe文件中的寄生和感染_第1页
第1页 / 共22页
信息安全课件(2010)6-2病毒在pe文件中的寄生和感染_第2页
第2页 / 共22页
信息安全课件(2010)6-2病毒在pe文件中的寄生和感染_第3页
第3页 / 共22页
信息安全课件(2010)6-2病毒在pe文件中的寄生和感染_第4页
第4页 / 共22页
信息安全课件(2010)6-2病毒在pe文件中的寄生和感染_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《信息安全课件(2010)6-2病毒在pe文件中的寄生和感染》由会员分享,可在线阅读,更多相关《信息安全课件(2010)6-2病毒在pe文件中的寄生和感染(22页珍藏版)》请在金锄头文库上搜索。

1、1 病毒在病毒在PE文件中的寄生和感染文件中的寄生和感染 主讲人:裴士辉主讲人:裴士辉 e_mail: shihui_pei 电话:电话:13694302598 病毒在病毒在PE文件中的寄生和感染文件中的寄生和感染 ?PE文件的结构文件的结构 ?RVA ?装载器对节的装入过程装载器对节的装入过程 ?PE文件到内存的映射文件到内存的映射 ?动态获取动态获取API入口地址入口地址 ?在在PE文件上添加代码文件上添加代码 ?CIH病毒在病毒在PE文件中的寄生和感染文件中的寄生和感染 2 PE文件的结构文件的结构 ?Portable Executable File Format 可移值的执行体可移值的

2、执行体 ?是在是在Windows 9X, Windows NT, Windows 2000下,微软 为 下,微软 为32位可执行文件设计的格式位可执行文件设计的格式 节数据节数据 节表节表 PE文件头PE文件头 DOS部分 PE文件的基本结构 DOS部分 PE文件的基本结构 DOS部分部分 DOS StubDOS Stub IMAGE_DOS_HEADER DOS 部分 IMAGE_DOS_HEADER DOS 部分 3 IMAGE_DOS_HEADER STRUCT e_magic WORD ? ;dos可执行文件标志可执行文件标志”MZ” e_cblpWORD ? e_cp WORD ?

3、e_crlcWORD ? e_cparhdrWORD ? e_minallocWORD ? e_maxallocWORD ? e_ssWORD ? e_sp WORD ? e_csumWORD ? e_ipWORD ? e_csWORD ? e_lfarlcWORD ? e_ovnoWORD ? e_resWORD 4 dup(?) e_oemidWORD ? e_oeminfoWORD ? e_res2 WORD 10 dup(?) e_lfanewDWORD ? ;指向;指向PE文件头文件头 IMAGE_DOS_HEADER ENDS DOS Stub DOS部分的可执行代码 简单地显示

4、部分的可执行代码 简单地显示: “This program cannot be run in DOS mode” 然后退出然后退出 4 PE文件头文件头 IMAGE_NT_HEADERS STRUCT Signature DWORD FileHeaderIMAGE_FILE_HEADER OptionalHeader IMAGE_OPTIONAL_HEADER32 IMAGE_NT_HEADERS ENDS 其中其中PE文件头的第一个双字是一个标志:文件头的第一个双字是一个标志: 00004550h 既既”P”,”E”加上两个加上两个0 IMAGE_FILE_HEADER Struct Mac

5、hine WORD ? ;0004h-远行平台远行平台 NumberOfSectionsWORD ? ;0006h-文件的节数目文件的节数目 TimeDateStampDWORD ? ;0008h-文件创建日期和时间文件创建日期和时间 PointerToSymbolTableDWORD ? ;000ch-指向符号表(用于调试指向符号表(用于调试) NumberOfSymbolsDWORD ? ;0010h-符号表中的符号数量(用于调试)符号表中的符号数量(用于调试) SizeOfOptionalHeaderWORD ? ;0014h-IMAGE_OPTIONAL_HEADER32结构的长度结构

6、的长度 Characteristics WORD ? ;0016h-文件属性文件属性 IMAGE_FILE_HEADER ENDS 5 文件属性文件属性 ?不同的定义将影响系统对文件的装入方式不同的定义将影响系统对文件的装入方式 ?对于普通的对于普通的PE文件,一般是文件,一般是010fh ?对于对于DLL文件,一般是文件,一般是210eh IMAGE_OPTIONAL_HEADER Struct Magic WORD ? ;0018h 107h=ROM IMAGE,10bh=exe Image MajorLinkerVersionBYTE ? ;001ah 连接器版本号连接器版本号 Mino

7、rLinkerVersionBYTE ? ;001bh SizeOfCodeDWORD? ;001ch 所有含代码的节的总大小所有含代码的节的总大小 SizeOfInitializedDataDWORD? ;0020h所有含已初始化数据的节的总大小所有含已初始化数据的节的总大小 SizeOfUninitializedDataDWORD? ;0024h所有含未初始化数据的节的大小所有含未初始化数据的节的大小 AddressOfEntryPointDWORD? ;0028h 程序执行入口程序执行入口RVA BaseOfCodeDWORD ; 002ch 代码的节的起始代码的节的起始RVA Base

8、OfDataDWORD ;0030h 数据的节的起始数据的节的起始RVA ImageBaseDWORD ;0034h 程序的建议的装载地址程序的建议的装载地址 SectionAlignmentDWORD ;0038h 内存中的节的对齐粒度内存中的节的对齐粒度 FileAlignmentDWORD ;003ch 文件中的节的对齐粒度文件中的节的对齐粒度 MajorOperatingSystemVersion WORD;0040h 操作系统的主版本号操作系统的主版本号 MinorOperatingSystemVersion WORD;0042h 操作系统的副版本号操作系统的副版本号 MajorIm

9、ageVersionWORD;0044h 可远行于操作系统的最小版本号可远行于操作系统的最小版本号 6 MinorImageVersionWORD;0046h MajorSubsystemVersionWORD;0048h可远行于操作系统的最小子版本号可远行于操作系统的最小子版本号 MinorSubsystemVersionWORD;004ah Win32VersionValue DWORD ;004ch 未用未用 SizeOfImageDWORD ;0050h 内存中整个内存中整个PE映像尺寸映像尺寸 SizeOfHeadersDWORD ;0054h 所有头所有头+节表的大小节表的大小 C

10、heckSumDWORD ;0058h Subsystem WORD;005ch 文件的子系统文件的子系统 DllCharacteristicsWORD;005eh SizeOfStackReserveDWORD ;0060h 初始化时的堆栈大小初始化时的堆栈大小 SizeOfStackCommitDWORD ;0064h 初始化时实际提交的堆栈大小初始化时实际提交的堆栈大小 SizeOfHeapReserveDWORD ;0068h 初始化时保留的堆大小初始化时保留的堆大小 SizeOfHeapCommitDWORD ;006ch 初始化时实际提交的堆大小初始化时实际提交的堆大小 Loade

11、rFlagsDWORD ;0070h 未用未用 NumberOfRvaAndSizesDWORD ;0074h 下面的数据目录结构的数量下面的数据目录结构的数量 DataDirectoryIMAGE_DATA_DIRECTORY 16dup();0078h IMAGE_OPTIONAL_HEADER ENDS AddressOfEntryPoint ?指出文件被执行时的入口地址,指是一个指出文件被执行时的入口地址,指是一个RVA地址。地址。 ?如果在一个可执行文件上附加了一段代码并想让这段代码首 先被执行,那么只需将这个入口地址指向附加的代码就可以 了。 如果在一个可执行文件上附加了一段代码并

12、想让这段代码首 先被执行,那么只需将这个入口地址指向附加的代码就可以 了。 7 ImageBase ?指出文件的优先装入地址,也就是说当文件被执行时,如果 可能的话, 指出文件的优先装入地址,也就是说当文件被执行时,如果 可能的话,Windows优先将文件装入到由优先将文件装入到由ImageBase字段指 定的地址中。 字段指 定的地址中。 ?只有指定的地址已经被其它模块使用时,文件才被装入到其 它地之中。 只有指定的地址已经被其它模块使用时,文件才被装入到其 它地之中。 ?一般一般EXE文件的默认优先装入地址被定为文件的默认优先装入地址被定为00400000h ?DLL文件的默认优先装入地址

13、被定为文件的默认优先装入地址被定为10000000h SectionAlignment和和FileAlignment SectionAlignment字段指定了节被装入内存后的对齐单位。 也就是说,每个节被装入的地址必定是本字段指定数值的整数 倍 字段指定了节被装入内存后的对齐单位。 也就是说,每个节被装入的地址必定是本字段指定数值的整数 倍 FileAlignment字段指定了节存储在磁盘文件中时的对齐单位字段指定了节存储在磁盘文件中时的对齐单位 8 DataDirectory ?该字段由该字段由16个相同的个相同的IMAGE_DATA_DIRECTORY结构组成 ,虽然 结构组成 ,虽然P

14、E文件中的数据是按照装入内存后的页属性归类而被 放在不同的节中的,但是这些处于各个节中的数据按照用途 可以被分为导出表、导入表、资源、重定位表等数据块,这 文件中的数据是按照装入内存后的页属性归类而被 放在不同的节中的,但是这些处于各个节中的数据按照用途 可以被分为导出表、导入表、资源、重定位表等数据块,这 16个个IMAGE_DATA_DIRECTORY结构就是用来定义多种不 同用途的数据块的。 结构就是用来定义多种不 同用途的数据块的。 IMAGE_DATA_DIRECTORY Struct VirtualAddress DWORD ?; 数据的起始数据的起始RVA Size DWORD

15、?; 数据块的长度数据块的长度 IMAGE_DATA_DIRECTORY ENDS 9 索引索引对应的数据块对应的数据块 0 0导出表导出表 1 1导入表导入表 2 2资源资源 3 3异常异常 4 4安全安全 5 5重定位表重定位表 6 6调试信息调试信息 7 7版本信息版本信息 索引索引对应的数据块对应的数据块 8 8不详不详 9 9 Thread local Storage Thread local Storage 1010不详不详 1111不详不详 1212导入函数地址表导入函数地址表 1313不详不详 1414不详不详 1515未使用 数据目录列表的含义 未使用 数据目录列表的含义 节表节表 ?PE文件中所有节的属性都被定义在节表中,节表由一系列 的 文件中所有节的属性都被定义在节表中,节表由一系列 的IMAGE_SECTION_HEADER结构排列而成的,每个结 构用来描述一个节。 结构排列而成的,每个结 构用来描述一个节。 ?节表存放在紧接在节表存放在紧接在PE文件头

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号