《软件安全》复习PPTPPT格式课件下载.ppt

上传人:b****3 文档编号:15593080 上传时间:2022-11-07 格式:PPT 页数:70 大小:11.21MB
下载 相关 举报
《软件安全》复习PPTPPT格式课件下载.ppt_第1页
第1页 / 共70页
《软件安全》复习PPTPPT格式课件下载.ppt_第2页
第2页 / 共70页
《软件安全》复习PPTPPT格式课件下载.ppt_第3页
第3页 / 共70页
《软件安全》复习PPTPPT格式课件下载.ppt_第4页
第4页 / 共70页
《软件安全》复习PPTPPT格式课件下载.ppt_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

《软件安全》复习PPTPPT格式课件下载.ppt

《《软件安全》复习PPTPPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《《软件安全》复习PPTPPT格式课件下载.ppt(70页珍藏版)》请在冰豆网上搜索。

《软件安全》复习PPTPPT格式课件下载.ppt

自身被结束之后操作系统重启之后操作系统重装之后硬盘更换之后。

恶意软件如何再次获得控制权?

5计算机系统引导过程主板BIOS系统进行硬件自检硬盘主引导程序(MBR)活动分区引导程序(DBR)操作系统引导(如NTLDR)操作系统内核启动驱动程序及服务系统自启动程序6系统引导与恶意软件的关联o系统引导与恶意软件有何关系?

系统引导与恶意软件有何关系?

n恶意软件在植入系统之后,如何再次获得控制权?

恶意软件在植入系统之后,如何再次获得控制权?

o在在计算机系统引导阶段计算机系统引导阶段获得控制权获得控制权nBootkit:

BIOS木马、木马、MBR木马等,可用于长期驻留木马等,可用于长期驻留在系统;

早期的在系统;

早期的DOS引导区病毒等。

引导区病毒等。

nCIH病毒病毒o在在操作系统启动阶段操作系统启动阶段获得控制权获得控制权n最常见的恶意软件启动方法,多见于独立的恶意软件程序。

最常见的恶意软件启动方法,多见于独立的恶意软件程序。

o在在应用程序执行阶段应用程序执行阶段获得控制权获得控制权n最常见的文件感染型病毒启动方法。

最常见的文件感染型病毒启动方法。

7实模式实模式REALPROTECTED保护模式保护模式VIRTUAL虚拟虚拟8086CR0的的PE位位置置1CR0的的PE位位置置0通通过过中中断断执行执行IRETD指令指令RESET信号信号RESET对对CPU复位复位Intel80X86处理器三种工作模式关系:

理器三种工作模式关系:

实模式、保护模式和虚拟实模式、保护模式和虚拟86模式模式8FAT32文件系统结构引导扇区数据存储区(以簇为单位,每簇包含多个扇区,以簇号进行标示)FAT(FileAllocationTable,文件分配表)FAT1+FAT2两个功能:

1.记录数据存储区每一个簇的使用情况(是否被使用,或坏簇);

2.形成每个文件的簇链表描述分区属性:

1.分区大小;

2.簇的大小3.FAT表个数与大小4.分区引导程序等功能:

存储两类数据目录项(目录和文件的属性信息,如文件名,大小,文件存储首簇号,时间等)-文件档案文件数据9文件的存储文件的存储操作示意图操作示意图引导扇区数据存储区FAT1.按照文件大小定位足够的空闲簇2.创建文件目录项(32+Bytes)3.在FAT中构建簇链表4.在对应分配的簇中写入数据10目录项的含义后缀名:

INF文件名:

AUTORUN文件属性首簇高16位首簇低16位文件更新日期及时间文件访问日期文件创建时间文件创建日期文件大小保留FAT32中,目录也被当作文件进行处理。

如果是长文件名,则目录项向上继续扩展。

11文件创建实例首簇高16位首簇低16位文件大小首簇号:

000A08DE(657630)文件大小:

D488(54408字节,占14簇,每簇4096字节)12文件删除实例(AUTORUN.INF)-目录项的变化文件被删除后目录项的变化删除前2.首簇高位被清零13文件删除实例(AUTORUN.INF)-簇链表变化文件被删除后FAT表的变化:

