Pages:
Author

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

legendary
Activity: 1148
Merit: 1018
is your script compatible with Multibit?

Btcrecover supports Multibit.

Does this new python password recovery tool bypass the RPC to make it way faster?

Btcrecover (written in Python) doesn't use the Bitcoin RPC API. With Bitcoin Core wallets, on a single core CPU it's around 15% slower. On a machine with more than one CPU core it's faster. There's also experimental GPU support which makes it much faster, if it works at all...

For Armory, it's exactly the same speed (because it uses the Armory library) except that it can use multiple CPU cores which again makes it faster.

For Multibit (classic) and Electrum, it's quite a bit faster than any of the wallet types above because these two wallets unfortunately don't use any key stretching...

Btcrecover seems the very best password recovery tool, the tool set is impressive. Did anyone go through the code to check that it doesn't do anything malicious?
full member
Activity: 154
Merit: 100
You're welcome to PM me if you'd like. Please be as detailed as you can (without the actual words in your password though). If you include a couple of examples of complete passwords that btcrecover would guess, and a couple that it wouldn't guess, that would help.

In particular, are 1, 2 and 3 from above always in the same order, or can they be in any order? The one or two special characters you mentioned, do they only appear once, or can they appear more than once between different words? Or do they always appear between words?

Thanks, PM sent. 1,2,3 can be in any order, and will have the same special character in between and/or at the end.

If you read the PM, you'll understand, just do not want to expose this info in public Smiley

Thanks again!
hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
Thank you very much Chris for Btcrecover!

It is an amazing program, with lot of possibilities, which will suite every weird password around Smiley

I have forgotten a complex password, which is constructed from:

1.
2. word1, word2, Word1 or Word2
3. word3, word4, Word3 or Word4
4. in between of every word or/and at the end of the whole phrase I use one or two special characters.

I am having trouble defining the pattern in a single tokens.txt file. Could I possibly PM you with detailed info on the pattern, so you would probably help me?

Thanks in advance! Have to say, your software is a peace of art!

You're welcome to PM me if you'd like. Please be as detailed as you can (without the actual words in your password though). If you include a couple of examples of complete passwords that btcrecover would guess, and a couple that it wouldn't guess, that would help.

In particular, are 1, 2 and 3 from above always in the same order, or can they be in any order? The one or two special characters you mentioned, do they only appear once, or can they appear more than once between different words? Or do they always appear between words?
full member
Activity: 154
Merit: 100
Btcrecover (written in Python) doesn't use the Bitcoin RPC API. With Bitcoin Core wallets, on a single core CPU it's around 15% slower. On a machine with more than one CPU core it's faster. There's also experimental GPU support which makes it much faster, if it works at all...

For Armory, it's exactly the same speed (because it uses the Armory library) except that it can use multiple CPU cores which again makes it faster.

For Multibit (classic) and Electrum, it's quite a bit faster than any of the wallet types above because these two wallets unfortunately don't use any key stretching...

Thank you very much Chris for Btcrecover!

It is an amazing program, with lot of possibilities, which will suite every weird password around Smiley

I have forgotten a complex password, which is constructed from:

1.
2. word1, word2, Word1 or Word2
3. word3, word4, Word3 or Word4
4. in between of every word or/and at the end of the whole phrase I use one or two special characters.

I am having trouble defining the pattern in a single tokens.txt file. Could I possibly PM you with detailed info on the pattern, so you would probably help me?

Thanks in advance! Have to say, your software is a peace of art!
hero member
Activity: 672
Merit: 504
a.k.a. gurnec on GitHub
is your script compatible with Multibit?

Btcrecover supports Multibit.

Does this new python password recovery tool bypass the RPC to make it way faster?

Btcrecover (written in Python) doesn't use the Bitcoin RPC API. With Bitcoin Core wallets, on a single core CPU it's around 15% slower. On a machine with more than one CPU core it's faster. There's also experimental GPU support which makes it much faster, if it works at all...

For Armory, it's exactly the same speed (because it uses the Armory library) except that it can use multiple CPU cores which again makes it faster.

For Multibit (classic) and Electrum, it's quite a bit faster than any of the wallet types above because these two wallets unfortunately don't use any key stretching...
sr. member
Activity: 308
Merit: 250
thrasher.
Does this new python password recovery tool bypass the RPC to make it way faster?
legendary
Activity: 910
Merit: 1000
★YoBit.Net★ 350+ Coins Exchange & Dice
so 2 years on... did you ever get the password :p ?
newbie
Activity: 2
Merit: 0
is your script compatible with Multibit?
hero member
Activity: 854
Merit: 502
Very nice thread. Mark it and i hope i wont visit here searching for my own mistake.
newbie
Activity: 56
Merit: 0
Lost password is a troublesome thing, and God bless you.
newbie
Activity: 28
Merit: 0
Wow... It took you two years to fix this problem???  Huh
copper member
Activity: 80
Merit: 10
Do you remember the day and hour the last time you had access to your BTC's?
Then I suggest you find a very good hypnotherapist that will recall all the information from your mind! javascript:void(0); If it works, don't forget me as I got Goxed!!! javascript:void(0); Best luck!!!
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
net/http: warning: Content-Type did not set; using application/x-www-form-urlencoded

and then a password attempt.  is it working?  it's runing through the passwords, but not sure if its actually applying them.

Yes, that's fine.  The wallet doesn't care about the content-type.  If you want to see everything it's doing in detail then make this change (add the middle line):

Code:
  response = Net::HTTP.new("localhost", $rpc_port).request(request)
  puts request.body, response.body
  if response.code == "401" ; puts "Incorrect RPC user/pass" ; exit 1 ; end
sr. member
Activity: 267
Merit: 250
Stan the Man!
I just wanted to share that I fixed it. For god's sake.

I took out the hard disk of my old pc, connected it to another one and took the wallet.dat file. I then imported it into blockchain. It asked for my password, I typed the password that I knew was connected to that wallet.dat file but did not work in my new computer and it worked.

Thanks for all the tips!

Best,

Clochard

This got me to thinking.  I cloned my wallet VM a while back, and had been working off of the clone.   So, i shut down the clone, fired up the original, and there's my unencrypted MyriadCoin wallet.  imagine that!!  lol

thanks again Revalin for your help.  didn't need the script after all.
member
Activity: 99
Merit: 10
I just wanted to share that I fixed it. For god's sake.

I took out the hard disk of my old pc, connected it to another one and took the wallet.dat file. I then imported it into blockchain. It asked for my password, I typed the password that I knew was connected to that wallet.dat file but did not work in my new computer and it worked.

Thanks for all the tips!

Best,

Clochard
sr. member
Activity: 267
Merit: 250
Stan the Man!
here's one that is probably very easy to figure out.  i know the first 7 characters of the passphrase, and have some combination of 4-8 numbers on the end, no spaces anywhere.

Start myraidcoind like this:
Code:
myriadcoind -rpcpass=some-password

Then run this script:
Code:
#!/usr/bin/ruby -w
require 'net/http'
require 'json'

start = "passphrase"
min_digits = 4
max_digits = 8

$rpc_user = ""
$rpc_pass = "some-password"
$rpc_port = 10889

def test(passphrase)
  puts passphrase.inspect
  request = Net::HTTP::Post.new("/")
  request.basic_auth $rpc_user, $rpc_pass
  request.body = { method:"walletpassphrase", params:[passphrase, 1] }.to_json
  response = Net::HTTP.new("localhost", $rpc_port).request(request)
  if response.code == "401" ; puts "Incorrect RPC user/pass" ; exit 1 ; end
  ret = JSON.parse response.body
  if ret["error"].nil? ; puts "\nFound it! #{passphrase.inspect}" ; exit ; end
  return if ret["error"]["code"] == -14 # wrong passphrase
  raise "WTF? #{ret.inspect}"
end

(min_digits..max_digits).each do |digits|
  (10**digits).times do |i|
    test("%s%0#{digits}d" % [start, i])
  end
end

puts "No luck."
exit 1

It'll take about 1 day for 6 digits, 2 weeks for 7, 3 months for 8.

thanks Revalin.  i could swear it's 4 digits on the end.  

i'll give it a go and let you know how it turns out.

It's returning this error:

net/http: warning: Content-Type did not set; using application/x-www-form-urlenc
oded

