Bitcoin Forum
November 05, 2024, 03:31:55 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »
  Print  
Author Topic: Encrypted wallet.dat, lost password, any solutions?  (Read 213589 times)
Revalin
Hero Member
*****
Offline Offline

Activity: 728
Merit: 500


165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g


View Profile
November 30, 2013, 08:44:09 AM
 #241

Will this work with feathercoin wallets?

The scripts should work with most wallets derived from the original Bitcoin program.  For feathercoin try starting it like this:  feathercoin-qt -server -rpcpassword=some-password -rpcport=8332

Then the scripts should work.  There are more instructions here to get you started: https://bitcointalk.org/index.php?topic=85495.msg3746636#msg3746636

      War is God's way of teaching Americans geography.  --Ambrose Bierce
Bitcoin is the Devil's way of teaching geeks economics.  --Revalin 165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 10:26:59 AM
 #242

Will this work with feathercoin wallets?

The scripts should work with most wallets derived from the original Bitcoin program.  For feathercoin try starting it like this:  feathercoin-qt -server -rpcpassword=some-password -rpcport=8332

Then the scripts should work.  There are more instructions here to get you started: https://bitcointalk.org/index.php?topic=85495.msg3746636#msg3746636

Hi Revalin (or anyone else reading) I wonder if it would be possible for you to write a step by step guide from a total noobs point of view on how to get this up and running on Windows 7 for an alternative coin? Like I said in my earlier post I'm attempting to get into my Protoshares Wallet, but even after reading this thread I'm really not sure where to start.

I have the password which is a 12 letter random sequence lower case and numbers written down and I've obviously mistyped,missed or added an extra digit.

I'm willing to donate 0.25 BTC to anyone that can guide me through this step by step and successfully help me gain access to my wallet.
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 10:53:22 AM
 #243

I can work on producing a guide with pictures over the next ~hour if you can confirm that would receive the bounty.
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 10:56:15 AM
 #244

I can work on producing a guide with pictures over the next ~hour if you can confirm that would receive the bounty.

Hi, If it gains me access to my wallet the bounty is yours, thanks for the reply!
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 11:25:16 AM
 #245

1) Go to http://rubyinstaller.org/downloads/ and download Ruby 2.0.0-p353. Once the file has downloaded, run the installer. Restart your computer.
 
2) COPY the code below and paste it into Notepad. Save the file as “brute.rb” (including the quotation marks – this is so Notepad doesn't automatically save it as a .txt.) Make sure the file is in the same folder as your protoshares-qt.exe file (this is for convenience later).

The following code is modified very slightly from the original code written by Revalin, but since he doesn't charge for his services, I hope he doesn't mind me using his code for this tutorial.

Code:
#!/usr/bin/ruby
require 'base64'
require 'digest/sha2'
require 'open3'
require 'openssl'
# Put your best guess at your passphrase here
passphrase = 'Oops I forgot'
# The full path to your Protoshares wallet file
wallet_file = ''
# Where to find Protoshares-qt client.
$protoshares = ''
def test(phrase)
 $cipher.reset
 $cipher.key = Digest::SHA256.digest(Digest::SHA256.digest(phrase))
 $cipher.update $seed
 $cipher.final
 puts phrase
 i,o,t = Open3.popen2e($protoshares, "-o", "getseed")
 i.puts(phrase)
 i.close
 if t.value.success?
  puts "Found it! #{phrase}"
  exit
 end
rescue OpenSSL::Cipher::CipherError
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
wallet = File.read(wallet_file)
seed_base64 = wallet.match(/'seed': '([^']+)'/).captures.first
$seed = Base64.decode64(seed_base64)
$cipher = OpenSSL::Cipher.new('aes-256-cbc')
$cipher.iv = $seed.slice!(0,16)
Dir.chdir File.dirname $protoshares
list1 = scramble(passphrase)
list1.each { |i| test i }
list1.each { |i| scramble(i).each { |j| test j }}
puts "No luck."
exit 1

4) EDIT brute.rb, filling in these values:
1. At the top; where the code says “oops I forgot”, edit this to be the password you believe should work for your wallet.
2. Inside the quotes after “$wallet_file =”, insert the full path to your wallet.dat file for protoshares-qt (e.g. C:\Protoshares\wallet.dat)
3. Inside the quotes after “$protoshares”, insert the full path to the protoshares-qt.exe file. (e.g. C:\Protoshares\protoshares-qt.exe)

5) Go to the start menu and choose “run...”

6) Type “cmd” and press enter

