第三讲 PE文件结构与计算机病毒

合集下载

2024版计算机病毒完整版课件

2024版计算机病毒完整版课件

3 物联网与工业控制系统的安全威胁
探讨了物联网和工业控制系统面临的计算机病毒威胁,以 及相应的安全策略和防护措施。
4 国际合作与法律规制在病毒防范中的作用
讨论了国际合作和法律规制在计算机病毒防范中的重要性, 以及未来可能的发展趋势。
感谢您的观看
THANKS
3 定期备份重要数据
为防止病毒破坏数据,应定期备份重要数据,确保数据安 全。
4 及时更新操作系统和应用程序
更新操作系统和应用程序可以修复已知的漏洞,降低病毒 利用漏洞进行攻击的风险。
企业级安全防护措施
建立完善的安全管理制度
部署网络安全设备
企业应建立完善的安全管理制度,规范员工 行为,提高整体安全防护水平。
数据恢复策略及实践案例分享
案例一
某公司服务器感染勒索病毒,导致重 要文件被加密。通过及时备份数据和 寻求专业解密服务,成功恢复了大部 分文件,避免了重大损失。
案例二
个人计算机感染恶意软件,导致部分 文件被删除。通过使用数据恢复软件, 成功恢复了被删除的文件,并加强了 计算机安全防护措施,避免了类似事 件的再次发生。
个人和企业都应遵守国家相关 法律法规,不得制作、传播计 算机病毒等恶意程序。
02
遵循伦理道德规范
计算机从业人员应遵循伦理道 德规范,不得利用技术手段危 害他人利益或社会公共利益。
03
加强行业自律
计算机行业应加强自律,建立 行业规范,共同维护网络安全 和稳定。
04
严厉打击病毒犯罪行为
对于制作、传播计算机病毒等 犯罪行为,应依法严厉打击, 维护网络安全和社会秩序。
感染模块
负责寻找并感染目标文件,将病 毒代码嵌入其中。
传播模块
通过各种途径将病毒传播到其他 计算机或网络中。

实验三+PE文件型病毒分析

实验三+PE文件型病毒分析

实验三+PE⽂件型病毒分析实验三 PE⽂件型病毒分析⼀、实验⽬的1.了解PE⽂件型病毒的基本原理;2.了解病毒的感染、破坏机制,认识病毒程序;3.掌握⽂件型病毒的特征和内在机制。

【注意事项】1.本病毒程序⽤于实验⽬的,⾯向实验演⽰,侧重于演⽰和说明病毒的内在原理,破坏功能有限。

在测试病毒程序前,需先关闭杀毒软件的⾃动防护功能或直接关闭杀毒软件。

2.若在个⼈电脑上实验,最好在虚拟机中运⾏。

3.测试完毕后,请注意病毒程序的清除,以免误操作破坏计算机上的其他程序。

4.请勿传播该病毒。

传播该病毒造成有⽤数据丢失、电脑故障甚⾄触犯法律等后果,由传播者负责。

⼆、实验内容压缩包中包括编译的病毒程序“PE_Virus.exe”和⼀个⽤于测试病毒的正常⽂件“test.exe”,通过运⾏病毒程序观看各步提⽰以了解PE⽂件型病毒的内在机制。

【PE_Virus病毒说明】(1)传染范围:PE_Virus.exe所在⽬录;(2)传染⽬标:可执⾏⽂件(.exe);(3)传染过程:搜索⽬录内的可执⾏⽂件,逐个感染;(4)触发条件:运⾏PE_Virus.exe程序或被PE_Virus.exe感染的程序;(5)破坏能⼒:⽆害型,传染时减少磁盘的可⽤空间,在可执⾏⽂件上附加⼀个4K⼤⼩的节;(6)破坏⽅式:攻击⽂件,在可执⾏⽂件上附加⼀个节(4K),修改可执⾏⽂件的⼊⼝地址;(7)特征类型:Virus.Win32.Huhk.B(360提⽰)【PE⽂件型病毒主要技术原理】(1)病毒重定位(2)获取API函数(3)搜索可感染的⽂件(4)内存映射⽂件(5)病毒感染其他⽂件(6)返回到宿主程序任务1 观察PE_Virus病毒感染test.exe⽂件的过程【提⽰】(1)⽤360等杀毒软件检测PE_Virus.exe,杀毒软件检测到该⽂件有病毒。

(2)关闭防病毒软件的⾃动防护功能,运⾏PE_Virus.exe,会出现如下提⽰:本实验为了能够⽐较直观演⽰病毒程序,让⽤户知道病毒正在做什么,故⽽有若⼲提⽰界⾯,但实际的病毒在感染其他程序前不会让⽤户感觉到病毒程序正在运⾏,往往都是隐藏运⾏,或者是寄⽣在宿主程序中。

病毒在pe文件中的寄生和感染

病毒在pe文件中的寄生和感染

数据目录列表的含义 索引 0 1 2 3 4 5 6 7 对应的数据块 导出表 导入表 资源 异常 安全 重定位表 调试信息 版本信息 索引 8 9 10 11 12 13 14 15 对应的数据块 不详 Thread local Storage 不详 不详 导入函数地址表 不详 不详 未使用
信息安全技术
信息安全技术
文件属性
不同的定义将影响系统对文件的装入方式 对于普通的PE文件,一般是010fh 对于DLL文件,一般是210eh
计算机科学与技术学院 计算机科学与技术学院
IMAGE_OPTIONAL_HEADER Struct Magic WORD ? ;0018h 107h=ROM IMAGE,10bh=exe Image BYTE ? ;001ah 连接器版本号 BYTE ? ;001bh DWORD? ;001ch 所有含代码的节的总大小 DWORD? ;0020h 所有含已初始化数据的节的总大小 DWORD? ;0024h 所有含未初始化数据的节的大小 DWORD? ;0028h 程序执行入口RVA DWORD ; 002ch 代码的节的起始RVA DWORD ;0030h 数据的节的起始RVA DWORD ;0034h 程序的建议的装载地址 DWORD ;0038h 内存中的节的对齐粒度 DWORD ;003ch 文件中的节的对齐粒度 MajorLinkerVersion MinorLinkerVersion SizeOfCode SizeOfInitializedData SizeOfUninitializedData AddressOfEntryPoint BaseOfCode BaseOfData ImageBase SectionAlignment FileAlignment

