bierschi / chromepass Goto Github PK
View Code? Open in Web Editor NEWFetching passwords from the chrome browser database
License: MIT License
Fetching passwords from the chrome browser database
License: MIT License
импорт ОС
импортный шутил
подпроцесс импорта
импортировать секретное хранилище
из времени импортировать сон
из getpass импортировать getuser
от Криптодом . Импорт шифра AES
от Криптодом . Протокол . Импорт KDF PBKDF2
из chromepass импортировать Chrome
класс ChromeLinux ( Chrome ):
""" класс ChromeLinux для получения паролей из браузера Linux Chrome
Применение:
chrome_linux = ChromeLinux ()
chrome_linux.decrypt_password (encrypted_password = encrypted_password)
"""
защита init ( самостоятельно ):
# инициализируем базовый класс
супер (). __инициализация__ ()
сам . login_db_path = f"/home/ { getuser () } /.config/google-chrome/Default/Данные для входа"
сам . tmp_login_db_path = f"/home/ { getuser () } /.config/google-chrome/Default/Login_tmp"
если ос . путь . существует ( self .login_db_path ) :
шутил . copy2 ( self.login_db_path , self.tmp_login_db_path ) # создание временной копии , поскольку база данных для входа заблокирована во время работы Chrome
еще :
print ( "Кажется, браузер Chrome не установлен! Выход..." )
выход ( 1 )
сам . iv = b'' * 16
сам . пароль = 'арахис' . кодировать ( 'utf8' )
автобус = хранилище секретов . dbus_init ()
коллекция = хранилище секретов . get_default_collection ( автобус )
для предмета в коллекции . получить_все_элементы ():
если пункт . get_label () == 'Хранилище Chrome Safe' :
попробуй :
сам . пароль = пункт . получить_секрет ()
кроме секретного хранилища . исключения . LockedException как пример :
print ( "Файл базы данных Chrome заблокирован. Браузер открывается в фоновом режиме. Завершение работы через 1 секунду..." )
сам . открытый_хром ()
сам . пароль = пункт . получить_секрет ()
ломать
сам . key = PBKDF2 ( пароль = self . пароль , соль = b'saltysalt' , dkLen = 16 , количество = 1 )
сам . шифр = AES . новый ( сам.ключ , AES.MODE_CBC , IV = self.iv ) _ _ _ _ _ _
сам . bytechars = [ b' \x01 ' , b' \x02 ' , b' \x03 ' , b' \x04 ' , b' \x05 ' , b' \x06 ' , b' \x07 ' , b' \x08 ' , б' \x09 ' ]
деф __del__ ( сам ):
"""разрушитель"""
попробуй :
ос . удалить ( сам .tmp_login_db_path ) _
кроме FileNotFoundError как например :
проходить
деф open_chrome ( сам ):
""" открывает хром как фоновый процесс и завершает его через одну секунду
"""
процесс = подпроцесс . Открыть ([ "/usr/bin/google-chrome" ])
спать ( 1 )
проц . прекратить ()
def replace_chars ( самостоятельно , расшифровано ):
""" заменяет определенные символы строки байтов из расшифрованной строки байтов.
:параметр расшифрован: строка байтов
:return: строка байтов без специальных символов
"""
для c в себе . bytechars :
расшифровано = расшифровано . заменить ( с , б'' )
вернуть в расшифрованном виде
def расшифровать_пароль ( самостоятельно , зашифрованный_пароль ):
""" расшифровать данный зашифрованный пароль
:param зашифрованный_пароль: зашифрованный пароль
:вернуть расшифрованный пароль
"""
enc_passwd = зашифрованный_пароль [ 3 :]
расшифровано = я . шифр . расшифровать ( enc_passwd )
попробуй :
расшифровано = я . replace_chars ( расшифровано = расшифровано )
пароль = расшифрован . декодировать ( кодировка = 'utf-8' , ошибки = 'surrogateescape' )
кроме UnicodeDecodeError как например :
print ( "Не удалось расшифровать пароль в кодировке 'utf-8'. Игнорирование ошибок..." )
пароль = расшифрован . полоса (). декодировать ( кодировка = 'utf-8' , ошибки = 'игнорировать' )
вернуть пароль
This is pip
installed on Fedora 32 Linux and I get
➜ ~ chromepass
Traceback (most recent call last):
File "/usr/local/bin/chromepass", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/chromepass/main.py", line 27, in main
results = chromepass.get_passwords()
File "/usr/local/lib/python3.8/site-packages/chromepass/chrome_passwords.py", line 68, in get_passwords
password = self.os.decrypt_password(encrypted_password=encrypted_password)
File "/usr/local/lib/python3.8/site-packages/chromepass/chrome_linux.py", line 63, in decrypt_password
password = decrypted.strip().decode('utf8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xec in position 0: invalid continuation byte
Are there some files I can provide to help debugging?
Trying to complete the sudo python3 setup.py install command on Windows 10x64 i avoided sudo command. However, after this i still have an issue to install the downloaded package. Here is the trouble:
C:\Windows\System32\chromepass>python3 setup.py install
Traceback (most recent call last):
File "C:\Windows\System32\chromepass\setup.py", line 3, in
from chromepass import version, author, email, license, title
File "C:\Windows\System32\chromepass\chromepass_init_.py", line 10, in
from chromepass.chrome_linux import ChromeLinux
File "C:\Windows\System32\chromepass\chromepass\chrome_linux.py", line 4, in
import secretstorage
ModuleNotFoundError: No module named 'secretstorage'
Maybe my python version is not approprieted one...
Does somebody has full instruction how to install the chromepass on windows?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.