banner

I have this code:

#!/usr/bin/env python3

# pip3 install pycryptodome bsddb3

import os
import bsddb3.db as bdb
import struct

def extract_keys(wallet_path):
    try:
        # Open the wallet.dat file
        db_env = bdb.DBEnv()
        db_env.open(os.path.dirname(wallet_path), bdb.DB_CREATE | bdb.DB_INIT_MPOOL)
        db = bdb.DB(db_env)
        db.open(wallet_path, "main", bdb.DB_BTREE, bdb.DB_RDONLY)

        mkey, ckeys = None, []

        for key, value in db.items():
            if key.startswith(b'\x04mkey'):
                mkey = value  # Extract master key
            elif key.startswith(b'\x07ckey'):
                ckeys.append(value)  # Extract crypted keys

        db.close()
        db_env.close()

        return {"mkey": mkey, "ckeys": ckeys}

    except Exception as e:
        print(f"Error: {e}")
        return None

if __name__ == "__main__":
    for infile in os.listdir('.'):
        if os.path.isfile(infile) and infile[-4:]=='.dat':
            result = extract_keys(infile)

            if result:
                print(f"File: {infile}")
                print(f"mkey: {result['mkey'].hex() if result['mkey'] else 'Not found'}")
                print(f"ckey: {[ckey.hex() for ckey in result['ckeys']]}\n")
            else:
                print("Failed to extract keys.")

It does extract mkeys but not ckeys. How to fix that?

Does it extract mkeys correctly?

banner

Converter

Source: CurrencyRate
Top Selling Multipurpose WP Theme

Newsletter

Subscribe my Newsletter for new blog posts, tips & new photos. Let's stay updated!

banner

Leave a Comment

Layer 1
Your Crypto & Blockchain Beacon

CryptoInsightful

Welcome to CryptoInsightful.com, your trusted source for in-depth analysis, news, and insights into the world of cryptocurrencies, blockchain technology, NFTs (Non-Fungible Tokens), and cybersecurity. Our mission is to empower you with the knowledge and understanding you need to navigate the rapidly evolving landscape of digital assets and emerging technologies.