Google Chrome Password Recovery

Autoit Avanzado más complejo con funciones "geek" para cualificarse como "ESPECIALISTA EN AUTOIT". Originales de autor, no copiados. Mín. 100 lineas
Responder
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Google Chrome Password Recovery

Mensaje por Dany »

Un simple password recovery para google chrome.


Imagen


Código: Seleccionar todo

#include <File.au3>
#include <MsgBoxConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>




Local $hGUI = GUICreate("Google Chrome Password Recovery", 410, 260)
Local $hListview = GUICtrlCreateListView("", 5, 5, 400, 200, $LVS_REPORT, $LVS_EX_GRIDLINES)
Local $Boton = GUICtrlCreateButton("Get Passwords", 165, 220, 80, 30)
GUISetBkColor(0x0000)
_GUICtrlListView_InsertColumn($hListview, 0, "Url", 100)
_GUICtrlListView_InsertColumn($hListview, 1, "Username", 100)
_GUICtrlListView_InsertColumn($hListview, 2, "Password", 100)

_GUICtrlListView_SetColumnWidth($hListview, 0, 200)
_GUICtrlListView_SetColumnWidth($hListview, 1, 98)
_GUICtrlListView_SetColumnWidth($hListview, 2, 98)
GUISetState(@SW_SHOW)

Local $aArray = 0
Local $Pass = ""
While 1
	$idMsg = GUIGetMsg()
	Select
		Case $idMsg = $GUI_EVENT_CLOSE
			ExitLoop
		Case $idMsg = $Boton
			_GUICtrlListView_DeleteAllItems($hListview)
			$aArray = Recovery()

			For $i = 1 To UBound($aArray) - 1
				$Pass = UncryptRDPPassword($aArray[$i][5])
				If Not (Binary($Pass) = "0x00000000") Then
					_GUICtrlListView_AddItem($hListview, $aArray[$i][0])
					_GUICtrlListView_AddSubItem($hListview, _GUICtrlListView_GetItemCount($hListview) - 1, $aArray[$i][3], 1)
					_GUICtrlListView_AddSubItem($hListview, _GUICtrlListView_GetItemCount($hListview) - 1, $Pass, 2)
				EndIf
				$Pass = ""
			Next
			$aArray = 0


	EndSelect
WEnd



Func Recovery()
Local $aResult, $iRows, $iColumns, $iRval, $hData
	Local $sDataLoginPath = @LocalAppDataDir & "\Google\Chrome\User Data\Default\Login Data"
	Local $TempData = @TempDir & "\TempData.db"
	Local $sPathData = ""
	FileCopy($sDataLoginPath, $TempData, 1)

	If FileExists($TempData) Then
		$sPathData = $TempData
	EndIf



	_SQLite_Startup()
	If @error Then
		MsgBox($MB_SYSTEMMODAL, "SQLite Error", "SQLite.dll Can't be Loaded!")
		Exit -1
	EndIf


	$hData = _SQLite_Open($sPathData)
	If @error Then
		MsgBox($MB_SYSTEMMODAL, "SQLite Error", "Can't Load Database!")
		Exit -1
	EndIf

	$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM logins;", $aResult, $iRows, $iColumns)

	_SQLite_Close($hData)
	_SQLite_Shutdown()

	If FileExists($TempData) Then
		FileDelete($TempData)
	EndIf

	Return $aResult

EndFunc   ;==>Recovery


Func UncryptRDPPassword($bin)
	;This Func From >> http://www.autoitscript.com/forum/topic/96783-dllcall-for-cryptunprotectdata/#entry695769
	Local Const $CRYPTPROTECT_UI_FORBIDDEN = 0x1
	Local Const $DATA_BLOB = "int;ptr"

	Local $passStr = DllStructCreate("byte[1024]")
	Local $DataIn = DllStructCreate($DATA_BLOB)
	Local $DataOut = DllStructCreate($DATA_BLOB)
	$pwDescription = 'psw'
	$PwdHash = ""

	DllStructSetData($DataOut, 1, 0)
	DllStructSetData($DataOut, 2, 0)

	DllStructSetData($passStr, 1, $bin)
	DllStructSetData($DataIn, 2, DllStructGetPtr($passStr, 1))
	DllStructSetData($DataIn, 1, BinaryLen($bin))

	$return = DllCall("crypt32.dll", "int", "CryptUnprotectData", _
			"ptr", DllStructGetPtr($DataIn), _
			"ptr", 0, _
			"ptr", 0, _
			"ptr", 0, _
			"ptr", 0, _
			"dword", $CRYPTPROTECT_UI_FORBIDDEN, _
			"ptr", DllStructGetPtr($DataOut))
	If @error Then Return ""

	$len = DllStructGetData($DataOut, 1)
	$PwdHash = Ptr(DllStructGetData($DataOut, 2))
	$PwdHash = DllStructCreate("byte[" & $len & "]", $PwdHash)
	Return BinaryToString(DllStructGetData($PwdHash, 1), 4)
EndFunc   ;==>UncryptRDPPassword
saludos
  • ............................................Imagen
    ......................................Imagen
qpongo
Hacker del Foro
Mensajes: 110
Registrado: 10 Abr 2013, 15:53
Ubicación: Madrid

Re: Google Chrome Password Recovery

Mensaje por qpongo »

Vaya con lo simple......!!!
Está muy bien
Gracias por compartirlo

qpongo
Responder