Evitar el hackeo de contraseña en hojas de excel
Hola, tengo una hoja protegida con contraseña pero he podido comprobar que puede ser hackeada por cualuiera que tenga la macro que les describo a continuación, ¿qué puedo hacer para no ser hackeado de información?
1.- Crea un fichero nuevo de Excel (ej: Libro1.xls).
2.- Pulsa Alt y F11, para entrar en el proyecto VBA (Visual Basic para Aplicaciones).
3.- En el menu de opciones, selecciona "Insertar". Selecciona a continuación "Modulo".
4.- En la parte izquierda, donde se observa el Proyecto, se habrá creado una carpeta llamada "Modulos", y dentro de ella, figurara "Modulo1".
5.- Nos situaremos en la ventana de la derecha al cliquear sobre de ese "Modulo1", y copiaremos este código:
Sub Descubrir_contraseña()
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
Dim a1 As Integer, a2 As Integer, a3 As Integer
Dim a4 As Integer, a5 As Integer, a6 As Integer
On Error Resume Next
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For a1 = 65 To 66
For a2 = 65 To 66: For a3 = 65 To 66: For a4 = 65 To 66
For a5 = 65 To 66: For a6 = 65 To 66: For f = 32 To 126
Contraseña = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(a1) _
& Chr(a2) & Chr(a3) & Chr(a4) & Chr(a5) & Chr(a6) & Chr(f)
ActiveSheet.Unprotect Contraseña
If ActiveSheet.ProtectContents = False Then
MsgBox "¡Enorabuena!" & vbCr & "La contraseña es:" & vbCr & Contraseña
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
6.- A continuación, una vez hayamos pegado ese código, seleccionaremos en el menú de opciones, "Archivo", y a continuación "Exportar archivo". Le pondremos de nombre Descubrir_contraseña.vas (por ejemplo, aunque puede ser ota, ya que no tiene porque tener el mismo nombre que el procedimiento cuyo código aparece en el punto 5 anterior), y lo guardaremos por ejemplo, en "Mis documentos".
7.- Ahora imaginemos que tenemos una hoja de calculo protegida, y que queremos descubrir su contraseña . Para poder saber cual es su contraseña, tendremos que acceder al proyecto (Alt+F11), e importar el modulo (. Vas) anterior. Para ello, desde el menu de opciones, seleccionamos "Archivo", y a continuación "Importar archivo". Buscamos la ruta donde habíamos guardado el fichero del punto 6 anterior, y lo seleccionamos. Salimos ahora del proyecyo VBA, para volver a la hoja de calculo protegida.
8.- Con la hoja de calculo cuya contraseña deseamos descubrir, en primer plano (activa), seleccionamos desde Excel (no desde VBA, aunque también se puede hacer, pero lo haremos de la forma más gráfica y sencilla posible), en el menu de opciones "Herramientas". A continuación, seleccionamos "Macro" y luego "Macros..." (si queréis ahorraros eso, pulsad Alt+F8). En la lista de macros, seleccionamos el que se llama "Descubrir_contraseña", y pulsamos el botón "Ejecutar".
9.- En ese momento, comienza el procedimiento para obtener la contraseña de la hoja. El proceso puede tardar desde unos cuantos segundos, hasta algo más de un minuto (o incluso varios minutos). No os preocupéis, que el sistema no ha entrado en un bucle infinito, tan solo hay que tener un poco de paciencia.
1.- Crea un fichero nuevo de Excel (ej: Libro1.xls).
2.- Pulsa Alt y F11, para entrar en el proyecto VBA (Visual Basic para Aplicaciones).
3.- En el menu de opciones, selecciona "Insertar". Selecciona a continuación "Modulo".
4.- En la parte izquierda, donde se observa el Proyecto, se habrá creado una carpeta llamada "Modulos", y dentro de ella, figurara "Modulo1".
5.- Nos situaremos en la ventana de la derecha al cliquear sobre de ese "Modulo1", y copiaremos este código:
Sub Descubrir_contraseña()
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
Dim a1 As Integer, a2 As Integer, a3 As Integer
Dim a4 As Integer, a5 As Integer, a6 As Integer
On Error Resume Next
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For a1 = 65 To 66
For a2 = 65 To 66: For a3 = 65 To 66: For a4 = 65 To 66
For a5 = 65 To 66: For a6 = 65 To 66: For f = 32 To 126
Contraseña = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(a1) _
& Chr(a2) & Chr(a3) & Chr(a4) & Chr(a5) & Chr(a6) & Chr(f)
ActiveSheet.Unprotect Contraseña
If ActiveSheet.ProtectContents = False Then
MsgBox "¡Enorabuena!" & vbCr & "La contraseña es:" & vbCr & Contraseña
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
6.- A continuación, una vez hayamos pegado ese código, seleccionaremos en el menú de opciones, "Archivo", y a continuación "Exportar archivo". Le pondremos de nombre Descubrir_contraseña.vas (por ejemplo, aunque puede ser ota, ya que no tiene porque tener el mismo nombre que el procedimiento cuyo código aparece en el punto 5 anterior), y lo guardaremos por ejemplo, en "Mis documentos".
7.- Ahora imaginemos que tenemos una hoja de calculo protegida, y que queremos descubrir su contraseña . Para poder saber cual es su contraseña, tendremos que acceder al proyecto (Alt+F11), e importar el modulo (. Vas) anterior. Para ello, desde el menu de opciones, seleccionamos "Archivo", y a continuación "Importar archivo". Buscamos la ruta donde habíamos guardado el fichero del punto 6 anterior, y lo seleccionamos. Salimos ahora del proyecyo VBA, para volver a la hoja de calculo protegida.
8.- Con la hoja de calculo cuya contraseña deseamos descubrir, en primer plano (activa), seleccionamos desde Excel (no desde VBA, aunque también se puede hacer, pero lo haremos de la forma más gráfica y sencilla posible), en el menu de opciones "Herramientas". A continuación, seleccionamos "Macro" y luego "Macros..." (si queréis ahorraros eso, pulsad Alt+F8). En la lista de macros, seleccionamos el que se llama "Descubrir_contraseña", y pulsamos el botón "Ejecutar".
9.- En ese momento, comienza el procedimiento para obtener la contraseña de la hoja. El proceso puede tardar desde unos cuantos segundos, hasta algo más de un minuto (o incluso varios minutos). No os preocupéis, que el sistema no ha entrado en un bucle infinito, tan solo hay que tener un poco de paciencia.
1 Respuesta
Respuesta de Abraham Valencia
1