返回列表 发帖

[其他] 批处理磁盘隐藏与恢复工具

功能:隐藏和恢复    磁盘,光盘,移动磁盘。
          有密码保护。
说明:基于mountvol,对批处理有点了解的都可以解开。
          我只是把它完善成一个傻瓜版的工具,因为有密码设置,转成exe后可供一般用户使用。(附件已传exe版)
          如发现bug请跟帖提出,谢谢。
@echo off&setlocal enabledelayedexpansion
title Code By wankoilz 2010/4/17 @Win7 Q375913828
mode con cols=60 lines=20
set type2=移动磁盘
set type3=本地磁盘
set type5=光盘驱动
set logo=:::::::::::::::::::欢迎来到批处理的世界:::::::::::::::::::
:::::::::::::::::密码:::::::::::::::::::::::::::::::::::::::::::::::
set "cmd=echo.&set/p=........<nul"
:pass
cls
echo;
echo;
for /l %%i in (0,1,48) do (set/p=!logo:~%%i,1!<nul&for /l %%i in (1,1,25) do echo.>nul)
echo;
echo;
echo        ╔-------------------------------------------╗
echo        ┆    密码设置:                             ┆
echo        ┆    初始密码 xl,输入ccc可以进行密码修改   ┆
echo        ╚-------------------------------------------╝
reg query hkcu\pass >nul 2>nul||reg add hkcu\pass /v pass /t reg_sz /d "xl" /f >nul
for /f "skip=2 tokens=3" %%i in ('reg query hkcu\pass') do set "originalpass=%%i"
%cmd%&set/p pass=输入密码:
if /i "!pass!"=="ccc" (
    %cmd%&set/p pass=输入旧密码:
    if "!pass!"=="!originalpass!" (
         %cmd%&set/p newpass=正确,输入新密码:
         reg add hkcu\pass /v pass /t reg_sz /d "!newpass!" /f >nul&%cmd%&set/p=密码修改成功,<nul&pause
    ) else (%cmd%&set/p=密码错误!&goto :pass)
) else (if not "!pass!"=="!originalpass!" (echo ........密码不对...&pause&goto :pass) )
::::::::::::::::::获取当前存在的逻辑盘:::::::::::::::::::::::::::::::
:begin
set n=0&set c=0
for /f "skip=1 tokens=1,2" %%i in ('wmic logicaldisk get name^,drivetype') do (
    if not "%%j"=="" (set/a n+=1&set disk!n!=%%j&set %%j=%%i
    )
)
:::::::::::::::::::更新列表:::::::::::::::::::::::::::::::::::::::::::
reg query hkcu\volume >nul 2>nul&&call :addtable||call :gettable
::::::::::::::::::::交互界面::::::::::::::::::::::::::::::::::::::::::
for /f "skip=2 tokens=1" %%i in ('reg query hkcu\volume') do set/a c+=1
set/a line=%c%+15
mode con cols=60 lines=%line%
:list
cls&set x=0
echo;
echo       ╔-------------------------------------------╗
echo       ┆ 热情欢迎您加入批处理之家: bbs.bathome.cn ┆
echo       ┆ 注意:①隐藏系统盘会致系统崩溃,重启可恢复 ┆
echo       ┆      ②隐藏脚本所在盘会导致脚本被强行关闭 ┆
echo       ┆      ③r--刷新列表(有时候移动磁盘已经拔除 ┆
echo       ┆        但列表上仍有显示,r可以将其从列表中 ┆
echo       ┆        删除),同时还将恢复所有已隐藏磁盘   ┆
echo       ╚-------------------------------------------╝
echo       ╔-------------------------------------------╗
for /f "skip=2 tokens=1,3,4,5" %%i in ('reg query hkcu\volume') do (
    set/a x+=1&set _disk!x!=%%i&set _type!x!=%%j&set _flag!x!=%%k&set _vol!x!=%%l
    set x= !x!&echo       ┆      !x:~-2!........%%i   %%j%%k      ┆
)
echo       ╚-------------------------------------------╝
echo;
set/p=......<nul&set selectnum=&set/p selectnum=选择要隐藏(或显示)的磁盘对应数字(q退出,r刷新):
:::::::::::::::::::::::::::::判断输入是否合法:::::::::::::::::::::::::::::::
if /i "%selectnum%"=="q" exit
if /i "%selectnum%"=="r" goto :refreshtable
set flag=&for /l %%i in (1,1,%x%) do if "%selectnum%"=="%%i" set flag=ok
if not defined flag (echo 非法输入!&pause&goto :list)
::::::::::::::::::::::::::::::核心代码(装载或卸载卷标)::::::::::::::::::::
if "!_flag%selectnum%!"=="(未隐藏)" (
    call :show-or-hide !_disk%selectnum%! !_type%selectnum%! ^(已隐藏^) !_vol%selectnum%! "mountvol !_disk%selectnum%! /d"
) else (
    call :show-or-hide !_disk%selectnum%! !_type%selectnum%! ^(未隐藏^) !_vol%selectnum%! "mountvol !_disk%selectnum%! !_vol%selectnum%!"
)
goto :list
rem 首次运行添加磁盘列表到注册表
:gettable
for /l %%i in (1,1,%n%) do (
   for /f "delims=" %%j in ('mountvol !disk%%i! /l') do (
      call call reg add hkcu\volume /v !disk%%i! /t reg_sz /d "%%%%type%%!disk%%i!%%%%%% (未隐藏) %%j\" /f >nul
))
goto :eof
rem 启动(刷新)时如果有新盘符出现就添加到列表
:addtable
for /f "skip=2 tokens=1" %%i in ('reg query hkcu\volume') do set _%%i=ok
for /l %%i in (1,1,%n%) do (
   if not defined _!disk%%i! (
      for /f "delims=" %%j in ('mountvol !disk%%i! /l') do (
         call call reg add hkcu\volume /v !disk%%i! /t reg_sz /d "%%%%type%%!disk%%i!%%%%%% (未隐藏) %%j\" /f >nul
)))
goto :eof
rem 显示(隐藏)磁盘
:show-or-hide diskname disktype flag vol command
%~5
reg delete hkcu\volume /v %1 /f >nul
reg add hkcu\volume /v %1 /t reg_sz /d "%2 %3 %4\" /f >nul
goto :eof
rem 刷新列表--删除不存在的盘符,以及装载所有卷标以显示所有盘符
:refreshtable
echo .......刷新列表中...
setlocal
:loop
set a=0
for /f %%i in ('mountvol') do (
set "str=%%i"
if "!str:~0,3!"=="\\?" set flag2=ok
if defined flag2 (
   set/a a+=1,b=a%%2
   if !b! equ 1 set "vol=%%i"
   if !b! equ 0 (
       set "%%i=ok"
       if "%%i"=="***" (
           for %%j 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 not defined %%j:\ (mountvol %%j: !vol! >nul&goto :loop)
)))))
reg delete hkcu\volume /f >nul 2>nul&endlocal&goto :begin
:eofCOPY
链接: https://pan.baidu.com/s/1hi18zMeZ9bw6-LoNjHxUjg 提取码: s85y

