El sistema NTFS tiene una funcionalidad poco documentada y poco conocida llamada hilos o threads.
Básicamente, cada archivo puede tener tantos hilos como se deseen (alguna limitación habrá), y cada hilo es realmente un archivo distinto.
Así en un archivo “nada.txt” que parece ocupar 7 bytes, podemos tener escondidos “nada.txt:el_quijote.txt”, “nada.txt:notepad.exe”, “nada.txt:cualquier_cosa”.
Ver para creer, así que vamos con un ejemplo, desde cmd:
C:\temp> echo nada > nada.txt C:\temp> echo algo > nada.txt:algo.txt C:\temp> type notepad.exe > nada.txt:notepad.exe C:\temp> type nada.txt C:\temp> more < nada.txt:algo.txt C:\temp> start ./nada.txt:notepad.exe
Aprovechando esta funcionalidad (o este agujero de seguridad) con un poco de código ofuscado, puedes esconder una clave en un bat, así:
secreto.bat
@ECHO OFF REM No se de quien es este codigo, me lo encontre FOR /F %%p IN (%~f0:1) DO (ECHO. &ECHO %%p &&ECHO.)
C:\temp> echo mi_clave > secreto.bat:1 C:\temp> secreto.bat
No es muy recomendable tener claves en el equipo, pero si queremos hacer un bat que lance un FTP y necesita una clave, siempre es mejor así que ponerla en claro en ftp.bat.