计算机病毒分析与防治简明教程ch04 PE文件病毒

计算机病毒分析与防治简明教程ch04 PE文件病毒

第25页
计算机病毒分析与防治教程
清华大学出版社
清除病毒原理
如何确定特征码 获取原来入口地址 如何清除病毒

2018年8月12日
第26页
计算机病毒分析与防治教程
清华大学出版社
寻找特征码
2018年8月12日
第27页
计算机病毒分析与防治教程
清华大学出版社
程序设计实现 扫描磁盘文件 扫描进程
清华大学出版社
感染前后执行
2018年8月12日
第22页
计算机病毒分析与防治教程
清华大学出版社
感染前结构
2018年8月12日
第23页
计算机病毒分析与防治教程
清华大学出版社
感染后结构
2018年8月12日
第24页
计算机病毒分析与防治教程
清华大学出版社
4.5 设计自己的病毒专杀工具
2018年8月12日
清华大学出版社
测试修改程序
2018年8月12日
第36页
计算机病毒分析与防治教程
清华大学出版社
运行后恢复原来状态
2018年8月12日
第37页
计算机病毒分析与防治教程
清华大学出版社
API的调用
2018年8月12日
第8页
计算机病毒分析与防治教程
清华大学出版社
病毒使用API
预先设定API地址 搜索API地址

2018年8月12日
第9页
计算机病毒分析与防治教程
清华大学出版社
病毒使用变量
2018年8月12日
第10页
计算机病毒分析与防治教程

2018年8月12日
第4页
计算机病毒分析与防治教程

第3章 计算机病毒结构及技术分析

第3章 计算机病毒结构及技术分析
计算机病毒及其防范技术
计算机病毒结构及技术分析
下午3时35分
计算机病毒及其防范技术 · 计算机病毒结构及技术分析
复习
1、计算机病毒定义? 计算机病毒,是指编制或者在计算机程序中插入的破坏 计算机功能或者毁坏数据,影响计算机使用,并能自我 复制的一组计算机指令或者程序代码。 2、计算机病毒的特点?
传染性、破坏性、寄生性

跳转到病毒引导模块
使用常驻技术

病毒引导模块
加载传染、破坏和触发模块到内存

转向程序的正常执行指令

执行程序
下午3时36分
计算机病毒及其防范技术 ·计算机病毒结构及技术分析
感染模块
什么是病毒感染? 指计算机病毒程序由一个信 息载体传播到另一个信息载体, 或由一个系统传播到另一个系统 的过程。
• PATCH IAT的函数。
下午3时36分
计算机病毒及其防范技术 ·计算机病毒结构及技术分析
抗分析技术
加密技术:
这是一种防止静态分析的技术,使得分析者无法在不执行病毒的 情况下,阅读加密过的病毒程序。
反跟踪技术:
使得分析者无法动态跟踪病毒程序的运行。 例如:Win95.Flagger病毒
下午3时36分
下午3时36分
计算机病毒及其防范技术计算机病毒结构及技术分析
计算机病毒的传染过程
被动传染过程: 随着复制或网络传输工作的进行而进行的。 主动传染过程: 系统运行是,病毒通过病毒载体即系统的外存储器进入系统的 内存储器,然后,常驻内存并在系统内存中监视系统的运行,从而 可以在一定条件先采用多种手段进行传染。
引导区病毒引导过程:
搬迁系统引导程序 → 替代为病毒引导程序

《计算机病毒技术及其防御》课程教学大纲

《计算机病毒技术及其防御》课程教学大纲

《计算机病毒技术及其防御》课程教学大纲一、课程基本信息二、课程简介《计算机病毒技术及其防御》(或《恶意代码原理与防范》)是网络空间安全专业中专业性与实践性较强的课程,是网络空间安全学科中的重要组成部分,与后续学习的多门课程皆有关联。

本课程主要研究恶意代码(计算机病毒)的分类、恶意代码的原理、恶意代码的行为、恶意代码静态与动态的分析方法以及恶意代码的防御技术,对构建学生网络安全类知识体系进而进行恶意代码攻防实践有重要作用。

课程的任务是通过课堂教学与实验教学方式,使学生能够从生命周期的角度掌握恶意代码技术的基本原理与实现方法,掌握常见恶意代码的防御方法,培养学生具备良好的恶意代码分析能力与常见恶意代码的防范能力,提高自身对相关领域的安全意识与职业素养,从而为今后从事网络信息安全领域相关工作奠定坚实的基础。

通过本课程学习,使学生能够通过对相关实操案例的分析,对恶意代码的种类、危害、应急、防御处理都有较为深入的认识,具备一定的分析研究能力,能够将本课程的相关知识与防御技术的思路和技巧用于解决恶意代码所带来的问题。

三、课程目标及其对毕业要求的支撑(一)课程目标课程目标1:理解恶意代码的基本概念和理论知识,能够描述恶意代码的基本特性以及恶意代码的发展趋势。

课程目标2:掌握恶意代码的基本技术,能够自觉运用基本知识认识恶意代码,并对常见的恶意代码的进行逆向分析,培养学生分析问题的能力。

