Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: jbeck on July 04, 2019, 02:40:00 AM



Title: using btcrecover. Need help with tokens
Post by: jbeck on July 04, 2019, 02:40:00 AM
I need help setting up tokens.    I am trying to recover my pass code
8 digits may be 10
upper case 1st letter
ends with 2 to four numbers
never special caricatures like ! @ # $ % ^ ect... 
I have read the wiki but I can not see where to exclude something that I know i never use.
I would be thankful for some help in how to write this into my .txt file


Title: Re: using btcrecover. Need help with tokens
Post by: bob123 on July 04, 2019, 08:02:26 AM
Everything is explained here: https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#the-token-file (https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#the-token-file)

For example:
  • $ at the end of a line for setting this as the last token (i.e. what your password ends with)
  • ^ at the beginning of a line for setting this as the first token (i.e. what your password starts with)
  • %2,4d for a wildcard which means 2 to 4 digits
  • %A for an uppercase letter


So your token file should at least contain the following:
Code:
^%A          (starts with uppercase letter)
%2,4d$       (ends with 2 to 4 digits)


You can exclude characters by simply not including them (i.e. you set beginning anchor (uppercase letter), ending anchor (2-4 digits) and set X-Y characters of your charset (e.g. 0-9a-z) in between).


If you can't figure the remaining ones out yourself, please describe your password more precisely. With "8 digits may be 10", do you refer to only digits (numbers) ? Or are you referring to letters and digits ?


If for example your overall password is 8-10 chars long and you know the first is uppercase letter and the last 2-4 is digits, and in the middle you have 0-9, a-z and A-Z, you can add:
Code:
%3,7i[0-9a-f]

This will give you 3-7 chars from the charset (0-9, a-z, A-Z)

Then, your token file could look like this:

Code:
^%A            (starts with uppercase letter)
%2,4d$         (ends with 2 to 4 digits)
%3,7i[0-9a-f]  (3 to 7 characters of 0-9, a-z, A-Z (not at the beginning and not and the end))

This is not optimized yet, since it tests unnecessary combinations (e.g. 4 digits and 7 chars in the middle, which results in a length of 12).
You could enhance this with mutual exclusions (https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#mutual-exclusion (https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#mutual-exclusion)).

This should you just give an idea how to construct it.



Title: Re: using btcrecover. Need help with tokens
Post by: jbeck on July 04, 2019, 03:27:14 PM
Thank you for so much more.  I really appreciate your in-depth explanation.   Trying just the basic example you gave me returned an error that 2,800,000 combinations would be required and the app exited.
So it appears I need to make this more concise.   

^%A            (starts with uppercase letter)
%2,4d$         (ends with 2 to 4 digits)
%3,7i[0-9a-f]  (3 to 7 characters of 0-9, a-z, A-Z (not at the beginning and not and the end))

Always starts with a uppercase   ^%A
Always ends with 2 to 4 digits     %2,4d$
I never use special characters and the total length is between 8 to 10 characters   
additional info -  After the uppercase first letter then no other uppercase letters,  Other than the last two or four digits no other digits are used. 

In your above example %3,7i[0-9a-f]    % is wild   3,7i[0-9a-f] = anything from the second char through the 7th can be 0123456789 abcdefABCDEF.   But I am having a hard time understanding how to exclude any digits other than the last two or four AND [0-9a-f]  looks like I want only letters a-f.  Dont I want it to be [0-9a-z]?   or is "f" just a symbol that means a-z?


I have this reference
%1,2in- between 1 and 2 characters long of digits, lower or uppercase letters
%[chars] - exactly 1 of the characters between [ and ] (e.g. either a c, h, a, r, or s)
%1,3[chars] - between 1 and 3 of the characters between [ and ]
%[0-9a-f] - exactly 1 of these characters: 0123456789abcdef
%2i[0-9a-f] - exactly 2 of these characters: 0123456789abcdefABCDEF

So If I wanted to exclude all digits (and special) other than the last four  I could write  %3,7i[a-f]?





Title: Re: using btcrecover. Need help with tokens
Post by: jbeck on July 04, 2019, 05:08:18 PM
I changed the token to
^%A            first letter is uppercase
%2,4d$        last two or four is number
%3,7[a-f]      I omitted the (i) forcing search on just lower case and omitted (0-9) because there will not be any digits.

Running this just gave me more possible combinations.  Why am I off track?


Title: Re: using btcrecover. Need help with tokens
Post by: keychainX on July 04, 2019, 06:12:04 PM
I changed the token to
^%A            first letter is uppercase
%2,4d$        last two or four is number
%3,7[a-f]      I omitted the (i) forcing search on just lower case and omitted (0-9) because there will not be any digits.

Running this just gave me more possible combinations.  Why am I off track?

Have you tried hashcat?

You may simply use a mask attack and you can use multi gpu which will increase speed alot compared to btcrecover.

BTC recover is not your first choice if you dont have an idea of the password, only length

/KX


Title: Re: using btcrecover. Need help with tokens
Post by: HCP on July 04, 2019, 11:02:20 PM
Instead of the "[chars]" token, I would think you would want to use:
%ia - a “case-insensitive” version of %a: a single lower or uppercase letter


Code:
^%A
%3ia%4d$ %4ia%3,4d$ %5ia%2,4d$ %6ia%2,3d$ %7ia%2d$

Then run btcrecover using the --max-tokens 2 and --min-tokens 2 arguments. This will force it to use all the combinations as listed. This should create combinations that start with 1 UPPER case letter... then have 3-7 UPPER or lower case letters... then 2-4 digits... and it should only produce passwords which are 8-10 characters long.


Title: Re: using btcrecover. Need help with tokens
Post by: bob123 on July 05, 2019, 07:25:44 AM
In your above example %3,7i[0-9a-f]    % is wild   3,7i[0-9a-f] = anything from the second char through the 7th can be 0123456789 abcdefABCDEF.   But I am having a hard time understanding how to exclude any digits other than the last two or four AND [0-9a-f]  looks like I want only letters a-f.  Dont I want it to be [0-9a-z]?   or is "f" just a symbol that means a-z?

My mistake, yes. a-f means from a to f.
a-z is what i intended to write.



So If I wanted to exclude all digits (and special) other than the last four  I could write  %3,7i[a-f]?

%3,7i[a-z], yes.