Board logo

标题: 建立永久的畸形盘符 [打印本页]

作者: 523066680     时间: 2008-7-26 20:42    标题: 建立永久的畸形盘符

::本文编辑 if_exist  原文链接http://www.cn-dos.net/forum/view ... id=HhGCsq#pid289889虽然不是批处理的事情,但是没办法,在别的地方发恐怕没人看
话说当年的elect……前辈写了一篇超级目录 的文章
其中提及用subst建立畸形盘符的方法

以数字 字符……建立的盘符,该盘不能直接显示出来。
但是我发现,subst建立了的畸形符号磁盘  在重启后就没有了

这次我试了一下mountvol命令
先mountvoll /d d:
然后 mountvol 4: [代码]

就可以把原来的D: 变成 4:  而且,只用dos能够访问

以下是一个实例(新手请勿随便测试,尤其是C盘,不要试):
E:\>mountvol d: /l
    \\?\Volume{228834c3-55f2-11dd-9311-806d6172696f}\

E:\>mountvol d: /d

E:\>mountvol 4: \\?\Volume{228834c3-55f2-11dd-9311-806d6172696f}\

E:\>4:

4:\>

这个盘符为4:的盘 在正常情况下windows不能显示


刚刚测试过 $: 盘符建立成功 ,杀软中并未显示出这个盘符
病毒使用该技巧的后果  不可估计,建议大家把
mountvol.exe 放在别的地方 别放在可以直接调用的地方

8楼有经过测试的解决方案


[ Last edited by 523066680 on 2008-7-27 at 11:47 AM ]
作者: HAT     时间: 2008-7-26 20:54
Nice job!
作者: BC     时间: 2008-7-26 20:56
很好...
作者: HAT     时间: 2008-7-26 21:05
经测试,这样隐藏的盘符,使用下面的方法均无法显示,思考中...
wmic LogicalDisk get * /value

wmic DiskDrive get * /value

fsutil fsinfo drives

作者: 523066680     时间: 2008-7-26 21:12
for /l %%a in (0,1,9) do if exist %%a: echo %%a:
其他字符嘛  还是for
for /l %%a in (……)  
如果数字就好找 如果是字符 for 死你
作者: 523066680     时间: 2008-7-26 21:14
我在想 如果这个想法 像 超级目录一样 被病毒利用
我们怎么防啊!!!
(临时的想法 ,把这类可怕的命令都藏在一个不常见的目录中好了 要的时候才用)

要是病毒用这个方法  杀软怎么查毒啊
作者: bat-zw     时间: 2008-7-26 21:57
此贴已破,方法暂时保密!!!
作者: bat-zw     时间: 2008-7-26 22:20
破解:
@echo off
for /f "tokens=2 delims=:\ " %%i in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices^|find "DosDevices"') do echo %%i|findstr /i "[^a-z]">nul&&echo 隐藏的盘符为%%i:
pause
[ Last edited by bat-zw on 2008-7-26 at 10:21 PM ]
作者: radem     时间: 2008-7-26 22:28
好东东
作者: HAT     时间: 2008-7-26 23:10
ZW兄把简单的版本贴出来了,我来换个思路,贴个复杂的,呵呵。
@echo off
set DstRow=        *** 无装入点 ***
set PriRow=""
setlocal enabledelayedexpansion
for /f "tokens=1* delims=" %%a in ('mountvol') do (
  if "%%a" neq "%DstRow%" (
    set PriRow=%%a
  ) else if "%%a" equ "%DstRow%" (
    call :show !PriRow!
  )
)
endlocal
goto :eof
:show
for /f "tokens=2 delims={}" %%a in ("%1") do set VolumeNo=%%a
for /f "delims=" %%a in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices^|findstr "%VolumeNo%"') do set Binary=%%a
set Binary=%Binary:~-24%
for /f "tokens=3 delims=\:" %%a in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices^|findstr "%Binary%"^|findstr "DosDevices"') do (
  echo 隐藏的盘符为%%a:
  echo 对应的卷标为%1
)

作者: HAT     时间: 2008-7-26 23:26
刚才在虚拟机里面,一不小心把包括系统盘在内的所有盘都mountvol /d了,幸亏是虚拟机,通过调用物理机里面的mountvol.exe恢复回来了。大家在物理机里面测试的时候,一定要小心哦^_^
作者: BC     时间: 2008-7-27 10:26
原来不管怎么改,注册表里都有记录...
如果我们连同注册表都改了呢?或者禁用注册表呢?
作者: radem     时间: 2008-7-27 11:17


  Quote:
Originally posted by HAT at 2008-7-26 11:26 PM:
刚才在虚拟机里面,一不小心把包括系统盘在内的所有盘都mountvol /d了,幸亏是虚拟机,通过调用物理机里面的mountvol.exe恢复回来了。大家在物理机里面测试的时候,一定要小心哦^_^

物理机系统盘(C)能mountvol /d成功吗?我是不敢拿自己的机子试了,要么去网吧.....^_^
作者: 523066680     时间: 2008-7-27 11:44
没事的! 我试过C盘 了  重启的时候自己恢复了!
(还没重启的时候吓死了)

[ Last edited by 523066680 on 2008-7-27 at 11:45 AM ]
作者: keen     时间: 2009-4-12 02:43
很简单的破解方法:
直接在cmd窗口下,输入mountvol,不带任何参数,它就会有各个盘符的volumename值,隐藏的盘符的volumename值,将会显示为***无装入点*** ,直接用下面代码:
mountvol z: 【标注为无装入点的volumename】