簇链表已被清空删除前删除后14文件删除实例(AUTORUN.INF)-文件内容无变化152.5.3被删除文件的恢复机理差异差异o目录项:

n文件名首字节被修改为E5n首簇高位被清零oFAT表簇链:

n被全部清空o文件内容:

n无变化可否恢复?

可否恢复?

o目录项n文件名首位是否可还原?

n如何确定高位?

oFAT表簇链如何修复?

n连续存储(默认)n总簇数(文件大小)162.5.3被删除文件的恢复机理o还原文件名首字节n长文件名:

直接逆向定位完整文件名。

o确定高位并还原n参考相邻目录项的首簇高位n从0往上试探,看首簇指向内容是否为预期文件头部o修复FAT表簇链n通过文件大小计算所占簇数n按照连续存储假设,进行簇链修补,其中末簇FAT项用0FFFFFFF结尾。

17PE文件格式查看工具文件格式查看工具1-PEViewoPEView:

可按照:

可按照PE文件格式文件格式对目标文件对目标文件的各字段的各字段进行详细解析。

进行详细解析。

18PE文件格式查看工具文件格式查看工具2-Stud_PEoStud_PE:

19PE程序调试工具程序调试工具-OllydbgoOllydbg:

可跟踪目标程序的执行过程,属:

可跟踪目标程序的执行过程,属于用户态调试工具。

于用户态调试工具。

2016进制文件编辑工具进制文件编辑工具-UltraEditoUltraEdit:

可对目标文件进行:

可对目标文件进行16进制查进制查看和修改。

看和修改。

213PE文件格式总体结构文件格式总体结构1.DOSMZheader2.DOSstub3.PEheader4.Sectiontable5-1Section15-2Section2Section.5.3Sectionn223C处的值:

处的值:

000000B0指向指向PE文件头开始位置文件头开始位置231)字串)字串“PE00”oSignature一一dword类型,值为类型,值为50h,45h,00h,00h(PE00)。

)。

n本域为本域为PE标记,标记,可以此识别给定文件是否为有效可以此识别给定文件是否为有效PE文件文件。

PE00242)映像文件头(映像文件头(0x14)o该结构域包含了关于该结构域包含了关于PE文件物理分布的信文件物理分布的信息,息,比如比如节数目节数目、后续、后续可选文件头大小可选文件头大小、机器类型机器类型等。

等。

3个节X86可选文件头大小253)可选文件头)可选文件头o定义了定义了PE文件的很多关键信息文件的很多关键信息o内存镜像加载地址(内存镜像加载地址(ImageBase)o程序入口点(代码从哪里开始执行?

程序入口点(代码从哪里开始执行?

)o节在文件和内存中的对齐粒度节在文件和内存中的对齐粒度o本程序在内存中的镜像大小、文件头大小等本程序在内存中的镜像大小、文件头大小等26oImageBase:

nPE文件在内存中的优先装载地址。

文件在内存中的优先装载地址。

oRVA地址:

地址:

nRelativeVirtualAddress,相对虚拟地址,它是相对内存中,相对虚拟地址,它是相对内存中ImageBase的偏移位置。

的偏移位置。

几个概念几个概念-127几个概念几个概念-2o对齐粒度对齐粒度n比喻:

桶的容量为比喻:

桶的容量为100升,现有升,现有367升水,请问需要使用多少个桶?

升水,请问需要使用多少个桶?

o问题:

代码节的代码实际长度为问题:

代码节的代码实际长度为0x46字节字节n文件中节对齐粒度为文件中节对齐粒度为0x200,n内存中节对齐粒度为内存中节对齐粒度为0x1000字节,字节,请问代码节在文件和内存中分别占用多少字节?

请问代码节在文件和内存中分别占用多少字节?

n为什么为什么PE文件中有很多文件中有很多“00”字节?

字节?

28可选文件头中的一些关键字段名字描述AddressOfEntryPoint*(位置(位置D8H,4字节)字节)PE装载器准备运行的PE文件的第一条指令的RVA。

(病毒感染中通用关键字段)(病毒感染中通用关键字段)ImageBase(位置:

(位置:

E4H,4字节)字节)PE文件的优先装载地址。

比如,如果该值是400000h,PE装载器将尝试把文件装到虚拟地址空间的400000h处。

SectionAlignment(位置:

E8H,4字节)字节)内存中节对齐的粒度。

FileAlignment(位置:

ECH,4字节)字节)文件中节对齐的粒度。

