Ocultar una unidad en batch, y pedir password para mostrarla

Iniciado por -/lnkx/-, 1 Julio 2008, 11:46 AM

0 Miembros y 1 Visitante están viendo este tema.

-/lnkx/-

Hola... ;D
Miratengo un par de dudas...
Yo quiero hacer que cuando abra un .bat que esta en una unidad de USB con un autorun oculte la Unidad la unidad que el es ej: K:\ y  me pida un usuario y contraseña (en el mismo bat) y cundo introduzca los datos me desoculte la unidad del USB  y si no no .

aqui las dudas:
- com puedo hacer par cifrar la contraseña i que el bat la desencripte para verificar si es correcta ?¿ ( o si no yo havia pensado hacer que leyera a partir de un determinado carcter en el bat...)y tmabien como lo hago para que cundo escriva la contraseña me ponga asteriscos si yo escribo 1234 qeu no salga 1234 que salga ******

-Para ocultar una unidad :
fuente :http://foro.elhacker.net/scripting/batch_y_registro_de_windows_juguemos-t213689.0.html

En el foro encontre un post que hablava de el registro y salia esto como ocultar una unidad mediante el registro :

Ocultar Unidad A:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000001

Ocultar Unidad B:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000002

Ocultar unidad C:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000004

Ocultar unidad D:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000008

Ocultar unidad E:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000010

OCULTAR TODAS LAS UNIDADES:

Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 03ffffff

y pues lo que yo queria hacer es que el usb detectara que unidad es el.. ej si es la k:
pos que poniera

set Uni=(Comando para identificar que unidad es)
Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d %Uni%

pero claro como hago para que el bat identifique si la unidad es la E: ponga 00000010
i el 00000010 lo paonga en %Uni%

Pos espero vuesta ayuda muchas gracias de antemano...
qundo lo termine lo publicare en el foro.... :laugh:

carlitos.dll

#1
primero deberías saber cómo se calcula el valor de ese registro, obligado a leer en el sitio oficial.
Porque si te fijas bien, nos es que si quiero ocultar A, añado un registro con un número y si quiero ocultar D añado otro registro con otro número.

Es un sólo registro, con un número con significado, que agrupa las letras que deseas ocultar.

Lo otro, en cuenta limitada, no podrás tocar el registro.
http://support.microsoft.com/kb/555438/en-us

Al parecer es una suma. Pero suponiendo que sólo quieres ocultar una unidad (el pendrive) para identificar la unidad de tu pendrive, tienes varias opciones, una podría ser la más fácil, tener el bat en el pendrive, y luego llamas así: %~d0 que te devuelve la letra dónde está el archivo, después añades al registro el número según la tabla del sitio oficial.

Primero creas el autorun que ejecute tu bat, en wikipedia sale como hacer autorun.
y luego el bat

una idea:

@echo off
set drv=%~d0
set drv=%drv:~0,1%
call :letra
reg.exe add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t REG_BINARY /f /d %val% >NUL
cls
explorer %drv%:
reg.exe delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /f >NUL

goto :eof
:letra
if %drv%==A (set val=01000000 & goto :eof)
if %drv%==B (set val=02000000 & goto :eof)
if %drv%==C (set val=04000000 & goto :eof)
if %drv%==D (set val=08000000 & goto :eof)
if %drv%==E (set val=10000000 & goto :eof)
if %drv%==F (set val=20000000 & goto :eof)
if %drv%==G (set val=40000000 & goto :eof)
if %drv%==H (set val=80000000 & goto :eof)
if %drv%==I (set val=00010000 & goto :eof)
if %drv%==J (set val=00020000 & goto :eof)
if %drv%==K (set val=00040000 & goto :eof)
if %drv%==L (set val=00080000 & goto :eof)
if %drv%==M (set val=00100000 & goto :eof)
if %drv%==N (set val=00200000 & goto :eof)
if %drv%==O (set val=00400000 & goto :eof)
if %drv%==P (set val=00800000 & goto :eof)
if %drv%==Q (set val=00000100 & goto :eof)
if %drv%==R (set val=00000200 & goto :eof)
if %drv%==S (set val=00000400 & goto :eof)
if %drv%==T (set val=00000800 & goto :eof)
if %drv%==U (set val=00001000 & goto :eof)
if %drv%==V (set val=00002000 & goto :eof)
if %drv%==W (set val=00004000 & goto :eof)
if %drv%==X (set val=00008000 & goto :eof)
if %drv%==Y (set val=00000001 & goto :eof)
if %drv%==Z (set val=00000002 & goto :eof)
goto :eof



Listo, ahora puedes igualmente entrar a la unidad pero, no aparece en Mi PC, cuando cierras la ventana, se elimina el valor del registro, para dejarlo como estaba, suponiendo que no usaban ese valor anteriormente.

Existe otro valor llamado NoViewOnDrive que te permite bloquear la letra si la escribes desde el explorador, aunque utiliza otros valores, y al parecer requiere reiniciar, pero de todas formas desde el dos lees todo.

Crazy.sx

#2
Bueno amigo, si quieres ocultar la unidad K desde el registro de Windows es fácil, en ese post de "Juguemos con el registro de Windows" solo puse las unidades más comunes.  ;D

Bueno, este es el código que ocultará la unidad K:\


Reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /t reg_dword /d 00000410

Saludos
Destruir K. LOL

sirdarckcat