Google Chrome Cookieを開いて復号化するための作業スクリプトがありました。
decrypted = win32crypt.CryptUnprotectData(enctypted_cookie_value, None, None, None, 0)
アップデート80以降は、有効なソリューションではなくなったようです。
このブログ投稿によると https://blog.nirsoft.net/2020/02/19/tools-update-new-encryption-chrome-chromium-version-80/ 私はする必要があるようですローカル状態ファイルのencrypted_keyのCryptUnprotectDataは、復号化されたキーを使用して、何らかの方法でCookieを復号化します。
最初の部分では、encrypted_keyを取得しました
path = r'%LocalAppData%\Google\Chrome\User Data\Local State'
path = os.path.expandvars(path)
with open(path, 'r') as file:
encrypted_key = json.loads(file.read())['os_crypt']['encrypted_key']
encrypted_key = bytearray(encrypted_key, 'utf-8')
それから私はそれを解読しようとしました
decrypted_key = win32crypt.CryptUnprotectData(encrypted_key、None、None、None、0)
そして例外を得ました:
pywintypes.error: (13, 'CryptProtectData', 'The data is invalid.')
そして、私はそれを修正する方法を理解できません
また、暗号化の2番目の部分では、次のスニペットのようなpycryptodomeを使用する必要があるようです:
cipher = AES.new(encrypted_key, AES.MODE_GCM, nonce=nonce)
plaintext = cipher.decrypt(data)
しかし、私はどこでナンス値を取得すべきかわからない
Chrome Cookieを正しく解読する方法を教えてください。
おそらく、Windows上の1つのユーザーアカウントからDPAPI暗号化キーの値をコピーし、別のユーザーとしてログオンしているときにCryptUnprotectData WinAPIを呼び出そうとしている可能性があります。これは、DPAPIの性質上、機能しません。