and then a password attempt.  is it working?  it's runing through the passwords, but not sure if its actually applying them.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
For everyone asking about Multibit: Sorry, I don't have time to write an interface for it right now.  If someone creates a command line or JSON-RPC API I can use to test a password I'll be happy to plug my script into it.

Here is the JSON-RPC for recovering Multibit passwords.
This in only for Multibit, i'm working on Armory as well.

https://dl.dropboxusercontent.com/u/71434563/rpc-service.jar

This is interesting, but I don't want to touch it unless I can build it myself.  Can you post the source?
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
here's one that is probably very easy to figure out.  i know the first 7 characters of the passphrase, and have some combination of 4-8 numbers on the end, no spaces anywhere.

Start myraidcoind like this:
Code:
myriadcoind -rpcpass=some-password

Then run this script:
Code:
#!/usr/bin/ruby -w
require 'net/http'
require 'json'

start = "passphrase"
min_digits = 4
max_digits = 8

$rpc_user = ""
$rpc_pass = "some-password"
$rpc_port = 10889

def test(passphrase)
  puts passphrase.inspect
  request = Net::HTTP::Post.new("/")
  request.basic_auth $rpc_user, $rpc_pass
  request.body = { method:"walletpassphrase", params:[passphrase, 1] }.to_json
  response = Net::HTTP.new("localhost", $rpc_port).request(request)
  if response.code == "401" ; puts "Incorrect RPC user/pass" ; exit 1 ; end
  ret = JSON.parse response.body
  if ret["error"].nil? ; puts "\nFound it! #{passphrase.inspect}" ; exit ; end
  return if ret["error"]["code"] == -14 # wrong passphrase
  raise "WTF? #{ret.inspect}"
end

(min_digits..max_digits).each do |digits|
  (10**digits).times do |i|
    test("%s%0#{digits}d" % [start, i])
  end
end

puts "No luck."
exit 1

It'll take about 1 day for 6 digits, 2 weeks for 7, 3 months for 8.
sr. member
Activity: 267
Merit: 250
Stan the Man!
here's one that is probably very easy to figure out.  i know the first 7 characters of the passphrase, and have some combination of 4-8 numbers on the end, no spaces anywhere.

i tried using this script, but i'm sure it's going about it the wrong way.  I made a myriadcoind and the script runs, but looks like it would take forever and a day to actually find the password.  lil help?   thanks.

Code:
#!/usr/bin/ruby -w

passphrase = "Abcdefg12345678"

def test(phrase)
  print phrase, "\t"
  system("./myriadcoind", "walletpassphrase", phrase, "20")
  case $?.exitstatus
  when 0
    puts "Found it!  #{phrase}"
    exit 0
  when 127
    puts "myriadcoind not found in current dir"
    exit 1
  end
end

def scramble(passphrase)
  characters = " !\"\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
  list = []

  # transpose adjacent chars
  (passphrase.length - 1).times do |i|
    testphrase = passphrase.dup
    testphrase[i] = passphrase[i+1]
    testphrase[i+1] = passphrase[i]
    list << testphrase
  end

  # delete one char
  passphrase.length.times do |i|
    testphrase = passphrase.dup
    testphrase = testphrase[0,i] + testphrase[(i+1)..-1]
    list << testphrase
  end

  # substitutute one char
  passphrase.length.times do |i|
    characters.chars.each do |c|
      testphrase = passphrase.dup
      testphrase[i] = c
      list << testphrase
    end
  end

  # insert one char
  (passphrase.length + 1).times do |i|
    characters.chars.each do |c|
      testphrase = passphrase.dup
      testphrase.insert(i, c)
      list << testphrase
    end
  end

  return list.uniq
end

list1 = scramble(passphrase)
list1.each { |i| test i }
list1.each { |i| scramble(i).each { |j| test j }}

puts "No luck."
exit 1
member
Activity: 99
Merit: 10
Cool thanks, that might be an option to try!

First thing I will do now this weekend is to take out the hard disk of my old computer and connect it to another computer and see if I can launch the Bitcoin client from there and if there my password still works.

If not, I will take other steps such as the password recovery tool.

Just in case I am completely confused, I already wrote down the password  I think it is (pretty certain about it) plus some extra words and combinations I tend to use in other passwords, so I can try many possibilities.

I keep you updated about the process! Many thanks!

Best,

Clochard
Pages:
Jump to: