Pages:
Author

Topic: Encrypted wallet.dat, lost password, any solutions? - page 27. (Read 213600 times)

newbie
Activity: 11
Merit: 0
You need to identify the character set used to encode the password. It may be different than the character set used to encode the font displayed by the terminal program and different from the character sett used to store the text of your program in a file.

Thank you for your help, 2112.

However, if I am honest I do only have a faint idea of how to accomplish what you describe. Does the bitcoin client use different encodings on different platforms? The wallet was encriptded on a German Windows 7 installation; for running Revalins script I now use a German Ubuntu 12.04.

Do you have a concrete strategy how I could get Revalins script running using all characters on my keyboard?

Thank you
newbie
Activity: 13
Merit: 0
Hey! I have a very similar issue which I posted about here https://bitcointalksearch.org/topic/blockchaininfo-wallet-desktop-sync-stuck-at-getting-balances-153452.

I set up a BlockChain.info Wallet online. I gave it a 'main' password. I know this main password. The problem is I set the 'second password' which in effect performs double encryption, and I thought I knew that password! But it doesn't work  Shocked

Now, I've got 15 BTC in that wallet so it's definitely worth it for me to get back. To recap, I know the initial password that encrypted, and I'm confident I know most of the second password.

My question is how do I go about brute forcing that? I have a .aes.json file with the priv keys that are backed up, but I have no idea on how to go about brute forcing it.

I read the whole post and there are some awesome Ruby scripts, but they all target bitcoind, and I don't have the funds in a local wallet.

Any help?
legendary
Activity: 2128
Merit: 1073
Does anyone have a solution for this problem? It could quite possibly be the case that my password contains umlauts since these are close on my keyboard to some of the characters i assume are contained in the password.
You need to identify the character set used to encode the password. It may be different than the character set used to encode the font displayed by the terminal program and different from the character sett used to store the text of your program in a file.

http://en.wikipedia.org/wiki/Western_Latin_character_sets_(computing)

Those are your basic choices. Note that the Unicode column can have several different encodings:  UTF-7, UTF-8, UTF-16LE, UTF-16BE or UTF-32 (unlikely, but possible; and it still has big-endian and little-endian variants).

Good luck.
legendary
Activity: 1001
Merit: 1005
Just a thought. If you send me the wallet.dat and password fragments, I can try some stuff here. Will you trust me? Cheesy Depends on how many coins are there

If reward is generous, I will try sending you code snippets.. Give more details. What type of wallet. Whats the length of passwd, what tool did you use to generate the password? Im guessing its a low entropy password if you remember part of it..

Tldr the prev posts in this thread yet..
member
Activity: 60
Merit: 10
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.

Code:
#!/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

My issue is I know the middle of the password, and I have digits on either end. I have no Ruby experience (or Linux) but I got your script working, however, I cannot figure out how to get it to input digits onto either side of my known password. Please help!
newbie
Activity: 11
Merit: 0
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 ...

Hi again,

I keep having problems with Revalins script and the german umlaute (Ä Ö Ü). I have added them to brute.rb and then let the script try to find the correct password - no luck so far. Looking at the stream of passwords brute.rb tried I recognized that it always displayed question marks instead of the umlauts. Changing the character encoding of the terminal to 'Western" changed that. However, I remained suspicious. I let bitcoin create a new wallet (whilst renaming the one I do not know the password of) and encrypted this wallet with a password containing umlauts. If I now let this script run it does not find the correct password, no matter what character encoding I am using on the terminal.

Does anyone have a solution for this problem? It could quite possibly be the case that my password contains umlauts since these are close on my keyboard to some of the characters i assume are contained in the password.

Thanks
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
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.

Code:
#!/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.

Code:
#!/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 ...
riX
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 Cheesy



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.


Code:
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.  Smiley
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 Cheesy

hero member
Activity: 560
Merit: 500
Revalin Please check PM
Pages:
Jump to: