Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: illuminat3d en 18 Agosto 2009, 20:22 pm



Título: [VB6] Obtener paginas visitadas de Mozilla Firefox
Publicado por: illuminat3d en 18 Agosto 2009, 20:22 pm
Bueno ayer comencé a buscar archivos de firefox y di con 'sessionstore.bak', entondes terminé el mini modulo pero le hacia falta una limpieza, como no sabia como hacer esa limpieza le pedí a BlackZeroX que me ayduase a mejorarlo, a contianuación dejo mi codigo de fuente original y luego el codigo mejorado por BlackZeroX

Imagen del ejemplo mio :

(http://img518.imageshack.us/img518/1299/lolito.png)

Descargar codigo de SharkI (http://sharki.es/Mozilla Recovery Information.rar)

Y aqui os dejo el codigo en sucio de BlackZeroX :

Código
  1.  
  2. Attribute VB_Name = "Module1"
  3. Dim d()
  4. Sub main()
  5.    '---------------------------------------------------------------------------------------------------º
  6.    'Trabajar con punteros al archivo -> Garantisa el devido uso de la memoria de la plicaciòn Actual!¡.º
  7.    'Este es un Codigo Sucio creado por: BlackZeroX (blackzerox2006@hotmail.com)------------------------º
  8.  
  9. Dim ByteI() As Long, ByteF As Long, SData As String, Archivo As String, GetD As String
  10.  
  11.    Archivo = "c:\sessionstore.txt"
  12.    If Dir(Archivo, vbArchive) = "" Then GoTo Fin:
  13.  
  14.    Open Archivo For Binary As 1
  15.        d = Array(Chr(34) & "url" & Chr(34) & ":", _
  16.                  Chr(34) & "title" & Chr(34) & ":", _
  17.                  Chr(34) & "ID" & Chr(34) & ":")
  18.        ReDim ByteI(UBound(d))
  19.  
  20.        GetD = Space(255)
  21.        Get 1, , GetD
  22.        If Len(GetD) = 0 Then GoTo Fin:
  23.        '----------------------------------------------------------------
  24.        'Esto se deberia convertir en funcion para poder cargar los demas
  25.        '----------------------------------------------------------------
  26.            For i = 0 To 2
  27.                DoEvents
  28.                ByteI(i) = InStr(GetD, d(i))
  29.                If ByteI(i) = 0 Then Fin = True: GoTo Fin ' Termina Todo
  30.            Next i
  31.        '----------------------------------------------------------------
  32.        'Fin de supuesta funcion
  33.        '----------------------------------------------------------------
  34.  
  35.        'URL
  36.        Seek 1, ByteI(0)
  37.        ByteF = ByteI(1) - ByteI(0)
  38.        SData = Space(ByteF)
  39.        Get 1, , SData
  40.        SData = Limpiar(SData)
  41.        MsgBox SData
  42.  
  43.        'Title
  44.        Seek 1, ByteI(1)
  45.        ByteF = ByteI(2) - ByteI(1)
  46.        SData = Space(ByteF)
  47.        Get 1, , SData
  48.        SData = Limpiar(SData)
  49.        MsgBox SData
  50.        'ID
  51.        Seek 1, ByteI(2)
  52.        ' aqui se deberia pasar la supuesta funciòn para delimitar el rango a cargar con el ByteI(0) SIGUIENTE
  53.        ByteF = 6
  54.        SData = Space(ByteF)
  55.        Get 1, , SData
  56.        SData = Limpiar(SData)
  57.        MsgBox Val(SData)
  58. Fin:
  59.    Close 1
  60. End Sub
  61.  
  62.  
  63. Function Limpiar(StrData As String) As String
  64.    StrData = Replace(StrData, ",", "")
  65.    StrData = Replace(StrData, d(0), "")
  66.    StrData = Replace(StrData, d(1), "")
  67.    StrData = Replace(StrData, d(2), "")
  68.    StrData = Replace(StrData, Chr(34), "")
  69.    Limpiar = StrData
  70. End Function
  71.  

Saludos!  :P


Título: Re: [VB6] Obtener paginas visitadas de Mozilla Firefox
Publicado por: seba123neo en 19 Agosto 2009, 02:36 am
Hola, no hay ningun archivo con tal nombre en esa carpeta, por lo menos en la utlima versión de firefox...

saludos.


Título: Re: [VB6] Obtener paginas visitadas de Mozilla Firefox
Publicado por: BlackZeroX en 19 Agosto 2009, 05:53 am
Hola, no hay ningun archivo con tal nombre en esa carpeta, por lo menos en la utlima versión de firefox...

saludos.

"c:\sessionstore.txt"  ?

... yo copie dicho archivo a C para ahorrarme el tecleo y demàs...

esta es la ruta completa:

de forma predeterminada esta en:

(C:) X:\Documents and Settings\BlackZeroX\Datos de programa\Mozilla\Firefox\Profiles\fjlb5t1t.default\sessionstore.js

ò

(C:) X:\Documents and Settings\BlackZeroX\Datos de programa\Mozilla\Firefox\Profiles\fjlb5t1t.default\sessionstore.bak

El codigo esta en sucio y fue solo una idea que le di a Sharki, se pueden crear una funcion para leer los siguientes punteros al byte X del archivo (Para no cargarlo TODO en memoria si es que llegase a pesar mas de 1 mega en casos extremos) y seguir cargando los demàs datos existentes (Este solo era un ejemplo)


Título: Re: [VB6] Obtener paginas visitadas de Mozilla Firefox
Publicado por: illuminat3d en 19 Agosto 2009, 14:11 pm
Hola, no hay ningun archivo con tal nombre en esa carpeta, por lo menos en la utlima versión de firefox...

saludos.

Yo obtuve la carpeta de la siguiente forma, puedes verlo en mi codigo de fuente :

Código
  1. Option Explicit
  2.  
  3. Dim xCarpeta As String, i As Integer, Lista As String, txtBasura As String
  4. Dim Bin As String, Contenido() As String, File As String, dArchive As String, Delimiter As String
  5.  
  6. Public Function Obtener_Carpeta()
  7. File = FreeFile
  8.  If Dir$(Environ$("AppData") & "\Mozilla\Firefox\profiles.ini", vbArchive) <> "" Then
  9.   Open Environ$("AppData") & "\Mozilla\Firefox\profiles.ini" For Binary As #File
  10.    Bin = Space(LOF(File))
  11.    Get #File, , Bin
  12.   Close #File
  13.  
  14.   Contenido() = Split(Bin, "Path=Profiles/")
  15.   xCarpeta = Mid$(Contenido(1), 1, 16)
  16.   frmMain.Label1.Caption = Environ$("AppData") & "\Mozilla\Firefox\Profiles\" & xCarpeta
  17.  End If
  18. End Function
  19.  
  20. Saludos! ;D
  21.  


Título: Re: [VB6] Obtener paginas visitadas de Mozilla Firefox
Publicado por: Novlucker en 19 Agosto 2009, 15:24 pm
Deberías de cambiar los delimitadores del split (tengo un code similar y en mi caso usaba otro  :P), ya que si buscas http: encontrás muchisimos, pero no todos son importantes, ya que muchas de las urls que aparecen en el sessionstore.js no son necesariamente las urls principales sino que son href, y quizás no se quiera estas.

Así que se podría eliminar estas directamente, .. o bien dar la opción de mostrar todos los links, o solo los principales (sin href)

Saludos