Warning: file_put_contents() [function.file-put-contents]: Only 0 of 48 bytes written, possibly out of free disk space in /var/www/vhosts/crearblog.com/httpdocs/website/includes/contadorDvisitas.php on line 30
Cómo encriptar un archivo de comandos MS-DOS (cmd, bat) @ Redes y Sistemas en Español

Cómo encriptar un archivo de comandos MS-DOS (cmd, bat)

A veces nos sucede que necesitamos ejecutar un archivo de comandos (.bat o .cmd) y tenemos información en este como nombres de usuarios y contraseñas que no queremos que sean vistas por los usuarios. La solución sería encriptar estos ficheros.

En mi caso yo utilizo dos scripts hechas en Visual Basic Script, encript.vbs y decriptexec.vbs

Supongamos que tenemos un fichero prueba.bat el cual tiene las siguientes instrucciones:

@echo off
NET USE K:
\\PCRemota\Recurso contraseña /user:superuser /savecred

donde está escrita la contraseña y el nombre de un usuario el cual queremos ocultar.

 '******encript.vbs***********************
strFile  = "E:\SCRIPTS\prueba.bat"
strencFile  = "E:\SCRIPTS\prueba.enc"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile,1)
Set encobjFile = objFSO.OpenTextFile(strencFile,8,true)
While (objFile.AtEndOfStream = false)
 encobjFile.WriteLine enc(objFile.ReadLine())
 
Wend 
 
Function enc(cad)
 For lim = 1 To Len(cad)
 enc = enc & Chr(Asc(Mid(cad, lim, 1)) + 2)
 Next
End Function

Aqui se almacena en dos variables los caminos del fichero original y del que resulte encriptado, el fichero se lee línea a línea y a cada línea se le aplica la función enc(cadena).Esta función altera la línea aumentando en dos unidades el valor ASCII, caracter a caracter. La línea se copia en el fichero de salida, que resulta ser completamente diferente al original.

 El fichero ya encriptado se ejecuta con la segunda script,

'********decriptexec.vbs****************
strFile  = "C:\prueba.bat"
strencFile  = "E:\SCRIPTS\prueba.enc"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFile,8,true)
Set encobjFile = objFSO.OpenTextFile(strencFile,1)
While (encobjFile.AtEndOfStream = false)
 objFile.WriteLine dec(encobjFile.ReadLine())
Wend 
set objFile = Nothing
Set encobjFile = Nothing
execExternalApps strFile
objFSO.DeleteFile(strFile)
Sub execExternalApps(shellcmd) 
      Dim WshShell, ReturnCode
      Set WshShell = WScript.CreateObject("WScript.Shell")
      ReturnCode = WshShell.Run(shellcmd,1,True)
End Sub
Function dec (cad)
For lim = 1 To Len(cad)
dec = dec & Chr(Asc(Mid(cad, lim, 1)) - 2)
Next
End Function

En esta segunda, se hace el proceso inverso en la función dec(cadena). El procedimiento execExternalApps ejecuta el fichero previamente desencriptado. Por último, este se elimina.

Saludos y espero les sea útil..!!!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Los comentarios y los pings están cerrados.

Los comentarios están cerrados.