Recuperar contraseña de protección de hoja en Excel

14

Tengo un libro de Excel.

Dos años antes configuré la opción de protección con contraseña para una de las hojas. Ahora he olvidado la contraseña. ¿Hay alguna forma de recuperar la contraseña de esa hoja de Excel?

slhck
fuente

Respuestas:

17

No puede recuperar LA contraseña, pero puede desproteger la hoja (el hash utilizado para proteger la hoja es bastante propenso a colisiones en las versiones antiguas de Excel, por lo que generar una colisión es bastante rápido aquí).

Hay guiones disponibles que harán que la fuerza bruta abra su hoja en muy poco tiempo.

Eche un vistazo aquí, por ejemplo: http://www.theofficeexperts.com/VBASamples/Excel02.htm

Aquí está el código:

Sub PasswordBreaker()
  'Author unknown but submitted by brettdj of www.experts-exchange.com

  Dim i As Integer, j As Integer, k As Integer
  Dim l As Integer, m As Integer, n As Integer
  Dim i1 As Integer, i2 As Integer, i3 As Integer
  Dim i4 As Integer, i5 As Integer, i6 As Integer
  On Error Resume Next
  For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
  For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
  For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
  For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126


 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
      Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  If ActiveSheet.ProtectContents = False Then
      MsgBox "One usable password is " & Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
   ActiveWorkbook.Sheets(1).Select
   Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
       Exit Sub
  End If
  Next: Next: Next: Next: Next: Next
  Next: Next: Next: Next: Next: Next


End Sub
Johan - reinstala a Monica
fuente
+1 posible solución. Al revés, programe una aplicación con Apache POI y Digester. Obtenga el archivo y cópielo sin tocar la contraseña. (Sí, de alguna manera es posible)
user8885
2
+1 Funciona de maravilla y consigue una colisión en menos de 10 segundos.
Johan: restablece a Mónica el
Guau. Es increíble que las colisiones sean (¿casi?) Seguras con menos de 194.560 intentos. He tenido el mío en la iteración número 3000. ¡Eso es aproximadamente 17 bits de entropía total!
jonallard
¿Alguna forma no vba? Estoy en OSX y todo el archivo está protegido.
Jonny
Estoy bastante seguro de que esto no funcionará en archivos de Excel protegidos con Excel 2013 y posteriores, debido a los mayores niveles de cifrado.
Ƭᴇcʜιᴇ007 01 de