公安局要是把你的硬盘摘走,一点用处也没用。
起不到任何隐秘作用。
自己使用反而带来很多不方便和不安全因素。
mountvol 唯一有用的地方是当盘符不够用的时候(超过字母Z),进行映射。

TOP

原帖由 hfg1977 于 2010-8-4 11:15 发表
公安局要是把你的硬盘摘走,一点用处也没用。
起不到任何隐秘作用。
自己使用反而带来很多不方便和不安全因素。
mountvol 唯一有用的地方是当盘符不够用的时候(超过字母Z),进行映射。

我说过了,对批处理有点了解的都能解,何需派出所出马啊。
你自己觉得不安全就不要用嘛......我系统是Win7旗舰版,这个脚本我是反复测试过的。
因为发帖的时候我还是“六级士官”,不能在"原创代码"版块发帖,所以只能发这里了。
如果斑竹觉得合格的话,请帮忙移到''原创代码"版块。

[ 本帖最后由 wankoilz 于 2010-8-4 12:42 编辑 ]

TOP

哇咔咔,其实做出一整套的方便操作的批处理不容易啦~
公安局要是把你的硬盘摘走,一点用处也没用。

意思就是公安局不带走,就很有用处啦,谁的硬盘被公安局带走过?   又不是强淫。

对了系统盘不要随便mountvol吧。 虽然重启会恢复好像。

关于遇到懂电脑的,问题是,谁一来你的电脑就去想你隐藏了个磁盘? 没事找事嘛
隐藏可以起到一种不让人无意间打开的作用。也可以避免小弟弟小妹妹乱动

[ 本帖最后由 523066680 于 2010-8-4 12:38 编辑 ]
[url=][/url]

TOP

  
公安局要是把你的硬盘摘走,一点用处也没用。
[quote]  
意思就是公安局不带走,就很有用处啦,谁的硬盘被公安局带走过?   又不是强淫。

[/quote]
汗! 意思是如果硬盘被摘下挂在其他机子或不从该硬盘引导,并不能起到隐藏作用。

当然如果某区有很多AV不想让老婆看到还是有用的。。。

TOP

汗! 意思是如果硬盘被摘下挂在其他机子或不从该硬盘引导,并不能起到隐藏作用。

当然如果某区有很多AV不想让老婆看到还是有用的。。。

是啊,如果用MHDD的话也不能起到隐藏作用......汗!

TOP

比如:隐藏E盘之后,E盘后面的标志会由“未隐藏”变成“已隐藏”,这时你再选择E盘对应的数字就可以恢复了,注意不要选错数字,呵呵。

TOP

看看,但是从来不玩这种危险动作1~

TOP

回复 9楼 的帖子

按照注意事项操作还是很安全的,我反复测试过的。

TOP

厉害厉害,下载一个慢慢学习了

TOP

好东西,可以玩玩!顶了!

TOP

还是先收下,以备后用了

TOP

为何在SP3下无效,例如隐藏虚拟盘A?

TOP

14# loj 虚拟光驱是可以的,至于其它的比如虚拟磁盘我没试过。

TOP

新手果断收藏

TOP

返回列表