Woh, great code there!
I have some wallet I do want to recovery. I did a dump with
pywallet and discarded the wallet.dat long time ago. I do have a dictionary I made. Can I use the btcrecover starting from the pywallet data? Or I was guessing if I just can reconstruct the wallet.dat from another one, but that looks messy.
Thanks for the compliment, flattery will get you everywhere
Getting what btcrecover needs from the pywallet dump is pretty easy.... if you actually manage to find the password, we can worry about the rest later.
Save only the "mkey" section from the pywallet dump to a new file, e.g. it should contain only something like this:
{
"encrypted_key": "2e2c3b9b58e9b33c9799b4472e83c136e6246120c45e390daa6a57476e7fbe4f57d83f79d75f9b4c1db680fe5a846cb8",
"nDerivationIterations": 67908,
"nDerivationMethod": 0,
"nID": 1,
"otherParams": "",
"salt": "4593aff5639179c7"
}
The Python script below produces output in the same format as
extract-bitcoincore-mkey.py, but it uses the file above instead of a wallet.dat file. Give it the filename from above as the first argument, and it will print out some base64-encoded stuff that btcrecover can use:
import sys, json, struct, base64, zlib
data = json.load(open(sys.argv[1]))
encrypted_master_key = base64.b16decode(data["encrypted_key"], True)
salt = base64.b16decode(data["salt"], True)
iter_count = data["nDerivationIterations"]
bytes = b"bc:" + encrypted_master_key + salt + struct.pack("crc_bytes = struct.pack("
print(base64.b64encode(bytes + crc_bytes))
Then you can feed that into btcrecover like this:
btcrecover.py --extract-data --passwordlist existing-dictionary-file.txt
Please enter the data from the extract script
> lV/wGO5oAUM42KTfq5s3egX3Uhk6gc5gEf1R3TppgzWNW7NGZQF5t5U3Ik0qYs5/dprb+ifLDHuGNQIA+8oRWA==
...
Password found: xxxx
If the dictionary file is particularly long, it might be worth trying to get the somewhat experimental
GPU support working-- it can improve speed w/Bitcoin Core wallets from somewhere in the 50s to somewhere in the 1000s (tries per second), but it can take some effort to get working well.
Good luck!