Another custom version: in this case he knows the start and end of the passphrase, but there are some words missing in the middle. This will try some of the most common English words in a classic dictionary attack.
The words are all lowercase, no punctuation, and run together without spaces.
Fill in the "start" and "finish" parts of the passphrase, choose how common of words you want, fill in your special words in dictionary_extra, then run it. I recommend using dictionary_size=5000 and max_words=2 for the first run, then 500 and 3 for the second run. 5000 and 3 will take far too long.
#!/usr/bin/ruby -w
start = "pass" # This is the part at the start that you remember with 100% certainty
finish = "word" # The end, which you also remember with 100% certainty
dictionary_size = 5000 # The number of common English words to load from the online dictionary
dictionary_extra = %w{one two three} # Some extra words which aren't in the dictionary
max_words = 2 # The maximum number of words to try not including the start and finish parts
max_word_length = 8 # Use only short words
require 'open-uri'
def test(phrase)
printf "%40s ", phrase
system("./bitcoind", "walletpassphrase", phrase, "20")
case $?.exitstatus
when 0
puts "Found it! #{phrase}"
exit 0
when 127
puts "bitcoind not found in current dir"
exit 1
when nil
puts "Aborting"
exit 1
end
end
dictionary = dictionary_extra
dictionary += open('http://www.wordfrequency.info/free.asp?s=y') do |stream|
stream
.read
.split('')
.map{ |i| i.scan(%r{(.*) | }).flatten[1] }[7,5000]
end
dictionary.reject!{|i| i.match(/[^a-z]/)} # Exclude words with punctuation
dictionary.select!{|i| i.length <= max_word_length } # Only short words
dictionary.map!(&:downcase) # Even proper nouns are lower case
dictionary.uniq! # Filter out any duplicates
dictionary = dictionary[0,dictionary_size] # only use this many words
(0..max_words).each do |num_words|
dictionary.permutation(num_words) do |perm|
test(start + perm.join + finish)
end
end
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
Here's another version customized for a specific request. In this case he knows the start and end of his passphrase, but he forgot the number in between except that it definitely doesn't have any zeroes. Just edit in the parts you know where it says "pass" and "word".
This may be useful for anyone in a "missing number" situation. You can set the start or end to "" (empty string) if the mystery number is at the end or beginning, and you can add 0 to the list of digits if yours might have a zero.
#!/usr/bin/ruby -w
start = "pass"
finish = "word"
def test(phrase)
print phrase, "\t"
system("./bitcoind", "walletpassphrase", phrase, "20")
case $?.exitstatus
when 0
puts "Found it! #{phrase}"
exit 0
when 127
puts "bitcoind not found in current dir"
exit 1
when nil
puts "Aborting"
exit 1
end
end
(0..20).each do |length|
[1,2,3,4,5,6,7,8,9].repeated_permutation(length) do |digits|
test(start + digits.join + finish)
end
end
newbie
Activity: 11
Merit: 0
Hi everyone,
I have exactly the same problem as described here - forgot the password for my wallet. I have tried out Revalins script but sso far I had no luck. There are two issues that possibly prevent me from succesfully using Revalin's script:
1. I am running the script on the laptop I also use for my work (I do not have another computer at the moment. Therefore I can let the script run only at night and on weekends, but there is no possibility to resume the script at the point where it left off.)
2. I tried to add german umlauts (ä,ö,ü) to the character list used in the script, but somehow they were not correctly used.
For the reasons mentioned above I have two questions to Revalin and all other interested:
Would it be possible to implement a resume function (possibly using a protocol of the already tried-out combinations)?
Could you add german umlaut and special characters (Ä,Ö,Ü,ä,ö,ü,ß)?
Any help would be great!
I mangaged to solve my problems on my own:
The issue with the german umlauts seems to have to do with some encoding problems. It dissappeared when I used linux instead of Windows.
I am now running the script brute.rb on a virtual machine provided my Amazon using Linux. After registering for Amazon Web Services (AWS), you can use one of their smallest virtual machine instances ('micro') for free for one year. After starting the bitcoind, you just start the script like this:
ruby brute.rb > log.txt &
It then sends its output to log.txt and you can just logout. It takes quite some time, since the AWS micro instance is rather low on CPU power. An attempt to crack an 8 character password took about one week. However, it is absolutely free; you don't even have to pay for the electricity ...
sr. member
Activity: 326
Merit: 254
Please don't bump really old threads. Someone should split at the bump point, lock the original, and delete this post..
Why?
The information in the thread is not outdated, and splitting or creating a new thread for someone having the same issue months later would just create a lot of threads where the same information is repeated.
I get PM's about this thread several times every month, and have helped some people recover their wallets.
staff
Activity: 4284
Merit: 8808
Please don't bump really old threads. Someone should split at the bump point, lock the original, and delete this post..
legendary
Activity: 3472
Merit: 4801
. . . I have no idea what the passphrase is and I have no clue where to begin . . .
When someone says "I have no idea what the passphrase is and I have no clue where to begin" they usually still remember
something about the password.
Examples:
- Was it less than 4 characters?
- Was it more than 50 characters?
- Was there any punctuation in the password?
- Did it use any capital letters?
- Did it use any lowercase letters?
- Did it use any numbers?
- Did it include any real words?
- How did you create it? (mashed the keyboard? ran a random number generator? some other process?)
hero member
Activity: 938
Merit: 1002
I Lost the Passphrase to my Wallet it only have about 1 BTC is it even worth trying to recover? I have the Wallet.dat file however I have no idea what the passphrase is and I have no clue where to begin as the text document that had my passphrase in was destroyed in the multiple format incident... Should I just start over or try running the script that guy posted in the forum to try Brute Forcing it?
If you know absolutely nothing about the passphrase, it's not even worth trying for 1000 coins. However, you might know something about it without recognizing it, like possible length, characters used and whatnot.
As a side note, you might be able to partially recover the text document you mentioned even after formatting, if you haven't totally wiped the drive. Do you remember any other text in that document?
member
Activity: 81
Merit: 16
Crypto-Commodities are the People's Money!
I Lost the Passphrase to my Wallet it only have about 1 BTC is it even worth trying to recover? I have the Wallet.dat file however I have no idea what the passphrase is and I have no clue where to begin as the text document that had my passphrase in was destroyed in the multiple format incident... Should I just start over or try running the script that guy posted in the forum to try Brute Forcing it?
newbie
Activity: 11
Merit: 0
Hi everyone,
I have exactly the same problem as described here - forgot the password for my wallet. I have tried out Revalins script but sso far I had no luck. There are two issues that possibly prevent me from succesfully using Revalin's script:
1. I am running the script on the laptop I also use for my work (I do not have another computer at the moment. Therefore I can let the script run only at night and on weekends, but there is no possibility to resume the script at the point where it left off.)
2. I tried to add german umlauts (ä,ö,ü) to the character list used in the script, but somehow they were not correctly used.
For the reasons mentioned above I have two questions to Revalin and all other interested:
Would it be possible to implement a resume function (possibly using a protocol of the already tried-out combinations)?
Could you add german umlaut and special characters (Ä,Ö,Ü,ä,ö,ü,ß)?
Any help would be great!
sr. member
Activity: 394
Merit: 250
I really appreciate your kind help & patience with a Linux newb like my self , if I am able to get my password back I will send you 0.1BTC out of some 2.0Btc in that wallet
OMG. I wonder how much electricity you will burn to get those two BTC back. Sentimental value I guess?
full member
Activity: 180
Merit: 100
mistaken for gribble since 2011
Hello, I'm getting this error for every password attempt when running Revalin's script.
error: {"code":-32601,"message":"Method not found"}
On further investigation it seems that my version of bitcoind is ancient and I need to upgrade.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
No problem! I'm always glad to help.
hero member
Activity: 560
Merit: 500
Scripts running now Revalin.
Getting lot of passphrase was incorrect message as we would expect.
I really appreciate your kind help & patience with a Linux newb like my self , if I am able to get my password back I will send you 0.1BTC out of some 2.0Btc in that wallet
hero member
Activity: 560
Merit: 500