Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: paolo_1976 on September 06, 2018, 03:53:31 PM



Title: Btcrecover for cracking sentences
Post by: paolo_1976 on September 06, 2018, 03:53:31 PM
Hi everybody,

Short stroy long: I wanted to unlock my Bitcoin wallet to sell my BCH (~10BTC). I bought some 6 years ago, and now I'm trying to crack my password with btcrecover. I'm pretty sure it's a sentence, that I know (I unlocked my wallet once a few years ago to pay for my taxes) but there must be a subtle variation that I cannot find anymore. It's psychologically quite strange to have you from 6 years ago as your opponent !

So, well, my password is a sentence similar to "El cinco de mayo es para las personas que viven en Estados Unidos el equivalente del 16 de septiembre para los mexicanos." and I'd like to change a few words, such as:
  • 1st word: El el
  • 2nd word: cinco 5
  • 3rd word: Mayo mayo
  • ...
  • Last word: mexicanos. mexicanos

My goal is to test all the variants with btcrecover, so I've written a token file looking like this:
Code:
^1^El%s el%s
^2^cinco%s 5%s
^3^de%s
^4^Mayo%s mayo%s
^5^es%spara%slas%spersonas%sque%sviven%sen%s
...
^18^mexicanos mexicanos. Mexicanos Mexicanos.

I've computed that there are around 20,000 combinations, however when I execute btcrecover with the following options:
Code:
./btcrecover.py --wallet wallet.dat --tokenlist tokens.txt --utf8 --min-tokens 18
it ends with the following error message: "at least 3,800,000 passwords to try, ETA > --max-eta option (168 hours), exiting"

I'm obviously doing something wrong, any help would be appreciated  :)

Besides, are you aware of BTC client changes that could have happened between 2012 and now, and that would impact Unicode passwords?

Have a great day! (Now trying to crack with passwordlist and --typos 3)

Paolo


Title: Re: Btcrecover for cracking sentences
Post by: TheArchaeologist on September 07, 2018, 10:47:19 AM
Code:
./btcrecover.py --wallet wallet.dat --tokenlist tokens.txt --utf8 --min-tokens 18
it ends with the following error message: "at least 3,800,000 passwords to try, ETA > --max-eta option (168 hours), exiting"

The default maximum runtime is 168 hours you can override this with a higher value by adding a --max-eta parameter to your call. Something like this:
Code:
./btcrecover.py --wallet wallet.dat --tokenlist tokens.txt --utf8 --min-tokens 18 --max-eta=100000000
Just be prepared the script can run for a very long time now! But at least the script won't stop and throw that message anymore.


Title: Re: Btcrecover for cracking sentences
Post by: paolo_1976 on September 09, 2018, 05:05:27 PM
Hi,

And thanks for the answer!

Actually my problem is that with that token file, it shouldn't reach millions of tries (and therefore > 2 days) but only about 20,000 combinations... so there's obviously something wrong in the way I wrote the token file.


Title: Re: Btcrecover for cracking sentences
Post by: seoincorporation on September 10, 2018, 02:19:32 PM
Hi,

And thanks for the answer!

Actually my problem is that with that token file, it shouldn't reach millions of tries (and therefore > 2 days) but only about 20,000 combinations... so there's obviously something wrong in the way I wrote the token file.

use this command to verify the tokens file:

Code:
cat tokens.txt | wc -l

if the number is 20k, then the file is fine, other way you will need to find other way to build that list again. If you need some help making that brute force list send me a PM, and i will help you.


Title: Re: Btcrecover for cracking sentences
Post by: jackg on September 10, 2018, 05:13:38 PM
Hi,

And thanks for the answer!

Actually my problem is that with that token file, it shouldn't reach millions of tries (and therefore > 2 days) but only about 20,000 combinations... so there's obviously something wrong in the way I wrote the token file.

Based on the OP you're trying to test for 18 sets of words. Is each set a repeat?

3,800,000 looks like double the number of words rather than the 20000.
I.E
15. StringX StringX
is
15. StringX StringX
15. StringX StringY
15. StringY StringX
...