课程目标3:掌握恶意代码防御技术,能够自觉运用所学知识进行恶意代码防御处理,并对其中常见问题进行分析并加以解决,培养学生研究和分析问题、工程部署与设计解决方案的能力。

(二)课程目标对毕业要求的支撑四、教学方法本课程课堂教学和上机实验并重,结合作业、练习及实验报告等教学手段和形式完成课程教学任务。

在课堂教学中,通过讲授、提问、实验、练习、演示等教学方法和手段让学生了解恶意代码,掌握恶意代码攻防的基本应用。

在实验、练习教学环节中,通过任务布置教学、培养学生动手能力,同时培养学生发现问题、分析问题和解决问题的能力。

PE病毒的入侵途径和防治措施

PE病毒的入侵途径和防治措施

PE病毒的入侵途径和防治措施[摘要]由于windows操作系统的广泛使用,pe病毒已经成为当前危害计算机安全的主要病毒之一。

针对传播最广泛、危害最大、使用了多态变化技术的windows pe文件病毒的pe病毒,本论文详细的分析了windows pe文件结构及pe病毒的入侵原理,针对windows pe病毒的特点,提出了windows pe文件病毒的防御思想,即在病毒传播时期就把其拒之于系统之外,使其失去寄宿生存的空间,再配合一般的杀毒技术,可以有效的防杀windows pe病毒,使系统的安全性和稳定性大大提高,最后有针对性地提出对pe病毒预防的多种有效策略,从而为防毒、杀毒提供必要的理论依据。

[关键词]pe病毒入侵途径防治措施计算机病毒一直是计算机用户和安全专家的心腹大患,虽然计算机反病毒技术不断更新和发展,但是仍然不能改变被动滞后的局面。

计算机病毒一般都具有潜伏传染激发破坏等多种机制,但其传染机制反映了病毒程序最本质的特征,离开传染机制,就不能称其为病毒。

因此,监控和及时发现计算机病毒的传染行为,是病毒制造者和安全专家的争夺焦点。

目前主流的操作系统是windows操作系统,利用windows操作系统中存在的漏洞和系统程序接口,病毒可轻易获取控制权,感染硬盘上的文件,并进行破坏。

因此计算机病毒入侵途径和防治研究显得尤为重要。

病毒要在windows操作系统上实现其感染目的是要获得系统的控制权,而感染可执行文件时取得控制权的最好途径。

在windows nt/xp/2000/98/95等系统下,可执行文件和动态链接库均采用的是pe文件格式。

只有透彻研究了pe的文件格式,才能了解病毒如何寄生在文件中,才能有的放矢的采取对策以检测和制止病毒的入侵。

在各种病毒中,又以pe病毒数目最大,传播最广,破坏力最强,分析pe病毒有非常重要的意义。

因此本文将重点介绍pe病毒的入侵途径和防治措施。

一、pe病毒1.pe病毒的定义一个正常的程序感染后,当你启动这个程序的时候,它通常会先执行一段病毒代码,然后自身运行,这样病毒就悄无声息的运行起来,然后再去感染其他pe文件,这就是pe病毒的行为。

pe文件结构 入门 教程

pe文件结构 入门 教程

三年前,我曾经写了一个手工打造可执行程序的文章,可是因为时间关系,我的那篇文章还是有很多模糊的地方,我一直惦记着什么时候再写一篇完美的,没想到一等就等了三年。

因为各种原因直到三年后的今天我终于完成了它。

现在把它分享给大家,希望大家批评指正。

我们这里将不依赖任何编译器,仅仅使用一个十六进制编辑器逐个字节的手工编写一个可执行程序。

以这种方式讲解PE结构,通过这个过程读者可以学习PE结构中的PE头、节表以及导入表相关方面的知识。

为了简单而又令所有学习程序开发的人感到亲切,我们将完成一个Hello World! 程序。

功能仅仅是运行后弹出一个消息框,消息框的内容是Hello World!。

首先了解一下Win32可执行程序的大体结构,就是通常所说的PE结构。

如图1所示PE结构示意图:图1 标准PE结构图由图中可以看出PE结构分为几个部分:MS-DOS MZ 头部:所有PE文件必须以一个简单的DOS MZ 头开始。

有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,然后运行紧随MZ header 之后的DOS程序。

以此达到对Dos系统的兼容。

(通常情况DOS MZ header总共占用64byte)。

MS-DOS 实模式残余程序:实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,大多数情况下它是由汇编编译器自动生成。

通常,它简单调用中断21h,服务9来显示字符串"This program cannot run in DOS mode"。

(在我们写的程序中,他不是必须的,可以不予以实现,但是要保留其大小,大小为112byte,为了简洁,可以使用00来填充。

)PE文件标志:是PE文件结构的起始标志。

(长度4byte, Windows程序此值必须为0x50450000)PE文件头:是PE相关结构 IMAGE_NT_HEADERS 的简称,其中包含了许多PE装载器用到的重要域。

《计算机病毒》复习思考题及答案

《计算机病毒》复习思考题及答案

《计算机病毒》复习思考题第一章计算机病毒概述1. 简述计算机病毒的定义和特征。

计算机病毒(Computer Virus),是一种人为制造的、能够进行自我复制的、具有对计算机资源进行破坏作用的一组程序或指令集合。

计算机病毒的可执行性(程序性)、传染性、非授权性、隐蔽性、潜伏性、可触发性、破坏性、攻击的主动性、针对性、衍生性、寄生性(依附性)、不可预见性、诱惑欺骗性、持久性。

2. 计算机病毒有哪些分类方法?根据每种分类方法,试举出一到两个病毒。

