Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Pox1 en 9 Febrero 2012, 23:33 pm



Título: Encontrar pass de sólo lectura a una hojal excel 2007
Publicado por: Pox1 en 9 Febrero 2012, 23:33 pm
Hola, mi consulta es la siguiente, Tengo una hoja  excel con macros, de las cuales, esta protegido con contraseña, el archivo es de sólo lectura, asi que no se puede hacer modificaciones, me gustaria saber si se puede encontrar la contraseña usando visual basic 6.0; he conseguido eliminar la contraseña pero sólo necesito saber cual es el pass  >:D, encontré el code de la macros pero en excel 2003, y un code en planet source que no me funka todavia pero lo estoy viendo igual tambien hay una fuente en aspnet...

Tambien podria crearlo >:D
Código
  1.  Dim objExcel As Excel.Application    
  2.    Dim objExcelWorkBook As Excel.Workbook
  3.  
  4.    Set objExcel = New Excel.Application
  5.  
  6.  
  7.    Set objExcelWorkBook = objExcel.Workbooks.Open _
  8.        (FileName:="c:\archivo.xls", _
  9.        ReadOnly:=False, _
  10.        Password:="contraseña")
  11.  
  12.        objExcel.Visible = True
  13.  
o la guía de recursos pero no me funka

Código
  1. Option Explicit
  2.  
  3. Private Type TMacros
  4.    NombreMacro As String
  5.    CodigoFuente As String
  6. End Type
  7.  
  8. Dim Macros() As TMacros
  9.  
  10. Sub BuscarMacros(Libro As Workbook)
  11. Dim c As Long, n As Long
  12. Dim i As Long, lineas As Long
  13. Dim TempCodigo As String
  14. With Libro.VBProject.VBComponents
  15.  
  16.    ' elimina el arreglo
  17.    Erase Macros
  18.  
  19.    ' recorre los objetos del libro ( los módulos, las hojas, los libros)
  20.    For i = 1 To .Count
  21.  
  22.    With .Item(i)
  23.        With .CodeModule
  24.            c = .CountOfLines ' cantidad de lineas
  25.            If c <> 0 Then
  26.                ' obtiene las lineas y las almacena en TempCodigo
  27.                For lineas = 1 To c
  28.                    TempCodigo = TempCodigo & .Lines(lineas, 1) & vbCrLf
  29.                Next
  30.                n = n + 1
  31.                ' redimensionamos
  32.                ReDim Preserve Macros(1 To n)
  33.                ' agregamos el nombre al array
  34.                Macros(n).NombreMacro = .Name
  35.                List1.AddItem .Name ' A&#241;ade al listbox
  36.                ' Agrega el c&#243;digo
  37.                Macros(n).CodigoFuente = TempCodigo
  38.                TempCodigo = ""
  39.            End If
  40.        End With
  41.    End With
  42.    Next
  43. End With
  44.  
  45.  
  46. End Sub
  47.  
  48.  
  49. Private Sub Command1_Click()
  50.    Dim ObjExcel As Object
  51.  
  52.    Set ObjExcel = New Excel.Application
  53.    ' abrimos
  54.    ObjExcel.Workbooks.Open "c:\libro1.xls"
  55.  
  56.    ' Pasamos el libro como par&#225;metro
  57.    Call BuscarMacros(ObjExcel.ActiveWorkbook)
  58.    ' cierra el Excel
  59.    ObjExcel.quit
  60.    Set ObjExcel = Nothing
  61. End Sub
  62.  
  63. Private Sub Form_Load()
  64.    Command1.Caption = "Obtener"
  65. End Sub
  66.  
  67. Private Sub List1_Click()
  68.    If List1.ListIndex <> -1 Then
  69.       ' carga  el fuente en el text1
  70.       Text1 = Macros(List1.ListIndex + 1).CodigoFuente
  71.    End If
  72. End Sub
  73.  
  74.  
  75. 'Toy lejos
  76.  
Si alguien tiene un ejemplo  o algún enlace que lo quiera compartir, estaré muy agradecido, estoy usando excel 2007 y  quiero encontrar la pass con vb, no usar programas externos compilados, lo hago para ver como va el source en vb gracias.

Saludos.


Título: Re: Encontrar pass de sólo lectura a una hojal excel 2007
Publicado por: MCKSys Argentina en 9 Febrero 2012, 23:53 pm
Con Passware Password Recovery Kit lo sacas en 2 patadas. (Es pago, asi que debes buscar uno 'gratis'  ;D)

Saludos!


Título: Re: Encontrar pass de sólo lectura a una hojal excel 2007
Publicado por: BlackZeroX en 10 Febrero 2012, 08:42 am
En la pagina de mygnet esta el código para obtener la contraseña de un documento de excel y de word protegidos por contraseña.

Dulces Lunas!¡.


Título: Re: Encontrar pass de sólo lectura a una hojal excel 2007
Publicado por: Kerber0 en 12 Febrero 2012, 18:42 pm
Para sacar la passwd de la hoja (te tira una del estilo AAABCK" pero sirve)

Código:
Sub breakit()

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n 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 "Un password valido es " & 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