
- vous devez mettre dans la constante $NOM_PROFIL_FIREFOX le nom du répertoire du profil de Firefox (il est placé dans %appdata%\Mozilla\Firefox\Profiles\) ;
- le script doit être exécuté quand Firefox n'est pas en cours d'exécution ;
- EcritCookiesDansTXT (ligne 34) lit le(s) cookie(s) dans cookies.sqlite et le(s) stocke dans le fichier texte $FICHIER_COOKIES ;
- EcritCookiesDansBaseDeDonnees (ligne 35) lit le(s) cookie(s) dans le fichier texte $FICHIER_COOKIES et enregistre le contenu dans cookies.sqlite ;
- dans l'exemple, LitCookiesDansBaseDeDonnees lit les cookies dont l'hôte contient "mozilla" (ligne 43).
► Afficher le texte
Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_Res_Language=1036
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <SQLite.au3>
#include <SQLite.dll.au3>
Opt("MustDeclareVars", 1)
Global Const $NOM_PROFIL_FIREFOX = "VOTRE_REPERTOIRE_DE_PROFIL_FIREFOX" ; IMPORTANT : mettez votre répertoire !!!
Global Const $FICHIER_COOKIES = "cookies.txt"
Global Const $FICHIER_BD_COOKIES = @AppDataDir & "\Mozilla\Firefox\Profiles\" & $NOM_PROFIL_FIREFOX & "\cookies.sqlite"
If Not FileExists($FICHIER_BD_COOKIES) Then
MsgBox(16, "Erreur", "Le fichier " & $FICHIER_BD_COOKIES & " n'existe pas !")
Exit -1
EndIf
; démarrage de SQLite
_SQLite_Startup()
If @error > 0 Then
MsgBox(16, "SQLite Erreur", "SQLite.dll ne peut être chargé !")
Exit -1
EndIf
ConsoleWrite("_SQLite_LibVersion=" &_SQLite_LibVersion() & @CR)
; ouverture de la base de données
_SQLite_Open($FICHIER_BD_COOKIES)
If @error > 0 Then
MsgBox(16, "SQLite Erreur", "Impossible de charger la base de données !")
Exit -1
EndIf
EcritCookiesDansTXT($FICHIER_COOKIES, LitCookiesDansBaseDeDonnees())
;~ EcritCookiesDansBaseDeDonnees($FICHIER_COOKIES)
_SQLite_Close()
_SQLite_Shutdown()
Func LitCookiesDansBaseDeDonnees()
Local $hQuery, $aRow, $sMsg
_SQLite_Query(-1, "SELECT * FROM moz_cookies WHERE host LIKE '%mozilla%';", $hQuery)
If @error Then
MsgBox(0, "", @error)
Return SetError(@error, "", -1)
EndIf
While _SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK
$sMsg &= $aRow[0] & ","
$sMsg &= $aRow[1] & ","
$sMsg &= $aRow[2] & ","
$sMsg &= $aRow[3] & ","
$sMsg &= $aRow[4] & ","
$sMsg &= $aRow[5] & ","
$sMsg &= $aRow[6] & ","
$sMsg &= $aRow[7] & ","
$sMsg &= $aRow[8] & @LF
WEnd
Return $sMsg
EndFunc ;==>LitCookiesDansBaseDeDonnees
Func EcritCookiesDansTXT($fichierCookies, $cookies)
; fait une sauvegarde du fichier
FileMove($fichierCookies, $fichierCookies & ".sauv", 1)
; ouvre le fichier en écriture
Local $fichier = FileOpen($fichierCookies, 2)
If $fichier = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrir " & $fichierCookies)
Return SetError(1)
EndIf
FileWrite($fichier, $cookies)
FileClose($fichier)
EndFunc ;==>EcritCookiesDansTXT
Func EcritCookiesDansBaseDeDonnees($fichierCookies)
Local $_moz_id, _
$_moz_name, _
$_moz_value, _
$_moz_host, _
$_moz_path, _
$_moz_expiry, _
$_moz_lastAccessed, _
$_moz_isSecure, _
$_moz_isHttpOnly
Local $i
Local $contenuFichierCookies
Local $a_listeCookies, $a_ElementsCookie
Local $fichier = FileOpen($fichierCookies, 0)
If $fichier = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrir " & $fichierCookies)
Return SetError(1)
EndIf
$contenuFichierCookies = FileRead($fichier)
FileClose($fichier)
; récupère la liste de tous les cookies présents dans le fichier
$a_listeCookies = StringSplit($contenuFichierCookies, @LF)
If @error Then
MsgBox(0, "Erreur", "Pas de cookies trouvés dans le fichier.")
Return SetError(1)
EndIf
; boucle qui récupère les éléments de chaque cookie du fichier texte
; et les enregistres ensuite dans la base de données
For $i = 1 To $a_listeCookies[0] - 1
; récupère les éléments du cookie
$a_ElementsCookie = StringSplit($a_listeCookies[$i], ",")
If @error Then
MsgBox(0, "Erreur", "Impossible de récupérer les éléments des cookies.")
Return SetError(1)
EndIf
$_moz_id = $a_ElementsCookie[1]
$_moz_name = $a_ElementsCookie[2]
$_moz_value = $a_ElementsCookie[3]
$_moz_host = $a_ElementsCookie[4]
$_moz_path = $a_ElementsCookie[5]
$_moz_expiry = $a_ElementsCookie[6]
$_moz_lastAccessed = $a_ElementsCookie[7]
$_moz_isSecure = $a_ElementsCookie[8]
$_moz_isHttpOnly = StringStripCR($a_ElementsCookie[9])
; supprime d'abord le cookie s'il existe déjà sous cette id
_SQLite_Exec(-1, _
'DELETE ' & _
'FROM moz_cookies ' & _
'WHERE id="' & $_moz_id & '";')
If @error Then
MsgBox(0, "", @error)
Return SetError(@error, "", -1)
EndIf
; ajoute le cookie à la base de données
_SQLite_Exec(-1, _
"INSERT INTO moz_cookies (id,name,value,host,path,expiry,lastAccessed,isSecure,isHttpOnly) " & _
"VALUES('" & _
$_moz_id & "','" & _
$_moz_name & "','" & _
$_moz_value & "','" & _
$_moz_host & "','" & _
$_moz_path & "','" & _
$_moz_expiry & "','" & _
$_moz_lastAccessed & "','" & _
$_moz_isSecure & "','" & _
$_moz_isHttpOnly & _
"');")
If @error Then
MsgBox(0, "", @error)
Return SetError(@error, "", -1)
EndIf
Next
EndFunc ;==>EcritCookiesDansBaseDeDonnees