Encontrar pass de sólo lectura a una hojal excel 2007

Iniciado por Pox1, 9 Febrero 2012, 23:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Pox1

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 (vb) [Seleccionar]

  Dim objExcel As Excel.Application   
    Dim objExcelWorkBook As Excel.Workbook

    Set objExcel = New Excel.Application

   
    Set objExcelWorkBook = objExcel.Workbooks.Open _
        (FileName:="c:\archivo.xls", _
        ReadOnly:=False, _
        Password:="contraseña")

        objExcel.Visible = True

o la guía de recursos pero no me funka

Código (vb) [Seleccionar]

Option Explicit

Private Type TMacros
    NombreMacro As String
    CodigoFuente As String
End Type

Dim Macros() As TMacros

Sub BuscarMacros(Libro As Workbook)
Dim c As Long, n As Long
Dim i As Long, lineas As Long
Dim TempCodigo As String
With Libro.VBProject.VBComponents
   
    ' elimina el arreglo
    Erase Macros
   
    ' recorre los objetos del libro ( los módulos, las hojas, los libros)
    For i = 1 To .Count
   
    With .Item(i)
        With .CodeModule
            c = .CountOfLines ' cantidad de lineas
            If c <> 0 Then
                ' obtiene las lineas y las almacena en TempCodigo
                For lineas = 1 To c
                    TempCodigo = TempCodigo & .Lines(lineas, 1) & vbCrLf
                Next
                n = n + 1
                ' redimensionamos
                ReDim Preserve Macros(1 To n)
                ' agregamos el nombre al array
                Macros(n).NombreMacro = .Name
                List1.AddItem .Name ' Añade al listbox
                ' Agrega el código
                Macros(n).CodigoFuente = TempCodigo
                TempCodigo = ""
            End If
        End With
    End With
    Next
End With


End Sub


Private Sub Command1_Click()
    Dim ObjExcel As Object
   
    Set ObjExcel = New Excel.Application
    ' abrimos
    ObjExcel.Workbooks.Open "c:\libro1.xls"

    ' Pasamos el libro como parámetro
    Call BuscarMacros(ObjExcel.ActiveWorkbook)
    ' cierra el Excel
    ObjExcel.quit
    Set ObjExcel = Nothing
End Sub

Private Sub Form_Load()
    Command1.Caption = "Obtener"
End Sub

Private Sub List1_Click()
    If List1.ListIndex <> -1 Then
       ' carga  el fuente en el text1
       Text1 = Macros(List1.ListIndex + 1).CodigoFuente
    End If
End Sub


'Toy lejos

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.
" Del infierno..al cielo "

MCKSys Argentina

Con Passware Password Recovery Kit lo sacas en 2 patadas. (Es pago, asi que debes buscar uno 'gratis'  ;D)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


BlackZeroX

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!¡.
The Dark Shadow is my passion.

Kerber0

Para sacar la passwd de la hoja (te tira una del estilo AAABCK" pero sirve)

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