3. 为什么同一个病毒会有多个不同的名称?如何通过病毒的名称识别病毒的类型?国际上对病毒命名的一般惯例为“前缀+病毒名+后缀”,即三元组命名规则。

1、系统病毒系统病毒的前缀为:Win32、PE、Win95、W32、W95等。

2、蠕虫病毒蠕虫病毒的前缀是:Worm。

3、木马病毒、黑客病毒木马病毒其前缀是:Trojan,黑客病毒前缀名一般为Hack 。

4、脚本病毒脚本病毒的前缀是:Script。

5、宏病毒其实宏病毒是也是脚本病毒的一种,由于它的特殊性,因此在这里单独算成一类。

宏病毒的前缀是:Macro。

6、后门病毒后门病毒的前缀是:Backdoor。

7、病毒种植程序病毒后门病毒的前缀是:Dropper。

这类病毒的公有特性是运行时会从体内释放出一个或几个新的病毒到系统目录下,由释放出来的新病毒产生破坏。

8.破坏性程序病毒破坏性程序病毒的前缀是:Harm。

这类病毒的公有特性是本身具有好看的图标来诱惑用户点击,当用户点击这类病毒时,病毒便会直接对用户计算机产生破坏。

9.玩笑病毒玩笑病毒的前缀是:Joke。

10.捆绑机病毒捆绑机病毒的前缀是:Binder。

4. 简述计算机病毒产生的背景。

5. 计算机病毒有哪些传播途径?传播途径有两种,一种是通过网络传播,一种是通过硬件设备传播(软盘、U盘、光盘、硬盘、存储卡等)。

网络传播,又分为因特网传播和局域网传播两种。

硬件设备传播:通过不可移动的计算机硬件设备传播、通过移动存储设备传播、通过无线设备传播。

计算机病毒防治考试重点

计算机病毒防治考试重点

第一章计算机病毒概述1.※计算机病毒定义计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。

2.※计算机病毒的特性破坏性传染性寄生性隐蔽性触发(潜伏)性3.※计算机病毒的发展趋势是什么?哪些病毒代表了这些趋势?病毒发展趋势:网络化专业化简单化多样化自动化犯罪化代表病毒:蠕虫、木马4. ※计算机病毒的主要危害直接危害:(1)病毒激发对计算机数据信息的直接破坏作用(2)占用磁盘空间和对信息的破坏(3)抢占系统资源(4)影响计算机运行速度(5)计算机病毒错误与不可预见的危害(6)计算机病毒的兼容性对系统运行的影响间接危害:(1)计算机病毒给用户造成严重的心理压力(2)造成业务上的损失(3)法律上的问题5. ※计算机病毒和医学上的病毒相似之处是什么?区别又是什么?相似之处:与生物医学上的病毒同样有寄生、传染和破坏的特性,因此这一名词是由生物医学上的“病毒”概念引申而来区别:不是天然存在,是某些人利用计算机软、硬件所固有的脆弱性,编制的具有特殊功能的程序。

6.(了解)木马病毒(闪盘窃密者、证券大盗、外挂陷阱、我的照片我正向外闪)7.※计算机病毒的命名规则1991年计算机反病毒组织(CARO)提出了一套命名规则,病毒的命名包括五个部分:•家族名•组名•大变种•小变种•修改者CARO规则的一些附加规则包括:•不用地点命名•不用公司或商标命名•如果已经有了名字就不再另起别名•变种病毒是原病毒的子类举例说明:精灵(Cunning)是瀑布(Cascade)的变种,它在发作时能奏乐,因此被命名为Cascade.1701.A。

Cascade是家族名,1701是组名。

因为Cascade病毒的变种的大小不一(1701, 1704, 1621等),所以用大小来表示组名。

A 表示该病毒是某个组中的第一个变种。

业界补充:反病毒软件商们通常在CARO命名的前面加一个前缀来标明病毒类型。

第三讲 PE文件结构与计算机病毒

第三讲 PE文件结构与计算机病毒

ImageBase
SectionAlignment FileAlignment
可选映像头中的一些关键字段2
名字 描述 MajorSubsystemVersion win32子系统版本。若PE文件是专门为 Win32设计的,该子系统版本必定是4.0否则 MinorSubsystemVersion 对话框不会有3维立体感。 SizeOfImage SizeOfHeaders 内存中整个PE映像体的尺寸。 所有头+节表的大小,也就等于文件尺寸减去 文件中所有节的尺寸。可以以此值作为PE文 件第一节的文件偏移量。 NT用来识别PE文件属于哪个子系统。 一个IMAGE_DATA_DIRECTORY 结构数组。 每个结构给出一个重要数据结构的RVA,比 如引入地址表等。
IMAGE_SECTION_HEADER
顺序 6 7 8 9 10 名字 PointerToRelocations PointerToLinenumbers NumberOfRelocations NumberOfLinenumbers Characteristics * 大小 (字节) 4 4 2 2 4 描述 OBJ中表示该节重定位信息的偏 移EXE文件中无意义 行号偏移 本节要重定位的数目 本节在行号表中的行号数目 节属性
IMAGE_SECTION_HEADER
顺序 1 2 3 4 5 Name * PhysicalAddress或 VirtualSize Virtual Address * SizeOfRawData * PointerToRawData * 名字 大小 (字节) 8 4 4 4 4 节名 OBJ文件用作表示本节物理地址 EXE文件中表示节的真实尺寸 这个值+映像基地址=本节在内 存中的真正地址。OBJ中无意义。 本节的经过文件对齐后的尺寸 本节原始数据在文件中的位置 描述

PE文件格式(内容详细)

