Stuxnet病毒驱动分析

合集下载

全球前十计算机病毒排名

全球前十计算机病毒排名

全球前十计算机病毒排名全球前十计算机病毒排名,是指全球最具影响力的计算机病毒排名。

计算机病毒是一种恶意软件,它可以自动复制并传播到其他计算机上,从而破坏计算机系统的正常运行。

全球前十计算机病毒排名如下:1. Conficker病毒:Conficker病毒是一种网络蠕虫,它可以通过网络传播,并且可以攻击Windows操作系统。

2. WannaCry病毒:WannaCry病毒是一种勒索软件,它可以通过网络传播,并且可以攻击Windows操作系统。

3. Stuxnet病毒:Stuxnet病毒是一种恶意软件,它可以攻击工业控制系统,并且可以攻击Windows操作系统。

4. Zeus病毒:Zeus病毒是一种钓鱼软件,它可以通过网络传播,并且可以攻击Windows 操作系统。

5. Sality病毒:Sality病毒是一种恶意软件,它可以通过网络传播,并且可以攻击Windows操作系统。

6. CryptoLocker病毒:CryptoLocker病毒是一种勒索软件,它可以通过网络传播,并且可以攻击Windows操作系统。

7. Mydoom病毒:Mydoom病毒是一种网络蠕虫,它可以通过网络传播,并且可以攻击Windows操作系统。

8. Sasser病毒:Sasser病毒是一种网络蠕虫,它可以通过网络传播,并且可以攻击Windows操作系统。

9. Code Red病毒:Code Red病毒是一种网络蠕虫,它可以通过网络传播,并且可以攻击Windows操作系统。

10. Nimda病毒:Nimda病毒是一种网络蠕虫,它可以通过网络传播,并且可以攻击Windows操作系统。

以上就是全球前十计算机病毒排名。

计算机病毒的传播速度非常快,因此,用户应该加强计算机安全防护,定期更新系统,安装杀毒软件,以防止计算机病毒的侵害。

探索Duqu木马身世之谜Duqu和Stuxnet同源性分析

探索Duqu木马身世之谜Duqu和Stuxnet同源性分析
C\ rg r FeW M ae Mw r T :Po l n is a l w rW e o e C\ I D W S s = r 2 ̄ c o t x : N O W \yt n kv h s ee e3 0 ̄ I O S s s m s c o t x W NO W %gt e v h s ee C' I O S ¥ s r3 、V h ee : ND W \vt n 2¥ C 0 r , , W e C' I O S s s m 2s c o t H : ND W \ t 3 \v h = ee , . W y e C\ IDO S s = m3 \v h s ee : N W \ t 2s c ot x W ye CW l 0 S 0 m3 、o ie x : ND W 、 f 2c nm e e e
微软 公司的4 nd ws 作 系统漏洞 ( 中3 个Wi o : 操 其 个 _主要用于攻击伊朗的核 设施 。据发表在德国新
是 当时全新 的零 日 漏洞 ) 2 iC 操作 系统漏 闻杂志 ( r pe e)的一篇 文章介绍 , 、 个w n C ( ig 1 De S ) 该蠕 虫
洞和2 个有效 的数 字证 书, 过一套完整 的入 侵 感染了伊朗I一型离心机 后, 其正常运行速度 通 R1 将
Su nt tx e蠕虫极 为相 似的技 术手段 , 引起 了多个 驱 动模块分 为R okt o ti 功能 ( 主要用于躲避 反病
计 算机 反病毒厂 商的密切 关注 。 设D q 木马 毒 软件 )的mrn t y 文件 和负责 解密和 注入 假 uu x e s s
与Su n t tx e蠕虫具 有相同出处 ( 即两者 具有同源 的mrcs y 文件 ; l x ls s dl 模块和配置文件均 以加密 性 ), 那么它出现的意义是什么?是否 意味 着新 形 式存 储在 磁盘 上 , 在需 要时 解密 到内存 ; 仅

Stuxnet攻防

Stuxnet攻防

摘要Stuxnet又名“震网”,是针对微软件系统以及西门子工业系统的最新病毒,目前已感染多个国家及地区的工业系统和个人用户,此病毒可通过网络传播,与以往病毒不同,其代码非常精密曾造成伊朗核电站推迟发电的全球首个“超级工厂病毒”Stuxnet目前已经侵入我国。

瑞星昨日发布的预警显示,国内已有近500万网民及多个行业的领军企业遭Stuxnet蠕虫病毒攻击,而且由于安全制度上的缺失,该病毒还存在很高的大规模传播风险。

据瑞星安全专家介绍,Stuxnet 蠕虫病毒是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。

关键字:震网;超级工厂;Stuxnet蠕虫病毒目录一.病毒简介二.病毒的传染(一)传染方式:(二)传染流程三. 病毒原理四.病毒防御五.解决方案(一)杀毒软件清除病毒(二)手工清除病毒六.安全建议七.结束语一、病毒简介病毒名称:Worm.Win32.Stuxnet病毒概述:Stuxnet蠕虫病毒(超级工厂病毒)是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。

特别是针对西门子公司的SIMATIC WinCC监控与数据采集(SCADA) 系统进行攻击,由于该系统在我国的多个重要行业应用广泛,被用来进行钢铁、电力、能源、化工等重要行业的人机交互与监控。

传播途径:该病毒主要通过U盘和局域网进行传播。

历史“贡献”:曾造成伊朗核电站推迟发电。

2010-09-25,进入中国。

Stuxnet及其变种是一种利用最新的Windows Shell漏洞传播恶意文件的蠕虫。

造成这个漏洞的原因是Windows 错误地分析快捷方式,当用户单击特制快捷方式的显示图标时可能执行恶意代码(文件带有.LNK扩展名)。

二、病毒的传染(一)传染方式:这是一个可以通过微软MS10-046漏洞(lnk文件漏洞),MS10-061(打印服务漏洞),MS08-067等多种漏洞传播的恶性蠕虫病毒。

信息化作战中的网络战实战案例研究

信息化作战中的网络战实战案例研究

信息化作战中的网络战实战案例研究信息化时代,网络战已经成为现代战争的重要组成部分。

网络战的实战案例研究对于提高国家的网络安全能力、保护国家利益具有重要意义。

本文将从几个典型的网络战实战案例出发,分析其实施过程和影响,探究信息化作战中的网络战实践。

一、Stuxnet病毒攻击事件Stuxnet病毒攻击事件是历史上最知名的网络战实战案例之一。

该病毒于2010年被发现,针对伊朗的核设施进行攻击。

Stuxnet病毒利用多个漏洞渗透到目标系统,破坏了伊朗的离心机控制系统,使其无法正常运转。

这一事件显示了网络战对于实施国家利益攸关领域的影响力。

通过使用病毒攻击,即使离心机本身没有严重损坏,但核设施的运行受到了严重干扰,对该项目的进展造成了巨大阻碍。

二、俄罗斯对乌克兰的网络攻击俄罗斯对乌克兰的网络攻击事件是近年来备受关注的网络战实战案例。

自2014年乌克兰危机爆发以来,俄罗斯对乌克兰的网络攻击行动屡屡发生。

这些攻击涉及了乌克兰多个领域,包括电力系统、金融系统、政府网站等。

这些攻击事件造成了乌克兰社会生活的严重干扰,甚至影响了国家的正常运行。

例如,电力系统遭到破坏,导致了大规模停电事件,严重影响了人民的生活和经济的运行。

三、美国对伊朗的网络攻击美国对伊朗的网络攻击是信息化作战中的典型案例之一。

针对伊朗的核计划,美国情报机构与军方合作,实施了名为“奥林匹斯计划”的网络攻击行动。

