找回密码
 加入
搜索
查看: 2499|回复: 11

防U盘病毒怎么写的???

[复制链接]
发表于 2009-1-22 16:56:31 | 显示全部楼层 |阅读模式
md d:\autorun.inf
md d:\autorun.inf\1..\
attrib d:\autorun.inf +r +s +h
echo y|cacls d:\autorun.inf /e /p everyone:n

我想用AU3写这样子的防U盘病毒,但是我不想调用CMD命令.
想用DirCreate来代替cmd里的md,
但是DirCreate ("d:\autorun.inf\1..\")是不行的...
请问除了调用CMD的还有其他方法吗???

[ 本帖最后由 laojikelly 于 2009-3-1 22:20 编辑 ]
发表于 2009-1-22 17:15:08 | 显示全部楼层
好像我也不知道哎

[ 本帖最后由 sxi3265 于 2009-1-22 17:28 编辑 ]
发表于 2009-1-22 19:59:06 | 显示全部楼层
如果用DOS命令方便的话为什么不用DOS命令 AU不过是个工具而已 再说了建立..文件夹本来WINDOWS就是不支持的 这是个BUG
发表于 2009-3-3 21:27:05 | 显示全部楼层
$Dir = 'AutoRun.Inf'
$NoDel = 'AutoRun.Inf\1..\'

DirCreate($Dir)
Run(@ComSpec&' /C Md '&$NoDel,'',@Sw_Hide)
Run(@ComSpec&' /C Cacls '&$Dir&' /E /P everyone:N','',@Sw_Hide)
FileSetAttrib($Dir,'+RSH',1)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-23 10:55:41 | 显示全部楼层

磁盘免疫代码 (增加NTFS分区拒绝访问功能)

在 Windows 下暂时无法正确判断 A 盘(软磁盘) 和在 WinPE 中判断内存盘(只读, 不可写, 感觉就像光盘, 但其属性又似硬盘)无效, 请高手帮助修改一下, 不胜感激!

#Cs____________________________________
        脚本功能: 试图在指定磁盘分区根目录创建 NTFS 文件系统分区无法访问/FAT(32)文件系统无法正常删除的 AutoRun.Inf 防毒文件夹
#Ce ____________________________________
;脚本开始 - 请在这下面添加您的代码:

$Drv = DriveGetDrive('Fixed')
If Not @Error Then
    For $i = 1 to $Drv[0]
;                MsgBox(4096,"驱动器 ",StringUpper($Drv[$i]))
        If StringInStr(DriveGetType($Drv[$i]),'RAMDisk') Then
                TrayTip('您的 '&StringUpper($Drv[$i])&' 盘是内存盘!','您的 '&StringUpper($Drv[$i])&' 盘是内存盘! 不处理...',15,3)
                Sleep(3000)
        Else
                TrayTip('正在处理 '&StringUpper($Drv[$i])&' 盘','正在处理 '&StringUpper($Drv[$i])&' 盘, 请稍候...',15,4)
                Sleep(3000)
                $Dir = StringUpper($Drv[$i])&'\AutoRun.Inf'
                $Desktop = $Dir&'\Desktop.InI'
                $Icon = $Dir&'\AutoRun.Ico'
                $SubDir = $Dir&"\防毒专用文件夹,请勿删除!"
                $NoDel = '"'&$SubDir&'\量你也删不掉我!..\'&'"'
                $Command = 'Cacls '&$Dir&' /T /E /P EveryOne:N'
                $ComdLine = 'Echo Y|Cacls '&$Dir&' /G EveryOne:F'

        If FileExists($Dir) Then RunWait(@ComSpec&' /C '&$ComdLine,'',@Sw_Hide)
                DirCreate($Dir)
                DirCreate($SubDir)
                Run(@ComSpec&' /C Md '&$NoDel,'',@Sw_Hide)
        If FileExists($Desktop) Then FileSetAttrib($Desktop,'-RSH')
                IniWrite($Desktop,'.ShellClassInfo','InfoTip','阿康说: 这是磁盘分区防毒专用文件夹, 请勿删除!')
                IniWrite($Desktop,'.ShellClassInfo','IconFile','AutoRun.Ico')
                IniWrite($Desktop,'.ShellClassInfo','IconIndex','0')
        If FileExists($Icon) Then FileSetAttrib($Icon,'-RSH')
                FileInstall('AutoRun.Dll',$Icon,1)
                Run(@ComSpec&' /C '&$Command,'',@Sw_Hide)
                FileSetAttrib($Dir,'+RSH',1)
                TrayTip('貌似已经搞定...','貌似 '&StringUpper($Drv[$i])&' 盘已经被我搞定...',15,4)
                Sleep(3000)
        EndIf
        Next
EndIf
$Usb = DriveGetDrive('ReMovAble')
If Not @Error Then
    For $i = 1 to $Usb[0]
;        MsgBox(4096,"驱动器 ",StringUpper($Usb[$i]))
        If StringInStr(DriveGetType($Drv[$i]),'RAMDisk') Then
                TrayTip('您的 '&StringUpper($Drv[$i])&' 盘是内存盘!','您的 '&StringUpper($Drv[$i])&' 盘是内存盘! 不处理...',15,3)
                Sleep(3000)
        Else
                TrayTip('正在处理 '&StringUpper($Usb[$i])&' 盘','正在处理 '&StringUpper($Usb[$i])&' 盘, 请稍候...',15,4)
                Sleep(3000)
                $Dir = StringUpper($Usb[$i])&'\AutoRun.Inf'
                $Desktop = $Dir&'\Desktop.InI'
                $Icon = $Dir&'\AutoRun.Ico'
                $SubDir = $Dir&"\防毒专用文件夹,请勿删除!"
                $NoDel = '"'&$SubDir&'\量你也删不掉我!..\'&'"'
                $Command = 'Cacls '&$Dir&' /T /E /P EveryOne:N'
                $ComdLine = 'Echo Y|Cacls '&$Dir&' /G EveryOne:F'

        If FileExists($Dir) Then RunWait(@ComSpec&' /C '&$ComdLine,'',@Sw_Hide)
                DirCreate($Dir)
                DirCreate($SubDir)
                Run(@ComSpec&' /C Md '&$NoDel,'',@Sw_Hide)
        If FileExists($Desktop) Then FileSetAttrib($Desktop,'-RSH')
                IniWrite($Desktop,'.ShellClassInfo','InfoTip','阿康说: 这是磁盘分区防毒专用文件夹, 请勿删除!')
                IniWrite($Desktop,'.ShellClassInfo','IconFile','AutoRun.Ico')
                IniWrite($Desktop,'.ShellClassInfo','IconIndex','0')
        If FileExists($Icon) Then FileSetAttrib($Icon,'-RSH')
                FileInstall('AutoRun.Dll',$Icon,1)
                Run(@ComSpec&' /C '&$Command,'',@Sw_Hide)
                FileSetAttrib($Dir,'+RSH',1)
                TrayTip('貌似已经搞定...','貌似 '&StringUpper($Usb[$i])&' 盘已经被我搞定...',15,4)
                Sleep(3000)
        EndIf
        Next
EndIf

TrayTip('全部处理完毕...','貌似全部都让我给搞定了...',15,4)
Sleep(3000)


[ 本帖最后由 ahkang 于 2009-3-23 13:11 编辑 ]
发表于 2009-3-23 13:33:33 | 显示全部楼层
兄弟,我也关注这个,有点疑问,这里面“FileInstall('AutoRun.Dll',$Icon,1)”啥意思,'AutoRun.Dll'哪来的,做啥用?

还有就是能否加个功能,去掉免疫的,有时候还是用得着的。
发表于 2009-3-24 11:18:24 | 显示全部楼层
原帖由 laotongbao 于 2009-3-23 13:33 发表
兄弟,我也关注这个,有点疑问,这里面“FileInstall('AutoRun.Dll',$Icon,1)”啥意思,'AutoRun.Dll'哪来的,做啥用?

还有就是能否加个功能,去掉免疫的,有时候还是用得着的。


回楼上: 当您看到了 $Icon = $Dir&'\AutoRun.Ico' 这个变量您就知道这是什么了, 其实, 这只不过是一个自定义的图标而已, 我个人习惯将它改扩展名为 AutoRun.Dll 您只需将其扩展名改回 .Ico 您就会发现这是一个白底绿标志的医用工具箱图标, 纯属个人习惯, 没别的...

$Icon = $Dir&'\AutoRun.Ico'
FileInstall('AutoRun.Dll',$Icon,1)

什么? 去掉免疫功能?! 意思是您希望让病毒在您的磁盘根目录自动创建真正的 AutoRun.Inf 安装信息文件? 其实, 要去掉此类目录也不是十分难, 只是操作有些复杂, 编写脚本貌似没有自己操作方便. 哪位有兴趣可以编写一个:

如果是在 FAT32 文件系统分区, DOS: RD /S /Q X:\AutoRun.Inf (此处 X:\ 为您想要操作的目标分区如 D:\);Au3: Run(@ComSpace & ' /C Rd /S /Q X:\AutoRun.Inf','',@Sw_Hide).

要是在 NTFS 系统分区, 操作就不这么简单了:
① 先去掉所有用户(EveryOne)访问该目录的权限: Echo|Cacls X:\AutoRun.Inf /G EveryOne:F 其实在脚本里边就已经包含了这个变量...
② 再点击浏览器的 "工具→文件夹选项(O)...→查看→使用简单文件共享(推荐)去掉前面的勾→确定", 再返回您要删除的免疫目录的磁盘分区, 右击 AutoRun.Inf 文件夹→属性(R)→安全(选项卡) 全选 "允许" 下面打上"√", 此时, 该目录的访问权限已经解除. 就可以用上面的命令删除了. 当然也可以重新启动系统到 DOS 下边用 Deltree 命令删除.

[ 本帖最后由 ahkang 于 2009-3-24 12:20 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-24 11:39:38 | 显示全部楼层
原帖由 laojikelly 于 2009-1-22 16:56 发表
md d:\autorun.inf
md d:\autorun.inf\1..\
attrib d:\autorun.inf +r +s +h
echo y|cacls d:\autorun.inf /e /p everyone:n

我想用AU3写这样子的防U盘病毒,但是我不想调用CMD命令.
想用DirCreate来代替cmd里 ...


貌似除了调用 Cmd 命令行可以创建类似 *..\ 文件夹以外, 实在想不出还有哪样程序可以创建此类特殊文件夹.
如果用 Au3 的 DirCreate() 函数来创建, 它会把后边的 ..\ 忽略掉, 达不到无法访问和删除这种文件夹的要求.

您试一下这两行代码就清楚了:

;脚本开始 - 请在这下面添加您的代码:

DirCreate('1..\') ;Au3 会忽略后面的 "..\" 而直接取 " 1 " 为文件夹名!
Run(@ComSpec&' /C Md 0..\','',@Sw_Hide) ;此处不能再为1! 因为上面已经在相同目录创建了一个1文件夹, 否则, 同样可以正常打开...


[ 本帖最后由 ahkang 于 2009-3-24 11:43 编辑 ]
发表于 2009-7-21 18:33:24 | 显示全部楼层
学习一下。。
发表于 2009-7-31 17:54:28 | 显示全部楼层
原来如此,谢谢
发表于 2010-8-31 16:24:26 | 显示全部楼层
学习学习~~~~
发表于 2010-8-31 20:18:54 | 显示全部楼层
5楼的代码不错。学习了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-28 03:59 , Processed in 0.079421 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表