PE文件格式(内容详细)
EXE文件的格式
简介
在DOS环境下有四种基本的可执行文件格式
批处理文件,以.BAT结尾的文件
设备驱动文件,是以.SYS结尾的文件,如CONFIG.SYS
COM文件,是以.COM结尾的纯代码文件
• 没有文件头部分,缺省情况下总是从0x100H处开始执行, 没有重定位项,所有代码和数据必须控制在64K以内
在Win32位平台可执行文件格式:可移植的可执行文件 (Portable Executable File)格式,即PE格式。MZ文件头 之后是一个以“PE”开始的文件头
安装在硬盘上的程序没运行-静态 加载到内存-动态
EXE文件的格式
MZ文件格式-Mark Zbikowski
.EXE文件由三部分构成:文件头、重定位表和二进制代码 允许代码、数据、堆栈分别处于不同的段,每一段都可以是64KB.
EXE文件的格式
PE文件格式
一般来说,病毒往往先于HOST程序获得控制权。运行 Win32病毒的一般流程示意如下:
①用户点击或系统自动运行HOST程序; ②装载HOST程序到内存;
③通过PE文件中的AddressOfEntryPoint+ImageBase,
定位第一条语句的位置(程序入口); ④从第一条语句开始执行(这时执行的其实是病毒代码); ⑤病毒主体代码执行完毕,将控制权交给HOST程序原来的
病毒通过“MZ”、“PE”这两个标志,初步判断当前程序 是否是目标文件——PE文件。如果要精确校验指定文件是 否为一有效PE文件,则可以检验PE文件格式里的各个数 据结构,或者仅校验一些关键数据结构。大多数情况下, 没有必要校验文件里的每一个数据结构,只要一些关键数 据结构有效,就可以认为是有效的PE文件
PE的意思就是Portable Executable(可移植、可执 行),它是Win32可执行文件的标准格式

计算机病毒实验之pe病毒

计算机病毒实验之pe病毒

计算机病毒实验报告实验2.2 PE病毒2.2 PE病毒2.2.1 实验目的通过实验,了解PE病毒的感染对象和学习文件感染PE病毒前后的特征变化以重点学习PE 病毒的感染机制和恢复感染染毒文件的方法,提高汇编语言的使用能力。

2.2.2 实验原理本实验采用的PE病毒样本是一个教学版的样本,执行病毒样本或者执行染毒文件都将触发此病毒。

一旦触发,病毒感染其所在文件夹内的所有pe文件。

该样本不具有破坏模块,染毒文件可恢复。

2.2.3 实验预备知识点本实验需要如下的预备知识:PE病毒的基础知识,包括PE病毒的概念,PE文件的概念和文件格式。

相关的操作系统知识,包括内存分页机制,变量的重定位机制,动态连接库的概念和调用方法和用于文件操作的API函数。

汇编语言基础,能独立阅读和分析汇编代码,掌握常用的汇编指令。

2.2.4 实验内容本实验需要完成的内容如下:PE病毒感染实验。

通过触发病毒,观察病毒发作的现象和步骤学习病毒的感染机制;阅读和分析病毒的代码,并完成系统附带的习题。

PE病毒的杀毒实验。

使用实验系统提供的杀毒工具学习恢复染毒文件的方法;阅读和分析杀毒程序代码,并完成习题。

2.2.4 实验环境实验小组机器要求有WEB浏览器IE。

操作系统为windows2000。

2.2.5 实验步骤打开“信息安全综合实验系统” 在右上角选择“实验导航”双击“病毒教学实验系统”进入病毒教学实验系统登录面界,输入用户名和密码。

(注意:实验前先关闭所有杀毒软件。

)1.病毒感染实验进入病毒防护教学实验后,点击左侧的“PE病毒”,然后在点击下面的“病毒感染实验”,其右侧为“病毒感染实验”的界面,如图2-2-1,及2-2-2所示。

认真阅读IE页面列出的知识要点,包括PE病毒概念,著名的病毒介绍,PE文件格式和PE病毒感染机制。

2-2-1根据页面首行提示下载实验软件包到本地主机任意路径,解压软件包。

进入“bin”目录点击“PE病毒实验.exe”,选择“PE病毒感染实验”,打开感染实验的界面。

计算机病毒结构分析(1)ppt课件

计算机病毒结构分析(1)ppt课件

第三章计算机病毒结构分析本章学习目标•掌握计算机病毒的结构•掌握计算机病毒的工作机制•了解引导型病毒原理•了解COM、EXE、NE、PE可执行文件格式•掌握COM文件病毒原理及实验•掌握PE文件型病毒及实验总体概念•DOS是VXer的乐园(Aver) •9x病毒ring3, ring0•2K病毒主要是ring3•Windows文件格式变迁:•COM•EXE:MZ->NE->PE•Vxd: LE(16Bit, 32Bit)一、计算机病毒的结构和工作机制•四大模块:•感染模块•触发模块•破坏模块(表现模块)•引导模块(主控模块)•两个状态:•静态•动态工作机制引导模块•引导前——寄生•寄生位置:•引导区•可执行文件•寄生手段:•替代法(寄生在引导区中的病毒常用该法)•链接法(寄生在文件中的病毒常用该法)1PE文件结构及其运行原理(1)PE文件格式总体结构•PE(Portable Executable:可移植的执行体)•是Win32环境自身所带的可执行文件格式。

•它的一些特性继承自Unix的Coff(Common Object )文件格式。

•可移植的执行体意味着此文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。

•当然,移植到不同的CPU上PE执行体必然得有一些改变。

•除VxD和16位的Dll外,所有win32执行文件都使用PE文件格式。

因此,研究PE文件格式是我们洞悉Windows结构的良机。

PE文件结构总体层次分布DOSMZheader ‘MZ’格式￿DOSstub Dos￿程序PEheader PE文件￿Section￿表•所有PE文件必须以一个简单的DOS MZ header开始。

