I've written some python scripts that were meant for MultiBit HD that also creates bitcoinj wallets in protobuf format... It didn't extract the keys and just dumped out the raw protobuf. What was interesting to note was that the 12 word HD seed is actually available in plaintext in the dumped out data! So, I fired up gurnec's:
decrypt_bitcoinj_seed and sure enough, it output the recovery seed!
@HCP
Unfortunately if the wallet has spending PIN or password (not backup password)
decrypt_bitcoinj_seed still wants to enter it
The program first prompt for backup password (or not if the file is decrypted) and then prompts "This wallet's seed is encrypted with a PIN or password, please enter it:"
If I enter the correct password it shows the seed.
Is there a way to recover the seed or private keys from encrypted android wallet??
(well btcrecover can do it but has speed 10 passwords/sec not so efficient)
I am able to dump encrypted seed and private keys with bitcoinj:
./wallet-tool raw-dump --dump-privkeys --password=XXX --wallet=backpassremoved > backpassremoved_dmp
this is example empty wallet, I get this:
...
key {
type: DETERMINISTIC_MNEMONIC
creation_timestamp: 1506101580000
encrypted_data {
initialisation_vector: "|A\274\361c\214\2121\220\203%\3247\r}\357"
encrypted_private_key: "K\264=\256D\255\"\235\340\336\001R\310A\276\377\203 -\017?\353\251\353Y\340\310\356Y5(
\217<\221\243\253\326\370\376\026lr1D\006\203\300k\v\004q\356\313\377\243\361>\037hI\b\365\213w\326\340\320\344[\2
04\021\314\275\242\222\333I\332S"
}
encrypted_deterministic_seed {
initialisation_vector: "\210\365\345\004J\357\323\376\243\344\227G\323\243\220K"
encrypted_private_key: "\222\256N\365P8Nk\2750\n\377 \215\366\fO1dzP\221\274S\377m]R\021Qa\262\201{\004\024[uO
]\"\034\300x\201I\343\017m\fQ\214l\030\274\262\371\335\314\334*\242\034}\350\336\023\356\t\340\336q(\027\256\320a\
275\226"
}
}
key {
type: DETERMINISTIC_KEY
public_key: "\003gN6\'\353\322\347\034\320\026\032\217+^\275\034\242\233\234t\022\"\277\227\356\335\030\353\377\
270\374\356"
creation_timestamp: 1506101580000
encrypted_data {
initialisation_vector: "\022\223{\312@q\350\217wy\373\246\331q\316\363"
encrypted_private_key: "y\367,\361i\223m\315\364\360\225^\362\v7G\032A\262\250i(\005je)\250\2630p\347\346`\241
t\000\272\256\210u\212?\377\304\313\201@\360"
}
...
and so on...
is there a way to covert it for John The Ripper or hashcat readable hash format???