如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 美文好词 > 优质好文 > 世界电脑病毒大全

世界电脑病毒大全

来源:免费论文网 | 时间:2017-05-16 07:53 | 移动端:世界电脑病毒大全

篇一:世上最完整的病毒分析及实例

第3章 病毒分析

本章介绍病毒的原理与所使用的技术,以及防止病毒的方法: ● 常见病毒的原理;

● 可执行文件病毒修改文件的方法;

● 可执行文件病毒使用的常用技术;

● 优化可执行文件防病毒;

● 文件过滤驱动在反病毒上的应用。

这是本章涉及的问题。

1.1 病毒概述

“计算机病毒”最早是由美国计算机病毒研究专家F.Cohen博士提出的。“计算机病毒”有很多种定义,国外流行的定义为:是一段附着在其他程序上的可以实现自我繁殖的程序代码。在《中华人民共和国计算机信息系统安全保护条例》中的定义为:“计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。

世界上第一例被证实的计算机病毒是在1983年,出现了计算机病毒传播的研究报告。同时有人提出了蠕虫病毒程序的设计思想;1984年,美国人Thompson开发出了针对UNIX操作系统的病毒程序。1988年11月2日晚,美国康尔大学研究生罗特·莫里斯将计算机病毒蠕虫投放到网络中。该病毒程序迅速扩展,造成了大批计算机瘫痪,甚至欧洲联网的计算机都受到影响,直接经济损失近亿美元。

计算机病毒是人为编写的,具有自我复制能力,是未经用户允许执行的代码。一般正常的程序是由用户调用,再由系统分配资源,完成用户交给的任务。其目的对用户是可见的、透明的。而病毒具有正常程序的一切特性,它隐藏在正常程序中,当用户调用正常程序时窃取到系统的控制权,先于正常程序执行,病毒的动作、目的对用户时未知的和未经用户允许的。它的主要特征有传染性、隐蔽性、潜伏性、破坏性和不可预见性。传染性是病毒最重要的一条特性。

按照计算机病毒侵入的系统分类,分为DOS系统下的病毒、Windows系统下的病毒、UNIX系统下的病毒和OS/2系统下的病毒。按照计算机病毒的链接方式分类可分为源码型病毒、嵌入型病毒、外壳型病毒。按照传播介质分类,可以分为可分为单机病毒和网络病毒。

随着Windows系统的发展,引导型病毒已经不再,宏病毒也少见。目前见得多的是感

染本机可执行文件的PE病毒和通过网络在计算机之间传播的蠕虫病毒比较常见。

1.2 PE病毒分析

Windows下常见的可执行文件,一种是二进制文件,就是扩展名为exe、dll、src和sys等的文件,它们的执行是由explorer.exe(资源管理器)、cmd.exe(控制台,类似DOS界面)或其它程序调用执行的。另一种是文本格式文件,例如扩展名为htm和html,可以由iexplorer.exe调用,由script.exe来解释执行的文件。

从Windows2000以后,其二进制文件文件为PE结构。PE的意思就是可移植的执行体(Portable Executable),它是 Windows的32位环境自身所带的执行体文件格式。它的一些特性继承自 Unix的 Coff (common object file format)文件格式,同时为了保证与旧版本MS-DOS及Windows操作系统的兼容,PE文件格式也保留了MS-DOS中那熟悉的MZ头部。病毒能够感染PE文件,因为病毒设计者深知其结构。

1.2.1 PE病毒常用技术

病毒也和正常的应用程序一样,涉及到函数的调用和变量的使用。

1、调用API函数的方法

API是“Application Programming Interface”的英文缩写,很象DOS下的中断。中断是系统提供的功能,在DOS运行后就被装载在内存中,而API函数是当应用程序运行时,通过将函数所在的动态连接库装载到内存后调用函数的。请大家先在MSDN的“索引”中输入函数“MessageBox”然后回车,就可以查到该函数的使用方法。MSDN是微软提供的开发帮助,是在Windows下编程必备的资料文件。

在Windows下设计应用程序不直接或间接使用API是不可能的,有些高级语言看似没有使用API,只不过它们提供的模块对API进了封装。

API的使用分为静态和动态使用两种方式。在源程序中调用API两种方式都可以使用,但对未公开API因为无相应的头文件,只能使用动态方式。下面以VC++中调用MessageBox说明两种方式的区别。

(1) 静态方式

char note_inf[]=”谢谢使用”;

char note_head[]=”提示信息”;

::MessageBox(0, note_inf, note_head,MB_OK); //::表示全局函数

反汇编结果如图3-1。“PUSH 00000000”对应的是MB_OK常量入栈,“PUSH 0040302C”

对应的是一个字符串的偏移地址入栈,“PUSH 00403020”对应的是另一个字符串偏移地址的入栈,第2行“PUSH 00000000”对应窗口句柄入栈。当程序执行时,装载器会将user32.dll装载到应用程序虚拟空间,同时将MessageBoxA(对应ANSI格式,另一种为UNICODE格式,用MessageBoxW表示。这是因为函数的参数有字符串,而字符串有两种格式所致)的入口地址填充到虚拟地址004021B8h。

虚拟地址004021B8h是由PE头中IMAGE_DATA_DIRECTORY数组来定位的,当编译器生成

PE文件时就计算好了。

图3-1 API的汇编调用

(2) 动态方式

动态方式先定义函数指针,使用函数LoadLibrary装载要调用的函数所在的dll

文件,获取模块句柄。然后调用GetProcAddress获取要调用的函数的地址。

void CTestDlg::OnButton

{

//定义MessageBox函数指针

typedef int (WINAPI *_MessageBox)(

HWND hWnd,

LPCTSTR lpText,

LPCTSTR lpCaption,

UINT uType

);

//定义MessageBox指针变量

_MessageBox new_MessageBox;

//装载MessageBox函数所在dll文件

HINSTANCE hb=LoadLibrary("user32.dll");

//获取ANSI格式的MessageBox函数地址

new_MessageBox=(_MessageBox)GetProcAddress(hb,"MessageBoxA");

//动态调用函数MessageBox

new_MessageBox(0,"欢迎使用!","提示信息",MB_OK);

//释放MessageBox函数所在模块

CloseHandle(hb);

}

动态方式是在需要调用函数时才将函数所在模块调入到内存的,同时也不需要编译器为该函数在导入表中建立相应的项。

2、病毒调用API函数

病毒要完成相应的功能,不可能不调用API函数。病毒感染PE文件可能是在源程序中加入病毒代码,但多数是在生成PE文件后通过修改PE文件感染的。对后种情况,病毒难以去为使用的API建立导入表项,只有使用第动态方式调用API。动态使用API的前提是预先知道LoadLibrary和GetProcAddress的地址,可以预先设定或搜索API的地址实现。 一个正常的Windows程序,它至少需要调用模块kernel32.dll,因为应用程序正常退出时需要调用函数ExitProcess,而该函数位于模块kernel32.dll内。然而函数LoadLibrary和GetProcAddress也位于模块kernel32.dll内。既然模块kernel32.dll总在内存,如果我们知道这两个函数地址,直接调用就可以了。

(1) 检测函数地址

先用间接方式检测函数的地址,代码如下,结果见图3-2。

void CTestDlg::OnButton1()

{

//定义函数LoadLibrary和GetProcAddress的原型

typedef HINSTANCE (WINAPI *_LoadLibrary)(

LPCTSTR lpLibFileName

);

typedef FARPROC (WINAPI *_GetProcAddress)(

HMODULE hModule,

LPCSTR lpProcName

);

//定义指针

_LoadLibrary new_LoadLibrary;

_GetProcAddress new_GetProcAddress;

//装载函数所在模块kernel32.dll

HINSTANCE hb=LoadLibrary("kernel32.dll");

//获取函数首地址

new_LoadLibrary=(_LoadLibrary)GetProcAddress(hb,"LoadLibraryA");

new_GetProcAddress=(_GetProcAddress)GetProcAddress(hb,"GetProcAddress"); //显示结果

CString inf;

inf.Format("LoadLibrary =%Xh\r\nGetProcAddress=%Xh",

new_LoadLibrary,new_GetProcAddress);

::MessageBox(0,inf,"地址信息",MB_OK);

CloseHandle(hb);

}

图3-2 取函数地址

(2) 在程序中直接使用函数地址

如下的代码直接使用函数LoadLibrary和GetProcAddress地址,然后用它们动态调用函数MessageBox,执行的结果是显示信息框。

void CTestDlg::OnButton2()