29第一条指令在内存中的地址是多少?

401000H=400000H+1000H30Directory16项8字节315.1IMPORTDirectoryTableo如何从如何从PE文件定位到引入目录表(文件定位到引入目录表(IDT)的起始位置?

的起始位置?

nPE可选文件头的可选文件头的DataDirectory。

325.4IAT(IMPORTAddressTable)o引入地址表:

引入地址表:

DWORD数组数组可通过可选文件头中的可通过可选文件头中的DataDirectory的第的第13项定位项定位n在文件中时,其内容与在文件中时,其内容与ImportNameTable完全一样。

完全一样。

n在内存中时,每个双字中存放着对应引入函数的地址。

在内存中时,每个双字中存放着对应引入函数的地址。

33为何需要导出序号表?

o导出函数名字和导出地址表中的地址导出函数名字和导出地址表中的地址不是一不是一一对应一对应关系。

关系。

o为什么?

为什么?

n一个函数实现可能有多个名字;

一个函数实现可能有多个名字;

n某些函数没有名字,仅通过序号导出。

某些函数没有名字,仅通过序号导出。

34堆栈堆栈溢出的溢出的示意图示意图可以直观的见到,写入内存的数据大于我们分配的长度,导致临近的内存数据被覆盖,如果精心准备覆盖到程序返回指针的数据,程序的进程可能就会被攻击者所控制.35364.1.2.2栈溢出的利用栈溢出的利用p根据被覆盖的数据位置和所要实现的目的不同,分根据被覆盖的数据位置和所要实现的目的不同,分为以下三种:

为以下三种:

修改邻接变量修改函数返回地址S.E.H.结构覆盖374.1.2.2修改邻接变量修改邻接变量由于函数的局部变量是依次存储在栈帧上的,因此如果这些局部变量中有数组之类的缓冲区,并且程序中存在数组越界缺陷,那么数组越界后就有可能破坏栈中相邻变量的值,甚至破坏栈帧中所保存的EBP、返回地址等重要数据。

384.1.2.2修改邻接变量修改邻接变量p观察如图观察如图4-44-4所示程序源代所示程序源代码,当代码执行到码,当代码执行到intintverify_password(charverify_password(char*password)*password)时,栈帧状态时,栈帧状态如右图所示如右图所示。

p当输入口令超过当输入口令超过77个字符,个字符,越界字符越界字符ASCIIASCII码会修改掉码会修改掉authenticatedauthenticated的值,进而的值,进而绕过密码验证程序。

绕过密码验证程序。

程序在内存中的映像程序在内存中的映像文本(代码)段文本(代码)段数据段数据段堆栈段堆栈段内存低地址内存低地址内存高地址内存高地址内内存存递递增增方方向向初始化数据段初始化数据段非初始化数据段非初始化数据段(BSS)堆堆(Heap)栈栈(stack)堆的增长方向堆的增长方向栈的增长方向栈的增长方向内核数据代码内核数据代码0x800000000x7FFFFFFFPEB&

TEB系统系统DLL代码段代码段39404.1.3.1堆的结构堆的结构p堆块堆块空闲态:

堆块被链入空链表中,由系统管理。

占有态:

堆块会返回一个由程序员定义的句柄,由程序员管理。

414.1.3.1堆的结构堆的结构空闲堆块空闲堆块比比占有堆块占有堆块多出了两个多出了两个44字节的指针,这两个指字节的指针,这两个指针用于针用于链接系统中的其他空闲堆块链接系统中的其他空闲堆块。

424.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1