Автор Тема: Работа с nss3.dll(Firefox)  (Прочитано 8678 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн s0me0ne [?]

  • Новичок
  • *
  • Сообщений: 19
  • Репутация: 2
    • Награды
Работа с nss3.dll(Firefox)
« Создано: Март 21, 2013, 23:22:12 »
А именно с функциями
PK11_Encrypt
и
PK11_Decrypt

Шифрование:
Base64 - PK11_Decrypt и обратно (c PK11_Encrypt соответственно)

PK11Decrypt будет выглядеть примерно вот так, наверное, если что-то не так поправьте:
Код: AutoIt [Выделить]
$str = 'char *data; int len'
$sReq = DllStructCreate($str)
$sRepl = DllStructCreate($str)

DllStructSetData($sReq,'*data', $decodingData)
DllStructSetData($sReq,'len', $decodingLength)

DllStructSetData($sRepl,'*data', 0)
DllStructSetData($sRepl,'len', 0)

$Result = DllCall ($dllpath, "int", "PK11SDR_Decrypt" ,"ptr", DllStructGetPtr($sReq), "ptr", DllStructGetPtr($sRepl), "ptr", "")
Return($Result)
EndFunc
 



UPD
О господи, что за?
Может мне кто объяснить, что я делаю не так?
Скрипт подвисает на несколько секунд и крашается. :think:

Лог:
C:\Program Files (x86)\Mozilla Firefox\sqlite3.dll
20392624
Reading password data: 1
MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECCjcV49rqOkaBBAvfzObm9vy4W2PydmLi+en
Base64 decoded!
Decrypting!
!>21:42:34 AutoIT3.exe ended.rc:-1073741783
>Exit code: -1073741783    Time: 8.120

Код всего этого чуда:
Код: AutoIt [Выделить]
#include<sqlite.au3>


$dat = _SQLite_Startup(@ScriptDir & "\sqlite3.dll")
ConsoleWrite($dat & @CRLF)
$DB = _SQLite_Open(@ScriptDir & "\signons.sqlite")
ConsoleWrite($db & @CRLF)
$iRows = 10
Local $aResult, $iRows, $iColumns, $iRval
$iColumns = 10
$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM moz_logins;", $aResult, $iRows, $iColumns)
$ld = ''
If $iRval = $SQLITE_OK Then
    ;_ArrayDisplay($aResult)
    For $i = 1 To UBound($aResult,1) - 1
        ConsoleWrite('Reading password data: ' & $i & @CRLF)
        ConsoleWrite($aResult[$i][7] & @CRLF)
        $b64decoded = _Base64Decode($aResult[$i][7])
        ConsoleWrite('Base64 decoded!' & @CRLF)
        $decodingLength = StringLen($b64decoded)
        $decodedData = ''
        $finalLength = ''
        ConsoleWrite('Decrypting!' & @CRLF)
        $res = PK11DECR('C:\Program Files (x86)\Mozilla Firefox\nss3.dll', $b64decoded, $decodingLength, $decodedData ,$finalLength)
        ;$Res = DllCall ('C:\Program Files (x86)\Mozilla Firefox\nss3.dll', "int", "PK11SDR_Decrypt" , "str", $b64decoded, "int", $decodingLength, "str", $decodedData , "int", $finalLength)
        ConsoleWrite($res & @CRLF)
        ConsoleWrite($decodingLength & @CRLF)
        ConsoleWrite($decodedData & @CRLF)
        ConsoleWrite($finalLength & @CRLF)
    Next
EndIf






Func PK11DECR($dllpath, $decodingData, $decodingLength, $decodedData ,$finalLength)
$str = 'char *data; int len'
$sReq = DllStructCreate($str)
$sRepl = DllStructCreate($str)

DllStructSetData($sReq,'*data', $decodingData)
DllStructSetData($sReq,'len', $decodingLength)

DllStructSetData($sRepl,'*data', 0)
DllStructSetData($sRepl,'len', 0)

$Result = DllCall ($dllpath, "int", "PK11SDR_Decrypt" ,"ptr", DllStructGetPtr($sReq), "ptr", DllStructGetPtr($sRepl), "ptr", "")
Return($Result)
EndFunc


Func _Base64Decode($sData)
    Local $oXml = ObjCreate("Msxml2.DOMDocument")
    If Not IsObj($oXml) Then
        SetError(1, 1, 0)
    EndIf

    Local $oElement = $oXml.createElement("b64")
    If Not IsObj($oElement) Then
        SetError(2, 2, 0)
    EndIf

    $oElement.dataType = "bin.base64"
    $oElement.Text = $sData
    Local $sReturn = BinaryToString($oElement.nodeTypedValue, 4)

    If StringLen($sReturn) = 0 Then
        SetError(3, 3, 0)
    EndIf

    Return $sReturn
EndFunc   ;==>_Base64Decode


Вот документация по теме:http://mxr.mozilla.org/mozilla-central/source/security/nss/lib/pk11wrap/pk11sdr.c#303 [nofollow]


Я хочу сделать свой собственный менеджер паролей (с блекджеком и сами знаете чем).
p.s. Проблемы из браузеров вызвал только firefox, ибо документации на это я не нашёл(а ещё я криворукий идиот и не умею оперировать со структурами и вызовом dll, научился :ok:).
« Последнее редактирование: Март 28, 2013, 13:49:25 от s0me0ne »

Русское сообщество AutoIt

Работа с nss3.dll(Firefox)
« Отправлен: Март 21, 2013, 23:22:12 »

Оффлайн armenxxx1 [?]

  • Продвинутый
  • ***
  • Сообщений: 155
  • Репутация: 56
    • Награды
Re: Работа с nss3.dll(Firefox)
« Ответ #1, Отправлен: Январь 07, 2015, 21:35:10 »
Здаствуйте ,не нашли решение по этой теме ?
Извините, если я пишу неправильно, но я иностранец.

Русское сообщество AutoIt

Re: Работа с nss3.dll(Firefox)
« Ответ #1 Отправлен: Январь 07, 2015, 21:35:10 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
3278 Просмотров
Последний ответ Июль 24, 2010, 15:52:28
от 11exx
0 Ответов
2681 Просмотров
Последний ответ Май 31, 2011, 02:17:50
от shakur
12 Ответов
5728 Просмотров
Последний ответ Июль 17, 2011, 11:31:12
от Yuriy
5 Ответов
3079 Просмотров
Последний ответ Декабрь 26, 2012, 09:33:42
от madmasles
1 Ответов
2569 Просмотров
Последний ответ Март 15, 2013, 12:49:03
от mef-t
3 Ответов
2162 Просмотров
Последний ответ Июнь 12, 2013, 16:03:33
от irvin12345
0 Ответов
1738 Просмотров
Последний ответ Июль 07, 2013, 23:49:40
от ArgoNaft
2 Ответов
1828 Просмотров
Последний ответ Июль 16, 2013, 11:44:19
от Kaster
0 Ответов
1400 Просмотров
Последний ответ Август 28, 2013, 15:40:52
от 11exx
1 Ответов
836 Просмотров
Последний ответ Июнь 13, 2016, 23:25:47
от kurand