Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (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.
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)

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