有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体。

•DOS stub实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串 “该程序不能在DOS模式下运行”或者程序员可根据自己的意图实现完整的DOS代码。

用重构PE文件结构法防病毒

用重构PE文件结构法防病毒

法, 构建文件 自身防止病毒插 入和 防止 附加病毒代码 。同时用变位置的 C C校验算法来判别 文件是 否被修 改并实现 对被修 改文件 R
的 自我 恢 复 。 关键 词 病毒 P C C校 验 节 自我保 护 E R
RECo NSTRUCTI NG PE LE FI FoR ANTIⅥ RUS .
0 引 言
在 Widw 操 作 系统 下 , no s 可执 行 的 文件 一 般 是 P E结 构 。 杀毒软件清 除 P E类型病 毒 的常 见方法 是 : 由杀 毒软 件 实时 监 视整个 系统 , 根据病毒特征发现 病毒 、 重新修改文件结构 。杀 毒 软件一 般只能对已知的病毒 进行 清除 , 但也 经常 出现杀毒后 软 件 没有 原来 好用 , 户只好 重新安装的现象 。 用 病毒通常 以修改 P E结构感染 文件 , 方式 一 , 病毒将 病毒代 码插入 P E文件 中的未 使用 区域 , 不增加 文件 长度 , CH” 如“ I 病 毒 ; 式二 , 方 病毒在 原文件 的后面建立 新 的节 , 附加 病毒代码增 加文件长度 , Wi 2 X rl( 如“ n . oa 劳拉 ) 病毒。 3 a ” 同一 个 目录下的 P E文件 有些 感染 了病毒 , 些却 不会 被 有 感染 。分 析得 知 , 不会被 感染 的 P E文件 的结 构无 法使 病毒 写
D6 - 件 O 起文
O s块 o

舱 文件 头 标赢
入病毒代 码 , 强行 写入只能导致该 P E文 件被破 坏 , 最终不 能执
行。在 P E结构中有一 个文 件 的校验 值 , 只有 重要文 件 才用 但 到, 且该值 在文件中的位置是 固定 的, 病毒也可以修改它 。本文 的方法是 , 编译器生成的 P 对 E文件 的结构进 行修 改 , 病毒 无 使 法写入病毒代码 。同时 , 使用与病毒技术相似 的方法来判 别 P E 文件是否被修 改 , 并使 已经被 修改 的文件进 行 自我 恢复 。 目前 还没有发 现采用类 似方法 的报道 。

PE文件结构详解

PE文件结构详解

PE⽂件结构详解1、PE⽂件的结构1、什么是可执⾏⽂件?可执⾏⽂件 (executable file) 指的是可以由操作系统进⾏加载执⾏的⽂件。

可执⾏⽂件的格式:- Windows平台:PE(Portable Executable)⽂件结构- Linux平台:ELF(Executable and Linking Format)⽂件结构PE和ELF⾮常相似,它们都是源于同⼀种可执⾏⽂件格式 COFF- COFF 是由Unix System V Release 3⾸先提出并且使⽤的格式规范,- 微软基于COFF格式,制定了PE格式标准,并将其⽤于当时的Windows NT系统- System V Release 4在COFF的基础上引⼊了ELF格式。

事实上,在Windows平台,VISUAL C++编译器产⽣的⽬标⽂件仍然使⽤COFF格式,⽽可执⾏⽂件为PE格式微软对64位Windows平台上的PE⽂件结构叫做PE32+,就是把那些原来32位的字段变成了64位。

2、PE⽂件的特征识别⼀个⽂件是不是PE⽂件不应该只看⽂件后缀名,还应该通过PE指纹使⽤UE打开⼀个exe⽂件,发现⽂件的头两个字节都是MZ,0x3C位置保存着⼀个地址,查该地址处发现保存着“PE”,这样基本可以认定改⽂件是⼀个PE⽂件通过这些重要的信息(“MZ”和“PE”)验证⽂件是否为PE⽂件,这些信息即PE指纹。

3、PE⽂件的整体结构这⾥将⼀个PE⽂件的主要部分列为4部分,这⾥可以先有模糊概念,后⾯会详细解释“节”或“块”或”区块“都是⼀个意思,后⽂会穿插使⽤下⾯从⼆进制层⾯整体把握其结构,看看⼀个PE⽂件的组成PE⽂件存储在磁盘时的结构和加载到内存后的结构有所不同。

当PE⽂件通过Windows加载器载⼊内存后,内存中的版本称为模块(Module)。

映射⽂件的起始地址称为模块句柄(hModule),也称为基地址(ImageBase)。