该行动通过病毒攻击,成功破坏了伊朗的浓缩铀离心机。

这一网络战行动对于推迟伊朗的核计划进程产生了积极影响。

通过破坏核设施的正常运行,美国成功阻止了伊朗在核武器领域的发展。

四、叙利亚内战中的网络战行动叙利亚内战中的网络战行动是一个充满挑战和复杂性的实战案例。

叙利亚内战吸引了全球各大国家和激进组织的目光,他们通过网络战的手段相互进行攻击和反攻。

在这场网络战中,各方通过网络攻击封锁敌对势力的通信线路,破坏敌方的网络基础设施,甚至进行了网络渗透和间谍行动。

病毒网络攻击案例分析

病毒网络攻击案例分析

病毒网络攻击案例分析标题:病毒网络攻击案例分析:伊朗核设施遭受“中央情报局(CIA)之刃”攻击摘要:本案例分析将深入探讨一起发生在2010年的病毒网络攻击案件,被称为“中央情报局之刃”(Stuxnet),该事件以其巧妙的计划和对伊朗核设施的破坏性被广泛关注。

本文将分析该事件发生的背景、时间、事件经过以及由此产生的法律和国际关系影响,并得出律师的点评。

1.背景信息:伊朗核能发展项目早在20世纪80年代就开始了,但受到国际社会的严密监视。

由于伊朗与美国关系紧张,美国一直对伊朗核计划持反对态度。

此外,以色列也表达了对伊朗核计划的担忧,认为伊朗追求核武器的能力会对其国家安全构成威胁。

2.时间和事件经过:2.1 2010年6月:伊朗布什尔核电站的操作员们发现设备开始出现异常,并报告了这一问题。

最初,伊朗当局将其归因于技术问题。

2.2 2010年7月:一位德国网络安全公司Symantec的专家接收到一个由白金圈(一个网络犯罪组织)发给伊朗的文件,并立即展开研究。

这个文件是一个刚刚发现的病毒样本。

2.3 2010年9月:专家发现,这个病毒样本非常独特,它使用了四个零日漏洞进行入侵,并迅速在Windows系统上蔓延。

这个病毒被命名为“Stuxnet”。

2.4 2010年11月:根据各种指示和专家的敏锐观察,病毒似乎专门针对伊朗的核设施。

其目标之一是位于伊朗布什尔核电站的离心浓缩机。

2.5 2010年12月:Stuxnet的设计细节被泄露,引起了广泛的关注和持续的国际争议。

据报道,这个病毒被发现已经感染多个国家的核设施。

3.法律和国际关系影响:3.1国际关系影响:美国和以色列被普遍认为是Stuxnet的幕后干谋者,这对两国与伊朗及其盟友的关系产生了重大影响。

该事件加剧了中东地区的紧张局势,并引发了与伊朗核问题相关的国际争论。

3.2国际法的触及:由于Stuxnet的影响超越了国家边界,侵犯了其他国家的主权和网络安全,这引发了一系列国际法问题。

有哪些计算机病毒的典型案例

有哪些计算机病毒的典型案例

有哪些计算机病毒的典型案例计算机病毒是一种可以通过网络或存储介质传播的恶意软件,它们可以对计算机系统造成严重的破坏。

在计算机领域,病毒是一种非常常见的安全威胁,而且它们的种类也非常多样。

接下来,我们将介绍一些典型的计算机病毒案例,以便更好地了解这些威胁。

1. Melissa病毒。

Melissa病毒是一种在1999年出现的宏病毒,它主要通过电子邮件传播。

一旦用户打开了感染了Melissa病毒的电子邮件附件,病毒就会开始自动复制并发送自己给用户的联系人。

由于它的快速传播速度,Melissa病毒曾一度引起了全球性的恐慌,造成了大量的计算机系统瘫痪。

2. ILOVEYOU病毒。

ILOVEYOU病毒是一种在2000年出现的蠕虫病毒,它通过电子邮件发送“我爱你”的主题来诱使用户打开感染文件。

一旦用户打开了附件,病毒就会开始破坏用户的文件,并且自动发送自己给用户的联系人。

ILOVEYOU病毒造成了数十亿美元的损失,成为了互联网历史上最具破坏力的病毒之一。

3. WannaCry勒索病毒。

WannaCry病毒是一种在2017年出现的勒索病毒,它利用Windows操作系统的漏洞进行传播。

一旦用户的计算机感染了WannaCry病毒,病毒就会加密用户的文件,并要求用户支付赎金才能解密。

WannaCry病毒曾一度造成了全球范围内的大规模感染,影响了包括医疗、金融在内的多个行业。

4. Zeus木马病毒。

Zeus病毒是一种银行木马病毒,它主要通过网络钓鱼和恶意软件下载器进行传播。

一旦用户的计算机感染了Zeus病毒,病毒就会窃取用户的银行账号和密码,并用于非法转账。

Zeus病毒曾造成了大量用户的财产损失,成为了银行业安全的重大威胁。

5. Stuxnet病毒。

Stuxnet病毒是一种专门针对工业控制系统的病毒,它主要通过USB设备进行传播。

一旦感染了工业控制系统,Stuxnet病毒就会破坏系统中的控制程序,导致工业设备的故障和瘫痪。

震网病毒的特点和传播途径

震网病毒的特点和传播途径

震网病毒的特点和传播途径008年,“震网”病毒攻击就开始奏效,伊朗核计划被显著拖延,它有什么特点和传播途径呢!下面由店铺给你做出详细的震网病毒的特点和传播途径介绍!希望对你有帮助!“震网”病毒的特点:1、与传统的电脑病毒相比,“震网”病毒不会通过窃取个人隐私信息牟利。

2、由于它的打击对象是全球各地的重要目标,因此被一些专家定性为全球首个投入实战舞台的“网络武器”。

3、无需借助网络连接进行传播。

计算机安全专家在对软件进行反编译后发现,“震网”病毒结构非常复杂,因此它应该是一个“受国家资助高级团队研发的结晶”。

这种病毒可以破坏世界各国的化工、发电和电力传输企业所使用的核心生产控制电脑软件,并且代替其对工厂其他电脑“发号施令”。

4、极具毒性和破坏力。

“震网”代码非常精密,主要有两个功能,一是使伊朗的离心机运行失控,二是掩盖发生故障的情况,“谎报军情”,以“正常运转”记录回传给管理部门,造成决策的误判。

在去年的攻击中,伊朗纳坦兹铀浓缩基地至少有1/5的离心机因感染该病毒而被迫关闭。

5,“震网”定向明确,具有精确制导的“网络导弹”能力。

它是专门针对工业控制系统编写的恶意病毒,能够利用Windows系统和西门子SIMATICWinCC系统的多个漏洞进行攻击,不再以刺探情报为己任,而是能根据指令,定向破坏伊朗离心机等要害目标。

6,“震网”采取了多种先进技术,具有极强的隐身性。

它打击的对象是西门子公司的SIMATICWinCC监控与数据采集(SCADA)系统。

尽管这些系统都是独立与网络而自成体系运行,也即“离线”操作的,但只要操作员将被病毒感染的U盘插入该系统USB接口,这种病毒就会在神不知鬼不觉的情况下(不会有任何其他操作要求或者提示出现)取得该系统的控制权。

7,“震网”病毒结构非常复杂,计算机安全专家在对软件进行反编译后发现,它不可能是黑客所为,应该是一个“受国家资助的高级团队研发的结晶”。

美国《纽约时报》称,美国和以色列情报机构合作制造出“震网”病毒。

Stuxnet病毒全球肆虐将影响我国众多企业

Stuxnet病毒全球肆虐将影响我国众多企业
木 马 虽然对 系统没 什 么危 害 , 但 却 是 隐 私 杀 手 。不 仅 可 以 盗 取 我 们 系
检 测 是 否 存 在 木 马 服 务 。找 到 后 我 们 可 以 在 木 马 服 务 上 点 击 右 键 , 选 择 “ 性 ”在 “ 性 ” 板 的 “ 动 类型 ” 属 . 属 面 启
下 进 行 , 为 在 W id w 因 n o s中 , 毒 可 病
ቤተ መጻሕፍቲ ባይዱ
能 会 和 系 统 文 件 进 行 挂 钩 , 致 无 法 导 删 除 . 安 全 模 式 只 会 加 载 最 基 本 的 而
驱 动 程 序 ,病 毒 会 因 此 而 无 法 运 行 , 清 除 起 来 就 相 对 容 易 。进 入 安 全 模 式
窥 。 木 马 的特 点 是 能 够 巧 妙 地 隐 藏 于 系统 中 , 它 的 目 的是 帮 助 黑 客 窃 取 资 料 以 及 满 足 黑 客 的偷 窥 欲 。 出 于 木 马 的 特 点 ,我 们 在 清 除 木 马 也 需 要 有 技
巧 的 删 除 。我们 可 以 从 以 下 几 点 出发 :

5 0万 网 民 及 多 个 行 业 的 领 军 企 业 0 遭 此 病 毒 攻 击 。 星 反 病 毒 专 家 警 告 瑞 说 , 们 许 多 大 型 重 要 企 业 在 安 全 制 我 度 上 存 在 缺 失 ,可 能 促 进 Su n t tx e 病 毒在 企 业 中 的大规 模 传播 。
中选择 “ 禁 用” 已 。最 后 同样 用 杀 毒 软 件 进行 彻底 的查杀 。
的 。传统 的计 算机 病毒 目的很 简单 ,
只 是计 算 机 编程 高 手 的 一 种技 术炫
耀 , 要 以 破 坏 为 目的 。 而 现 在 的 计 主 算 机 病 毒 却 已 经 成 为 黑 客 谋 利 的 手
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Stuxnet蠕虫驱动分析这里只是分析文字, 贴图影响速度, 就不贴了, 具体看附件pdf文档, 难免有错误之处, 欢迎指正!一. Stuxnet蠕虫(超级工厂病毒)简单说明能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击,被称为是新时代网络战争开始的标志,也有人宣称是"政府发动的网路战争、带有圣经讯息、最高机密等",呵呵,有点雷人!windows下最主要的传播途径是攻击快捷方式自动执行漏洞(MS10-046), WindowsServer服务的远程溢出漏洞(MS08-067)以及打印后台程序服务中的远程代码执行漏洞(MS10-061)。

病毒成功攻击了伊朗核电站,造成伊朗核电站推迟发电.由于能够对西门子公司的SIMATIC WinCC监控与数据采集(SCADA) 系统进行攻击,因此也能攻击我国的钢铁、电力、能源、化工等重要行业,Stuxnet超级工厂病毒直到2010-09-25,才在传入国内网络.我是在近两个月前才收到的,当时只需要简单分析用户态的部分样本,因此没有对驱动进行分析.后来闲着没事时,就分析了驱动部分.不过,此病毒强大之处大部分都在用户态实现.二.Stuxnet蠕虫(超级工厂病毒)驱动(mrxnet.sys)分析从Stuxnet蠕虫病毒样本中提取出了两个驱动文件,mrxnet.sys(17k),mrxcls.sys(26k),其中驱动mrxnet.sys在蠕虫通过u盘驱动器传播时被用来隐藏特定文件,这个驱动是一个文件系统过滤驱动,支持三种文件系统ntfs, fastfat和cdfs文件系统.驱动文件mrxcls.sys则被用于向用户空间中注入代码,被注入的模块被放在一个配置文件中,这应该就是最初让卡巴斯基头痛的"父进程注入"技术,轻松地绕过卡巴.这里单就只分析驱动mrxnet.sys.入口处开始分析:1.此驱动首先创建一个设备类型为FILE_DEVICE_DISK_FILE_SYSTEM,设备特征为FILE_DEVICE_SECURE_OPEN,设备扩展为8字节的无名设备对象.这个驱动没有控制设备,因此不会跟用户态交换信息.其中设备扩展的类似如下定义:DeviceExtension{PDEVICE_OBJECT LowerDevice;PDEVICE_OBJECT RealDevice;}其中LowerDevice为本驱动的下层驱动,RealDevice为VPB中的RealDevice设备,其实也就是文件系统的卷设备.2.接下来注册MajorFunction:IRP_MJ_FILE_SYSTEM_CONTROLIRP_MJ_DIRECTORY_CONTROL这两个派遣例程,这个驱动主要就处理这两例程,其他的用一个例程处理,其实是直接pass了,不做任何处理.两个例程分别是FileSystemControl,DirControl.是本驱动核心功能的实现,留到最后阐述.3.接着就是填充FastIoRoutines,驱动并没填充所有的FastIoRoutines,这里填充了如下: FastIoCheckIfPossible;FastIoRead;FastIoWrite;FastIoQueryBasicInfo;FastIoQueryStandardInfo;FastIoLock;FastIoUnlockSingle;FastIoUnlockAll;FastIoUnlockAllByKey;FastIoDeviceControl;FastIoDetachDevice;FastIoQueryNetworkOpenInfo;MdlRead;MdlReadComplete;PrepareMdlWrite;MdlWriteComplete;FastIoReadCompressed;FastIoWriteCompressed;MdlReadCompleteCompressed;MdlWriteCompleteCompressed;FastIoQueryOpen;这些FastIoRoutines没有做什么实质性的工作,只是把简单判断一下,然后调用下层驱动.4.然后就是attach到文件系统了,函数:AttatchTargetDrivers.先获取通过MmGetSystemRoutineAddress动态获取ObReferenceObjectByName函数的地址,将其地址作为参数去获取文件的驱动对象,文件系统名为:\\FileSystem\\ntfs\\FileSystem\\fastfat\\FileSystem\\cdfs支持的文件系统有ntfs,fastfat,cdfs.这三个文件系统名的地址被放在一个指针数组中,这个指针数组以后会被通过ObReferenceObjectByName 获取的驱动对象覆盖;这里有个循环,循环3次,分别去attach这三种文件系统.这个attach的函数是GetTargetDriverAndAttach(),函数有两个参数,第一个参数是函数ObReferenceObjectByName的地址,第二个参数是文件系统文件名指针,这个参数即用来传入文件系统名地址,也用于获取所得的驱动对象指针.进入这个函数内部,函数先获取文件系统驱动对象,然后遍历驱动对象的每个设备对象进行attach,attach 每个设备对象的函数是TryToAttachDevice()TryToAttachDevice()这个函数有两个参数,第一个是设备对象(既是文件系统的设备对象),第二个是BOOLEAN型(这里调用时传入的为true),用于判定这个文件系统是被注册(激活),还是卸下.如是被注册,则调用函数CreateFilterDeviceAndAttach()否则Detach本驱动在文件系统设备栈中的设备.CreateFilterDeviceAndAttach()这个设备有一个参数,参数为文件系统的设备.这个函数只attach 设备类型为磁盘文件类设备,CD_ROM文件类设备,网络文件类设备.FILE_DEVICE_DISK_FILE_SYSTEM,FILE_DEVICE_CD_ROM_FILE_SYSTEMFILE_DEVICE_NETWORK_FILE_SYSTEM先判断设备类型满足以上条件,如果这个文件系统设备还没有被attach,则创建一个本驱动的设备attach 到文件系统设备栈中,Attach是通过函数AttachToFsDevie来实现的,这个函数很简单,只是把attach设备后,把下层设备保存于设备扩展中.这样就完成了attach工作.5.调用函数IoRegisterFsRegistrationChange注册文件系统变动回调例程.这个例程也就是4讲到的TryToAttachDevice()函数,用于完成对动态激活的文件系统进行attach.IRP_MJ_FILE_SYSTEM_CONTROL和IRP_MJ_DIRECTORY_CONTROL的派遣例程处理,这两个例程都只处理IRP_MN_MOUNT_VOLUME类型的次功能码,主要是为了能在新的文件系统被激活时,做相应的处理.其他的直接pass,不做处理.1.FileSystemControlRoutine例程首先获取MinorFunction,判断是否是IRP_MN_MOUNT_VOLUME,是则调用MnMountVolumeForFSC,否则pass;2.MnMountVolumeForFSC()函数先创建了一个设备对象,然后初始化设备扩展,在设备扩展的第二成员里保存VPB中realDevice.然后是自己实现了将当前设备的Stack Location拷贝到下层设备的Stack Location处,并且设置好完成例程, Context和控制域.完成例程名为CompleteRoutineForFSC.3.完成例程CompleteRoutineForFSC.完成例程的context参数传进来是我们创建的过滤设备对象,通过这个设备对象得到原先保存的vpb->RealDevice,再根据这个设备得到vpb然后在获得VPB->DeviceObject,这个设备则是文件系统的卷设备,为什么要这么做,因为在mount之前我们创建的设备的VPB可能在mount完成后就不同了,而完成后的VPB才是有效的.故这里先将文件系统的卷设备保存在设备扩展中,后在完成例程里重新获取.得到文件系统的卷设备对象后就可以进行attach了.attach完成例程函数的主要工作也就算是完成了.1.DirControlRoutine其实重头戏在函数DirControlRoutine中,这个函数主要实现文件隐藏功能.同样也只处理IRP_MN_MOUNT_VOLUME,判断后直接调用函数MnQueryDirectory.2.MnQueryDirectory这个函数先获取查询目录(文件)名,如果文件名存在并且文件名长度76,且文件名前19个字符全是'{'的话,就放过(这里有点不解,为什么要设置这个例外呢.),否则复制当前栈道下层栈,并设置完成例程IoCompleteRoutineForQueryDir,将irp直接下发,这里栈的COPY和完成例程的设置前面一样,是自己实现的.3完成例程IoCompleteRoutineForQueryDir这个函数比较大,主要是做文件过滤隐藏的.先判断IRP->IoStatus.Status是否成功,如果不成功则释放相关资源并退出,然后就是获取一些文件相关的偏移,从函数GetFileInforOffset中获取EndOfFile Offset,FileName Offset,FileNameLength Offset.因为这里会因为文件信息类FileInformationClass的不同而会有不同的偏移.得到偏移后就可以这里涉及的文件信息类有FileBothDirectoryInformationFileDirectoryInformationFileFullDirectoryInformationFileIdBothDirectoryInformationFileIdFullDirectoryInformationFileNamesInformation接着就是得到查询信息的缓冲,然后调用HideFile来隐藏文件.4.隐藏文件函数HideFile此函数中,从前面获取的几个偏移从缓冲中定位文件名地址,文件长度,文件结束位置.然后就是调用两个函数文件名过滤函数(CheckPostfix,CheckNameInvlidForTMP)来筛选病毒关心的文件.在函数CheckPostfix中判断文件名是否是一".LNK"后缀的文件名,如是则符合隐藏规则,在函数CheckNameInvlid中,如果文件大小在0x1000~ 0x800000,文件名长度为12,文件后缀名为".TMP",文件名第一个字符为"~",并且文件名从第5个字节到第8个字节为数字,并且这些数字之和必须等于10,便符合规则.符合以上两种规则的文件实施隐藏,隐藏处理是,如果条件符合,这把后面文件记录向前移动一个文件记录,也就是覆盖病毒关心的文件记录.。

相关文档
最新文档