Board logo

标题: [其他] 批处理磁盘隐藏与恢复工具 [打印本页]

作者: wankoilz    时间: 2010-8-3 23:24     标题: 批处理磁盘隐藏与恢复工具

功能:隐藏和恢复    磁盘,光盘,移动磁盘。
          有密码保护。
说明:基于mountvol,对批处理有点了解的都可以解开。
          我只是把它完善成一个傻瓜版的工具,因为有密码设置,转成exe后可供一般用户使用。(附件已传exe版)
          如发现bug请跟帖提出,谢谢。
  1. @echo off&setlocal enabledelayedexpansion
  2. title Code By wankoilz 2010/4/17 @Win7 Q375913828
  3. mode con cols=60 lines=20
  4. set type2=移动磁盘
  5. set type3=本地磁盘
  6. set type5=光盘驱动
  7. set logo=:::::::::::::::::::欢迎来到批处理的世界:::::::::::::::::::
  8. :::::::::::::::::密码:::::::::::::::::::::::::::::::::::::::::::::::
  9. set "cmd=echo.&set/p=........<nul"
  10. :pass
  11. cls
  12. echo;
  13. echo;
  14. for /l %%i in (0,1,48) do (set/p=!logo:~%%i,1!<nul&for /l %%i in (1,1,25) do echo.>nul)
  15. echo;
  16. echo;
  17. echo        ╔-------------------------------------------╗
  18. echo        ┆    密码设置:                             ┆
  19. echo        ┆    初始密码 xl,输入ccc可以进行密码修改   ┆
  20. echo        ╚-------------------------------------------╝
  21. reg query hkcu\pass >nul 2>nul||reg add hkcu\pass /v pass /t reg_sz /d "xl" /f >nul
  22. for /f "skip=2 tokens=3" %%i in ('reg query hkcu\pass') do set "originalpass=%%i"
  23. %cmd%&set/p pass=输入密码:
  24. if /i "!pass!"=="ccc" (
  25.     %cmd%&set/p pass=输入旧密码:
  26.     if "!pass!"=="!originalpass!" (
  27.          %cmd%&set/p newpass=正确,输入新密码:
  28.          reg add hkcu\pass /v pass /t reg_sz /d "!newpass!" /f >nul&%cmd%&set/p=密码修改成功,<nul&pause
  29.     ) else (%cmd%&set/p=密码错误!&goto :pass)
  30. ) else (if not "!pass!"=="!originalpass!" (echo ........密码不对...&pause&goto :pass) )
  31. ::::::::::::::::::获取当前存在的逻辑盘:::::::::::::::::::::::::::::::
  32. :begin
  33. set n=0&set c=0
  34. for /f "skip=1 tokens=1,2" %%i in ('wmic logicaldisk get name^,drivetype') do (
  35.     if not "%%j"=="" (set/a n+=1&set disk!n!=%%j&set %%j=%%i
  36.     )
  37. )
  38. :::::::::::::::::::更新列表:::::::::::::::::::::::::::::::::::::::::::
  39. reg query hkcu\volume >nul 2>nul&&call :addtable||call :gettable
  40. ::::::::::::::::::::交互界面::::::::::::::::::::::::::::::::::::::::::
  41. for /f "skip=2 tokens=1" %%i in ('reg query hkcu\volume') do set/a c+=1
  42. set/a line=%c%+15
  43. mode con cols=60 lines=%line%
  44. :list
  45. cls&set x=0
  46. echo;
  47. echo       ╔-------------------------------------------╗
  48. echo       ┆ 热情欢迎您加入批处理之家: bbs.bathome.cn ┆
  49. echo       ┆ 注意:①隐藏系统盘会致系统崩溃,重启可恢复 ┆
  50. echo       ┆      ②隐藏脚本所在盘会导致脚本被强行关闭 ┆
  51. echo       ┆      ③r--刷新列表(有时候移动磁盘已经拔除 ┆
  52. echo       ┆        但列表上仍有显示,r可以将其从列表中 ┆
  53. echo       ┆        删除),同时还将恢复所有已隐藏磁盘   ┆
  54. echo       ╚-------------------------------------------╝
  55. echo       ╔-------------------------------------------╗
  56. for /f "skip=2 tokens=1,3,4,5" %%i in ('reg query hkcu\volume') do (
  57.     set/a x+=1&set _disk!x!=%%i&set _type!x!=%%j&set _flag!x!=%%k&set _vol!x!=%%l
  58.     set x= !x!&echo       ┆      !x:~-2!........%%i   %%j%%k      ┆
  59. )
  60. echo       ╚-------------------------------------------╝
  61. echo;
  62. set/p=......<nul&set selectnum=&set/p selectnum=选择要隐藏(或显示)的磁盘对应数字(q退出,r刷新):
  63. :::::::::::::::::::::::::::::判断输入是否合法:::::::::::::::::::::::::::::::
  64. if /i "%selectnum%"=="q" exit
  65. if /i "%selectnum%"=="r" goto :refreshtable
  66. set flag=&for /l %%i in (1,1,%x%) do if "%selectnum%"=="%%i" set flag=ok
  67. if not defined flag (echo 非法输入!&pause&goto :list)
  68. ::::::::::::::::::::::::::::::核心代码(装载或卸载卷标)::::::::::::::::::::
  69. if "!_flag%selectnum%!"=="(未隐藏)" (
  70.     call :show-or-hide !_disk%selectnum%! !_type%selectnum%! ^(已隐藏^) !_vol%selectnum%! "mountvol !_disk%selectnum%! /d"
  71. ) else (
  72.     call :show-or-hide !_disk%selectnum%! !_type%selectnum%! ^(未隐藏^) !_vol%selectnum%! "mountvol !_disk%selectnum%! !_vol%selectnum%!"
  73. )
  74. goto :list
  75. rem 首次运行添加磁盘列表到注册表
  76. :gettable
  77. for /l %%i in (1,1,%n%) do (
  78.    for /f "delims=" %%j in ('mountvol !disk%%i! /l') do (
  79.       call call reg add hkcu\volume /v !disk%%i! /t reg_sz /d "%%%%type%%!disk%%i!%%%%%% (未隐藏) %%j\" /f >nul
  80. ))
  81. goto :eof
  82. rem 启动(刷新)时如果有新盘符出现就添加到列表
  83. :addtable
  84. for /f "skip=2 tokens=1" %%i in ('reg query hkcu\volume') do set _%%i=ok
  85. for /l %%i in (1,1,%n%) do (
  86.    if not defined _!disk%%i! (
  87.       for /f "delims=" %%j in ('mountvol !disk%%i! /l') do (
  88.          call call reg add hkcu\volume /v !disk%%i! /t reg_sz /d "%%%%type%%!disk%%i!%%%%%% (未隐藏) %%j\" /f >nul
  89. )))
  90. goto :eof
  91. rem 显示(隐藏)磁盘
  92. :show-or-hide diskname disktype flag vol command
  93. %~5
  94. reg delete hkcu\volume /v %1 /f >nul
  95. reg add hkcu\volume /v %1 /t reg_sz /d "%2 %3 %4\" /f >nul
  96. goto :eof
  97. rem 刷新列表--删除不存在的盘符,以及装载所有卷标以显示所有盘符
  98. :refreshtable
  99. echo .......刷新列表中...
  100. setlocal
  101. :loop
  102. set a=0
  103. for /f %%i in ('mountvol') do (
  104. set "str=%%i"
  105. if "!str:~0,3!"=="\\?" set flag2=ok
  106. if defined flag2 (
  107.    set/a a+=1,b=a%%2
  108.    if !b! equ 1 set "vol=%%i"
  109.    if !b! equ 0 (
  110.        set "%%i=ok"
  111.        if "%%i"=="***" (
  112.            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 (
  113.               if not defined %%j:\ (mountvol %%j: !vol! >nul&goto :loop)
  114. )))))
  115. reg delete hkcu\volume /f >nul 2>nul&endlocal&goto :begin
  116. :eof