(模块句柄是不是和其他句柄不太⼀样呢?)⽂件数据⼀般512字节(1扇区)对齐(现也多4k),32位内存⼀般4k(1页)对齐,512D = 200H,4096D = 1000H⽂件中块的⼤⼩为200H的整数倍,内存中块的⼤⼩为1000H的整数倍,映射后实际数据的⼤⼩不变,多余部分可⽤0填充PE⽂件头部(DOS头+PE头)到块表之间没有间隙,然⽽他们却和块之间有间隙,⼤⼩取决于对齐参数VC编译器默认编译时,exe⽂件基地址是0x400000,DLL⽂件基地址是0x10000000VA:虚拟内存地址RVA:相对虚拟地址即相对于基地址的偏移地址FOA: ⽂件偏移地址5、DOS部分DOS MZ⽂件头实际是⼀个结构体(IMAGE_DOS_HEADER),占64字节typedef struct _IMAGE_DOS_HEADER { // DOS .EXE headerWORD e_magic; // Magic numberWORD e_cblp; // Bytes on last page of fileWORD e_cp; // Pages in fileWORD e_crlc; // RelocationsWORD e_cparhdr; // Size of header in paragraphsWORD e_minalloc; // Minimum extra paragraphs neededWORD e_maxalloc; // Maximum extra paragraphs neededWORD e_ss; // Initial (relative) SS valueWORD e_sp; // Initial SP valueWORD e_csum; // ChecksumWORD e_ip; // Initial IP valueWORD e_cs; // Initial (relative) CS valueWORD e_lfarlc; // File address of relocation tableWORD e_ovno; // Overlay numberWORD e_res[4]; // Reserved wordsWORD e_oemid; // OEM identifier (for e_oeminfo)WORD e_oeminfo; // OEM information; e_oemid specificWORD e_res2[10]; // Reserved wordsLONG e_lfanew; // File address of new exe header} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;DOS头⽤于16位系统中,在32位系统中DOS头成为冗余数据,但还存在两个重要成员e_magic字段(偏移 0x0)和 e_lfanew字段(偏移 0x3C)e_magic保存“MZ”字符,e_lfanew保存PE⽂件头地址,通过这个地址找到PE⽂件头,得到PE⽂件标识“PE”。

计算机病毒结构分析

计算机病毒结构分析
本章学习目标
• • • • 掌握计算机病毒的结构 掌握计算机病毒的工作机制 了解引导型病毒原理 了解COM、EXE、NE、PE可执行文件格 式 • 掌握COM文件病毒原理及实验 • 掌握PE文件型病毒及实验
总体概念
• • • • DOS是VXer的乐园(Aver) 9x病毒 ring3, ring0 2K病毒 主要是ring3 Windows文件格式变迁:
• 加载COM程序
– DOS尝试分配内存。因为COM程序必须位于一个64K的段中,所 以COM文件的大小不能超过65,024(64K减去用于PSP的256字 节和用于一个起始堆栈的至少256字节)。 – 如果DOS不能为程序、一个PSP、一个起始堆栈分配足够内存, 则分配尝试失败。 – 否则,DOS分配尽可能多的内存(直至所有保留内存),即使 COM程序本身不能大于64K。 – 在试图运行另一个程序或分配另外的内存之前,大部分COM程序 释放任何不需要的内存。 – 分配内存后,DOS在该内存的头256字节建立一个PSP(Program Segment Prefix:程序段前缀)。
• 文件型病毒传染机理
– 首先根据病毒自己的特定标识来判断该文件是否已感染了该病毒; – 当条件满足时,将病毒链接到文件的特定部位,并存入磁盘中; – 完成传染后,继续监视系统的运行,试图寻找新的攻击目标。
• 文件型病毒传染途径
– 加载执行文件 – 浏览目录过程 – 创建文件过程
破坏模块
• 破坏是Vxer的追求,病毒魅力的体现 • 破坏模块的功能
感染模块
• 病毒传染的条件
– 被动传染(静态时)
• 用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到 另一个载体上。或者是通过网络上的信息传递,把一个病毒程 序从一方传递到另一方。这种传染方式叫做计算机病毒的被动 传染。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IMAGE_FILE_HEADER STRUCT Machine WORD ? NumberOfSections WORD ? TimeDateStamp dd ? PointerToSymbolTable dd ? NumberOfSymbols dd ? SizeOfOptionalHeader WORD ? Characteristics WORD ? IMAGE_FILE_HEADER ENDS
Characteristics-节属性
0x00000020? 这个块包含代码。置位 0x00000040? 这个块包含已初始化的数据。 0x00000080? 这个块包含未初始化的数据(如 .bss 块) 0x00000200? 这个块包含注释或其它的信息。 0x00000800? 这个块的内容不应放进最终的EXE文件中。 0x02000000? 这个块可以被丢弃,因为一旦它被载入,其进程就 不需要它。最通常的可丢弃块是基本重定位块( .reloc )。 0x10000000? 这个块是可共享的。 0x20000000? 这个块是可执行的。 0x40000000? 这个块是可读的。 0x80000000? 这个块是可写的。
IMAGE_DATA_DIRECTORY VitualAddress DD? Size DD? IMAGE_DATA_DIRECTORY ENDS
3.4hello-2.5.exe的IAT与引入表
3.4节表
节表其实就是紧挨着 PE header 的一结 构数组。
该数组成员的数目由 File header (IMAGE_FILE_HEADER) 结构中 NumberOfSections 域的域值来决定。
节表结构又命名为 IMAGE_SECTION_HEADER。
结构中放的是一个节的信息,如名字、地 址、长度、属性等。
hello-2.5.exe的节表
IMAGE_SECTION_HEADER
typedef struct _IMAGE_SECTION_HEADER { UCHAR Name[8]; union { ULONG PhysicalAddress//OBJ中表示物理地址 ULONG VirtualSize; //在EXE中,它保存的实际尺寸 } Misc; ULONG VirtualAddress; //本节的相对虚拟地址 ULONG SizeOfRawData; //本节的经过文件对齐后的尺寸 ULONG PointerToRawData; ULONG PointerToRelocations; ULONG PointerToLinenumbers; USHORT NumberOfRelocations; USHORT NumberOfLinenumbers; ULONG Characteristics; //节属性 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
IMAGE_SECTION_HEADER
顺序 1 2 3 4 5 Name * PhysicalAddress或 VirtualSize Virtual Address * SizeOfRawData * PointerToRawData * 名字 大小 (字节) 8 4 4 4 4 节名 OBJ文件用作表示本节物理地址 EXE文件中表示节的真实尺寸 这个值+映像基地址=本节在内 存中的真正地址。OBJ中无意义。 本节的经过文件对齐后的尺寸 本节原始数据在文件中的位置 描述
Subsystem DataDirectory
DataDirectory数据目录
一个IMAGE_DATA_DIRECTORY数组,里面放 的是这个可执行文件的一些重要部分的RVA和尺 寸,目的是使可执行文件的装入更快,数组的项 数由上一个域给出。 IMAGE_DATA_DIRECTORY包含有两个域,如 下:
3.5.2 已初始化的数据节
这个节一般取名为.data或DATA 已初始化的数据节中放的是在编译时刻就已 确定的数据。如Hello World 中的字符串 “Hello World!”。
.data节
3.5.3 未初始化的数据节
3.5 节
“节(Section)”跟在节表 3.5.2已初始化的数据节 3.5.3未初始化的数据节 3.5.4引入函数节 3.5.5引出函数节 3.5.6资源节
3.5.1 代码节
代码节
代码节一般名为.text或CODE,该节含 有程序的可执行代码。 每个PE文件都有代码节
IMAGE_SECTION_HEADER
顺序 6 7 8 9 10 名字 PointerToRelocations PointerToLinenumbers NumberOfRelocations NumberOfLinenumbers Characteristics * 大小 (字节) 4 4 2 2 4 描述 OBJ中表示该节重定位信息的偏 移EXE文件中无意义 行号偏移 本节要重定位的数目 本节在行号表中的行号数目 节属性
LONG e_lfanew; //e_lfanew成员用于定位PE头。
该字段位于3CH处,该位置给出了PE文件头部的开始位置。 在本例中,PE文件头部开始位置为0B0H。
3.2.1MS-DOS MZ header
typedef struct _IMAGE_DOS_HEADER { // DOS的.EXE头部 USHORT e_magic; // 魔数 USHORT e_cblp; // 文件最后页的字节数 USHORT e_cp; // 文件页数 USHORT e_crlc; // 重定义元素个数 USHORT e_cparhdr; // 头部尺寸,以段落为单位 USHORT e_minalloc; // 所需的最小附加段 USHORT e_maxalloc; // 所需的最大附加段 USHORT e_ss; // 初始的SS值(相对偏移量) USHORT e_sp; // 初始的SP值 USHORT e_csum; // 校验和 USHORT e_ip; // 初始的IP值 USHORT e_cs; // 初始的CS值(相对偏移量) USHORT e_lfarlc; // 重分配表文件地址 USHORT e_ovno; // 覆盖号 USHORT e_res[4]; // 保留字 USHORT e_oemid; // OEM标识符(相对e_oeminfo) USHORT e_oeminfo; // OEM信息 USHORT e_res2[10]; // 保留字 LONG e_lfanew; // 新exe头部的文件地址 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
3.3 PE header(P78)
Pe header 由三部分组成
字串 “PE\0\0”(Signature) 映像文件头(FileHeader) 可选映像头(OptionalHeader)
3.3.1 字串 “PE\0\0”
Signature 一dword类型,值为50h, 45h, 00h, 00h(PE\0\0)。 本域为PE标 记,我们可以此识别给定文件是否为有效PE 文件。
顺序 1 2 3 4 5 6 7 Machine *
名字
大小 (字节) 2 2 4 4 4 2 2
描述 机器类型,x86为14CH 文件中节的个数 生成该文件的时间 COFF符号表的偏移 符号数目 可选头的大小 关于文件信息的标记,比如文件是 exe还是dll
NumberOfSection ** TimeDataStamp PointerToSymbleTable NumberOfSymbols SizeOfOptionalHeader* Characteristics *
可选映像头中的一些关键字段1
名字 AddressOfEntryPoint * 描述 PE装载器准备运行的PE文件的第一个指令的 RVA。若要改变整个执行的流程,可以将该 值指定到新的RVA,这样新RVA处的指令首 先被执行。(病毒感染中通用关键字段) PE文件的优先装载地址。比如,如果该值是 400000h,PE装载器将尝试把文件装到虚拟 地址空间的400000h处。若该地址区域已被 其他模块占用,那PE装载器会选用其他空闲 地址。 内存中节对齐的粒度。 文件中节对齐的粒度。
ImageBase
SectionAlignment FileAlignment
可选映像头中的一些关键字段2
名字 描述 MajorSubsystemVersion win32子系统版本。若PE文件是专门为 Win32设计的,该子系统版本必定是4.0否则 MinorSubsystemVersion 对话框不会有3维立体感。 SizeOfImage SizeOfHeaders 内存中整个PE映像体的尺寸。 所有头+节表的大小,也就等于文件尺寸减去 文件中所有节的尺寸。可以以此值作为PE文 件第一节的文件偏移量。 NT用来识别PE文件属于哪个子系统。 一个IMAGE_DATA_DIRECTORY 结构数组。 每个结构给出一个重要数据结构的RVA,比 如引入地址表等。
《计算机病毒分析与对抗》第三讲
PE文件结构与计算机病毒
武汉大学计算机学院 彭国军 guojpeng@
引言
什么是PE文件? 了解PE文件结构和了解PE病毒原理有什么 联系?
课前我们应该思考的问题
计算机病毒如何将自身代码写到PE可执行文 件中并使得感染文件依然能够执行其功能? PE程序如何从其他DLL引入API函数? DLL文件如何使其他可执行文件知道自己实现 的各API函数的代码位置? 传统PE病毒是否可以直接调用API函数?为 什么?如何获取API函数?
几个常用术语
对齐
内存中节对齐的粒度 文件中节对齐的粒度
问题1:桶的容量为100升,现有367升水,请问 需要使用多少个桶? 问题2:代码节的代码实际长度为0x46字节,文件 中节对齐粒度为0x200,内存中节对齐粒度为 0x1000字节,请问代码节在文件和内存中分别占 用多少字节?
相关文档
最新文档