7) In the big black window that appears, type “cd”, followed by a space, and then the full path to the folder that proshares-qt.exe is in. E.g. “cd C:\Protoshares\”)

8) Type the following, then press enter.

Code:
protoshares-qt -server -rpcpassword=some-password -rpcport=3838

9) Finally, type brute.rb and wait.
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 11:27:35 AM
 #246

Thanks I will give this a try and hopefully it will work Smiley
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 11:35:24 AM
 #247

By the way, if your command prompt isn't recognising "ruby" as a command, try going to your start menu, browsing to the folder for Ruby, and launching "Start Command Prompt with Ruby". Smiley
user0244
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
November 30, 2013, 11:44:37 AM
 #248

Will this work with feathercoin wallets?

The scripts should work with most wallets derived from the original Bitcoin program.  For feathercoin try starting it like this:  feathercoin-qt -server -rpcpassword=some-password -rpcport=8332

Then the scripts should work.  There are more instructions here to get you started: https://bitcointalk.org/index.php?topic=85495.msg3746636#msg3746636

But there isn't a daemon service with the feathercoin wallet. I can see one with a litecoin / bitcoin wallet

So i open up the ruby software and paste in ?
feathercoin-qt -server -rpcpassword=some-password -rpcport=8332
I just get syntax error
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 11:51:06 AM
 #249

So i open up the ruby software and paste in ?
feathercoin-qt -server -rpcpassword=some-password -rpcport=8332
I just get syntax error
Nope, not the Ruby software, the Windows command prompt or Linux terminal.
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 12:08:59 PM
 #250

1) Go to http://rubyinstaller.org/downloads/ and download Ruby 2.0.0-p353. Once the file has downloaded, run the installer. Restart your computer.
 
2) COPY the code below and paste it into Notepad. Save the file as “brute.rb” (including the quotation marks – this is so Notepad doesn't automatically save it as a .txt.) Make sure the file is in the same folder as your protoshares-qt.exe file (this is for convenience later).

The following code is modified very slightly from the original code written by Revalin, but since he doesn't charge for his services, I hope he doesn't mind me using his code for this tutorial.

Code:
#!/usr/bin/ruby
require 'base64'
require 'digest/sha2'
require 'open3'
require 'openssl'
# Put your best guess at your passphrase here
passphrase = 'Oops I forgot'
# The full path to your Protoshares wallet file
wallet_file = ''
# Where to find Protoshares-qt client.
$protoshares = ''
def test(phrase)
 $cipher.reset
 $cipher.key = Digest::SHA256.digest(Digest::SHA256.digest(phrase))
 $cipher.update $seed
 $cipher.final
 puts phrase
 i,o,t = Open3.popen2e($protoshares, "-o", "getseed")
 i.puts(phrase)
 i.close
 if t.value.success?
  puts "Found it! #{phrase}"
  exit
 end
rescue OpenSSL::Cipher::CipherError
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
wallet = File.read(wallet_file)
seed_base64 = wallet.match(/'seed': '([^']+)'/).captures.first
$seed = Base64.decode64(seed_base64)
$cipher = OpenSSL::Cipher.new('aes-256-cbc')
$cipher.iv = $seed.slice!(0,16)
Dir.chdir File.dirname $protoshares
list1 = scramble(passphrase)
list1.each { |i| test i }
list1.each { |i| scramble(i).each { |j| test j }}
puts "No luck."
exit 1

4) EDIT brute.rb, filling in these values:
1. At the top; where the code says “oops I forgot”, edit this to be the password you believe should work for your wallet.
2. Inside the quotes after “$wallet_file =”, insert the full path to your wallet.dat file for protoshares-qt (e.g. C:\Protoshares\wallet.dat)
3. Inside the quotes after “$protoshares”, insert the full path to the protoshares-qt.exe file. (e.g. C:\Protoshares\protoshares-qt.exe)

5) Go to the start menu and choose “run...”

6) Type “cmd” and press enter

7) In the big black window that appears, type “cd”, followed by a space, and then the full path to the folder that proshares-qt.exe is in. E.g. “cd C:\Protoshares\”)

Cool Type the following, then press enter.

Code:
protoshares-qt -server -rpcpassword=some-password -rpcport=3838

9) Finally, type brute.rb and wait.


Hi thanks for your help so far couple of things I wanted to check.

I edited the file at the start while it was still in txt format and then saved to "brute.rb" is this correct? I couldn't find a way to edit it once I'd saved it as "brute.rb"

