gurnec / btcrecover

An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assistance in trying different possible combinations.
GNU General Public License v2.0
1.28k stars 683 forks source link

subtract a subset of tokens #41

Open prophecynine opened 7 years ago

prophecynine commented 7 years ago

Sorry if this is the wrong place for a feature request, but it would be wonderful if there was a way to subtract a subset of tokens from the search. For example, if one tokenlist is exhausted, it would enable the user to add tokens but avoid repeating previous combinations. something like:

original tokenlist.txt - alice ALICE bob BOB 1234

new tokenlist.txt - --/ alice ALICE bob BOB 1234 /-- carl CARL 4321

etc. or is there currently a way to do this manually somehow?

rterwedo commented 7 years ago

I would love hte same, as I started very well defined and then kept expanding it.

gurnec commented 7 years ago

Sorry for the delay in response, but for most wallets, you could use the --regex-only option which will skip passwords unless they match the specified regular expressions, e.g. for the example above:

python btcrecover.py --regex-only "carl|CARL|4321" ...

...although I admit this isn't very time-saving for poor key-stretched wallets such as Electrum or MultiBit Classic.

If you have something more complicated, like a change in --typos options, you could create a text file containing all of the old passwords tried like this:

python btcrecover.py {old-options} --listpass > already-tried-pw.txt

and then exclude them from the new attempt:

python btcrecover.py {new-options} --exclude-passwordlist already-tried-pw.txt

Note that this method reads the entire already-tried-pw.txt into RAM, so if it's too big, you'll probably run out of RAM or run very slowly. (Also, use 64-bit python for this to permit more RAM usage.)