Programa de ocultar carpeta

Iniciado por Albegam, 4 Abril 2017, 00:36 AM

0 Miembros y 2 Visitantes están viendo este tema.

Albegam

Hola, muy buenas. Bueno este es mi primer post en este foro y me gustaría comentaros mi idea. Antes de todo deciros que yo he entrado en este mundo por casualidad se podría decir. Estudio un modulo superior de robotica y tenemos una asignatura de rebotica industrial en la que aprendimos lo básico de crear códigos con c++. El tema me encanto y poco a poco voy aprendiendo y adentrándome mas en este mundo. Hace poco descubrí el código bash y buscando por Internet encontré un programa que ocultaba una carpeta y demás.
Lo mejore un poco a mi gusto con mis conocimientos básicos pero tengo varias ideas que no se si son posibles. Y si son posibles no se como aplicarlas y por eso os pido ayuda.

El código es el siguiente: ( esta escrito en un bloc de notas y guardado en .bat para poder ejecutarlo con cmd [ Que me mola un montón ]).

Código (dos) [Seleccionar]

cls
@ECHO OFF
title Folder HackFolder
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST HackFolder goto MDLOCKER
:CONFIRM
Color 0A
echo You want to hide the HackFolder? (Y/N)
echo.
set/p "cho="
if %cho%==y goto LOCK
if %cho%==Y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren HackFolder "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
Color 0A
echo.
echo Enter the password to display the HackFolder
echo.
set/p "pass="
if NOT %pass%== 55555 goto AIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" HackFolder
echo.
echo Folder Unlocked successfully
pause
goto End
:AIL
echo Invalid password
pause
cls
goto UNLOCK
:MDLOCKER
md HackFolder
echo HackFolder created successfully
goto End
:End



Por mi parte añadí unos pause por comodidad y un retorno al inicio del programa cuando nos equivocamos de contraseña a diferencia de como estaba antes que se cerraba completamente. ( Si lo se es muy básico para muchos de los que estáis aquí pero bueno a mi me hace ilusión poder toquetear estos códigos y entender mas o menos lo que hago).

Ahora llega mi idea / duda.

1- Me gustaría que la contraseña no se viera y apareciera con asteriscos. He estado buscando pero no me aclaro mucho.

2- Esta idea me la comento mi padre. Al decirle que algunos compañeros de clase les pareció curioso el programa y me pidieron que se lo pasara, el me dijo que estaría bien poder insertar una contraseña tu. es decir que desde cmd te pida la contraseña que desearas utilizar y que se guarde para siempre. Y lo mismo con el nombre de la carpeta aunque eso tiene mucha menos importancia.

Muchas gracias de antemano a la gente que me ayude.

Randomize

¿Y qué hace ésto en Windows?


:huh: :huh: :huh:

Albegam

#2
Ups, perdon. Se me colo lo borro y lo  pongo en el foro correcto

Randomize

Cita de: Albegam en  4 Abril 2017, 08:56 AM
Ups, perdon. Se me colo lo borro y lo  pongo en el foro correcto

Espera hombre, algún moderador global habrá suelto...

Eleкtro

#4
Cita de: Albegam en  4 Abril 2017, 00:36 AM
descubrí el código bash

El código es el siguiente:

Hola.

Primero de todo: Eso no es Bash (Linux), es Batch (Windows).

Cita de: Albegam en  4 Abril 2017, 00:36 AMMe gustaría que la contraseña no se viera y apareciera con asteriscos.

Sinceramente, si estás aprendiendo C++, ponerse ahora con Batch es retroceder todo lo que has aprendido, llamemoslo una involución... una severa involución.

Batch de por si solo es un "lenguaje" de programación MUY limitado el cual ha sido desarrollado para automatizar tareas básicas del sistema. Batch no provee ningún mecanismo de forma "nativa" para enmascarar una contraseña. Existen soluciones bastante tediosas, rebuscadas y engorrosas, de decenas o cientos de lineas ...puramente en Batch, que están bastante bien si la intención es que una persona quiera perder el tiempo en algo así para absolutamente nada que sea de provecho en el aprendizaje de la programación.

Por suerte Microsoft Windows provee soporte de forma nativa para otros lenguajes de programación mucho más sofisticados que Batch, como es el caso de PowerShell, el cual podemos utilizar desde Batch si así lo deseamos para compensar las limitaciones por naturaleza de dicho "lenguaje":

Código (dos) [Seleccionar]
@Echo Off

Set "tmpFile=%TEMP%\password.txt"
PowerShell.exe -Command $pword = read-host "Enter password" -AsSecureString ; ^
   $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; ^
       [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR) > "%tmpFile%"
(Set /P password=<"%tmpFile%") & (Del /Q "%tmpFile%")
echo %password%

Pause & Exit /B 0


¡Saludos!