The part in the CMD window where you type rpcpassword=some-password what do I need to type in here? do I have to create a .conf file in the same file as the wallet.dat?

On the last step, I've tried using windows CMD and the Ruby version at step 8 I press enter and the protoshares-qt opens when I then type brute.rb in the CMD window and press enter I get the following message

C:\"filepath"\brute.rb:62:in '<main>' : undefined method 'captures' for nil:NILClass <NoMethodError>
user0244
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
November 30, 2013, 12:32:01 PM
 #251

So i open up the ruby software and paste in ?
feathercoin-qt -server -rpcpassword=some-password -rpcport=8332
I just get syntax error
Nope, not the Ruby software, the Windows command prompt or Linux terminal.

I just get another error, not  recognized as an internal or external command etc
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 12:34:27 PM
 #252

So i open up the ruby software and paste in ?
feathercoin-qt -server -rpcpassword=some-password -rpcport=8332
I just get syntax error
Nope, not the Ruby software, the Windows command prompt or Linux terminal.

I just get another error, not  recognized as an internal or external command etc

If you follow the path I'm following I imagine it will be much the same apart from the scrypt where you need to substitute protoshares for litecoin I would imagine
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 12:35:02 PM
 #253

So i open up the ruby software and paste in ?
feathercoin-qt -server -rpcpassword=some-password -rpcport=8332
I just get syntax error
Nope, not the Ruby software, the Windows command prompt or Linux terminal.

I just get another error, not  recognized as an internal or external command etc
You need to navigate to the directory first.

The folder you're currently in is shown before the cursor, i.e.
C:\Users\John> _

If you type "cd bitcoins", your current directory would be set to "C:\Users\John\bitcoins". To go back up a directory, type "cd ..", i.e. to "C:\Users\".

You need to set your current directory to the folder where feathercoin-qt.exe is located. If it helps, on my system that folder is C:\Program Files (x86)\Feathercoin.

SP4RK7, I've tested it and I get a similar error. Currently trying to figure out what I've done wrong, will post in here soon.
guitarplinker
Legendary
*
Offline Offline

Activity: 1694
Merit: 1024



View Profile WWW
November 30, 2013, 01:25:17 PM
 #254

Will this work with feathercoin wallets?
I know feathercoins are worth peanutes compared to bitcoin and litecoins
But i have 2100 in my wallet and it's all i have!
Of course if i can get them back again i can trade some of them for bitcoin, litecoin and donate

I have a good idea of my password, infact i cannot believe i have screwed up
Must of mistyped something, been trying for 5 hours straight entering combinations of my passwords

I am using windows 7, downloaded the ruby program but really don't have a clue

Any help will be rewarded!, thanks
In the script he gave us, enter what you think your password is, and remove characters from the characters box. Here's the script as well:

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

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

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
  end
end

# transpose adjacent chars
(passphrase.length - 1).times do |i|
  testphrase = passphrase.dup
  testphrase[i] = passphrase[i+1]
  testphrase[i+1] = passphrase[i]
  test testphrase
end
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 03:52:34 PM
 #255

I seem to have managed to get it working kind of by putting one of Revalins scrypts in from page 3 think it was the second one he posted.

I changed bitcoind to protoshares-qt

The only problem I have now is I type the command in the CMD window which opens the protoshares-qt in server mode but when I type brute.rb it tries to open another instance of the protoshares-qt it is slowly going through possible passwords but I have to shut the protoshares-qt it is trying to open every time it tries a password.

Does this help?
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 03:58:14 PM
 #256

I can't find the script you mean. Could you repost it in [ code ] tags?
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 04:02:33 PM
 #257

Sorry my mistake it's page 2, Revalins 3rd post on that page. It starts out 'This is an updated version'
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 04:11:13 PM
 #258

The problem is that, as far as I can see, there isn't a bitcoind (daemon) equivalent for protoshares, so the GUI launches every time it's called. I'll keep doing more research for you.
SP4RK7
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
November 30, 2013, 04:13:25 PM
 #259

The problem is that, as far as I can see, there isn't a bitcoind (daemon) equivalent for protoshares, so the GUI launches every time it's called. I'll keep doing more research for you.

Thanks much appreciated.

I will sit here repeatedly closing it down hundreds of times and hopefully it may hit the password Smiley
KieranJones1
Member
**
Offline Offline

Activity: 126
Merit: 10


View Profile
November 30, 2013, 04:16:50 PM
 #260

Haha - in all seriousness, though, Revalin predicted that script would take approximately 30 days of 10 combinations a second to crack it, so you may struggle if you have to manually do that!
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!