{

//定义MessageBox原型

typedef int (WINAPI *_MessageBox)(

HWND hWnd,

LPCTSTR lpText,

LPCTSTR lpCaption,

UINT uType

);

char funName[]="MessageBoxA";

//定义地址

DWORD LoadLibraryAddr=0x77E80221;

DWORD GetProcAddressAddr=0x77E80CAB;

_MessageBox new_MessageBox;

//定义函数所在模块名

HINSTANCE hb;

char dllName[]="user32.dll";

__asm{ ;VC++中嵌入汇编代码

篇二:史上十大最牛计算机病毒 把你的机器折腾得不像样

史上十大最牛计算机病毒 把你的机器折腾得不像样

1. CIH(1998年)

感染Win95/98中的可行性文件,这种病毒在Windows环境下传播,其实时性和隐蔽性都特别强,变种可以重写BIOS.大约在世界范围内造成了两千万到八千万美元的损失。

2.梅利莎(Melissa,1999年)

Melissa病毒是一种迅速传播的宏病毒,它作为电子邮件的附件进行传播,尽管Melissa病毒不会毁坏文件或其它资源,但是它可能会使企业或其它邮件服务端程序停止运行,因为它发出大量的邮件形成了极大的电子邮件信息流。1999年3月26日爆发,感染了15%-20%的商业电脑,带来了三千万到六千万美元的损失。

3.爱虫(I love you,2000年)

和Melissa一样通过电子邮件传播,而其破坏性要比Melissa强的多,可以删除本地部分图片和文本,大约造成了一千万到一千五百万美元的损失。

4.红色代码(Code Red,2001年)

Code Red是一种蠕虫病毒,本质上是利用了缓存区溢出攻击方式,使用服务器的端口80进行传播,而这个端口正是Web服务器与浏览器进行信息交流的渠道。与其它病毒不同的是,Code Red并不将病毒信息写入被攻击服务器的硬盘,它只是驻留在被攻击服务器的内存中。大约在世界范围内造成了二百八十万美元的损失。

5. SQL Slammer(2003年)

Slammer是一款DDOS恶意程序,透过一种全新的传染途径,采取分布式阻断服务攻击感染服务器,它利用SQL Server弱点采取阻断服务攻击1434端口并在内存中感染SQL Server,通过被感染的SQL Server再大量的散播阻断服务攻击与感染,造成SQL Server无法正常作业或宕机,使内部网络拥塞。和Code Red一样,它只是驻留在被攻击服务器的内存中。大约在世界范围内造成了五十万台服务器当机,让韩国整个网络瘫痪了12个小时。

6.冲击波(Blaster,2003年)

冲击波病毒是利用微软公司在当年

7月21日公布的RPC漏洞进行传播的,只要是计算机上有RPC服务并且没有打安全补丁的计算机都存在有RPC漏洞,该病毒感染系统后,会使计算机产生下列现象:系统资源被大量占用,有时会弹出RPC服务终止的对话框,并且系统反复重启,不能收发邮件、不能正常复制文件、无法正常浏览网页,复制粘贴等操作受到严重影响,DNS和IIS服务遭到非法拒绝等。这个病毒该是近期国内比较熟悉一个大范围影响的病毒了。大约造成了二百万到一千万美元的损失,而事实上受影响的电脑则是成千上万,不计其数。

7.霸王虫(Sobig.F,2003年)

这是Sobig

蠕虫的第5个变种,具有非常强的感染能力,因此将会发生庞大的电子邮件传输,使全球各地的电子邮件服务器当机,由于其特性,还将会极其危险的泄漏本地数据。大约造成了五百万到一千万美元的损失,有超过一百万台电脑受感染。

8.贝革热(Bagle,2004年)

Bagle也被称为Beagle,是一种透过电子邮件散布的蠕虫病毒,它通过远程访问网站利用电子邮件系统进行散布,并在Windows系统建立backdoor,至今为止,这个蠕虫可能是程度最严重,传播范围最广泛的蠕虫病毒,其影响仍然处于上升趋势。目前已经造成了上千万美元的损失,而且仍然在继续。

9. MyDoom(2004年)

篇三:世界首例病毒

世界首例计算机病毒

世界上公认的第一个在个人电脑上广泛流行的病毒是

1986年初诞生的巴基斯坦(C-Brain)病毒,编写该病毒的是一对巴基斯坦兄弟,两兄弟经营着一家电脑公司,以出售自己编制的电脑软件为生。当时,由于当地盗版软件猖獗,为了防止软件被任意非法拷贝,也为了追踪到底有多少人在非法使用他们的软件,于是在1986年年初,他们编写了“巴基斯坦”病毒,又被称为“大脑(Brain)”病毒。该病毒运行在DOS操作系统下,通过软盘传播,只在盗拷软件时才发作,发作时将盗拷者的硬盘剩余空间吃掉。


世界电脑病毒大全》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/meiwen/39571.html
转载请保留,谢谢!
相关文章