复制代码
链接: https://pan.baidu.com/s/1hi18zMeZ9bw6-LoNjHxUjg 提取码: s85y
作者: hfg1977    时间: 2010-8-4 11:15

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

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

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

[ 本帖最后由 wankoilz 于 2010-8-4 12:42 编辑 ]
作者: 523066680    时间: 2010-8-4 12:35

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

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

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

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

[ 本帖最后由 523066680 于 2010-8-4 12:38 编辑 ]
作者: hfg1977    时间: 2010-8-4 13:38

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

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

当然如果某区有很多AV不想让老婆看到还是有用的。。。
作者: wankoilz    时间: 2010-8-4 13:49

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

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

是啊,如果用MHDD的话也不能起到隐藏作用......汗!
作者: wankoilz    时间: 2010-8-27 08:48

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

看看,但是从来不玩这种危险动作1~
作者: wankoilz    时间: 2010-8-27 20:15     标题: 回复 9楼 的帖子

按照注意事项操作还是很安全的,我反复测试过的。
作者: shaokui123    时间: 2011-2-13 16:01

厉害厉害,下载一个慢慢学习了
作者: imice    时间: 2011-3-12 10:08

好东西,可以玩玩!顶了!
作者: liaobin    时间: 2011-3-31 21:54

还是先收下,以备后用了
作者: loj    时间: 2011-4-4 20:21

为何在SP3下无效,例如隐藏虚拟盘A?
作者: wankoilz    时间: 2011-4-5 13:03

14# loj 虚拟光驱是可以的,至于其它的比如虚拟磁盘我没试过。
作者: czl19951104    时间: 2011-6-19 06:34

新手果断收藏




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2