_FFGetCookies()

  • Hier eine Funktion, falls man mal cookies aus dem Fuchs auslesen will.

    Zwar nur relativ Quick n Dirty, aber es funktioniert.
    Viel Spaß damit ;)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    $aCookies = _FFGetCookies("name,value,lastAccessed", "host='www.autoit.de'") ; Cookies von AutoIt.de zeigen
    _ArrayDisplay($aCookies)
    $aCookies = _FFGetCookies() ; Alle Cookies
    _ArrayDisplay($aCookies)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _FFGetCookies($sWhat = "*", $sWhere = "", $sProfile = "default")
    If (Not $sWhat) Or IsKeyword($sWhat) Then $sWhat = "*"
    If (Not $sWhere) Or IsKeyword($sWhere) Then $sWhere = ""
    If (Not $sProfile) Or IsKeyword($sProfile) Then $sProfile = "default"

    [/autoit] [autoit][/autoit] [autoit]

    Local $sPath, $hFileFind = FileFindFirstFile(@AppDataDir & "\Mozilla\Firefox\Profiles\*" & $sProfile & "*")
    $sPath = @AppDataDir & "\Mozilla\Firefox\Profiles\" & FileFindNextFile($hFileFind)
    Local $hDB, $sQuery, $iErr = @error
    FileClose($hFileFind)
    If $iErr Then Return
    If $sWhere <> "" Then $sWhere = " WHERE " & $sWhere
    $sQuery = "SELECT " & $sWhat & " FROM moz_cookies" & $sWhere & ";"

    [/autoit] [autoit][/autoit] [autoit]

    If Not StringRegExp($sQuery, "SELECT\s+\S+\s+FROM moz_cookies(\s+WHERE\s+[^;]+)?;") Then Return SetError(-1)

    [/autoit] [autoit][/autoit] [autoit]

    FileCopy($sPath & "\cookies.sqlite", @TempDir & "\~cookies.sqlite", 1)
    _SQLite_Startup()
    _SQLite_Open(@TempDir & "\~cookies.sqlite")
    Local $aResult, $iRows, $iColums
    _SQLite_GetTable2d($hDB, $sQuery, $aResult, $iRows, $iColums)
    $iErr = @error
    _SQLite_Close($hDB)
    _SQLite_Shutdown()
    If $iErr Then Return SetError(-1)
    Return SetError(0, 0, $aResult)
    EndFunc ;==>_FFGetCookies

    [/autoit]