There is probably a way to recover the damaged wallet.dat. I think you can try starting up Bitcoin-Qt from a command line adding -salvagewallet as described here:
https://bitcointalksearch.org/topic/m.1307828Did you try -salvagewallet (command-line option, which moves any existing wallet.dat
to wallet.{timestamp}.dat and then attempts to salvage public/private
keys and master encryption keys (if the wallet is encrypted) into
a new wallet.dat. This should only be used if your wallet becomes
corrupted, and is not intended to replace regular wallet backups.)?
Make a backup of your wallet.dat before anyway!
Dia
If that doesn't work, you might try looking into a Python program called pywallet.pl. Apparently it provides tools for manipulating wallet.dat files. I'm really not an expert on recovering damaged wallet.dat files. Perhaps someone with more expertise in that area than me will stop by and help out.
If I was experiencing the issue, what I would probably do is:
Create a list of private keys from the damaged wallet.dat in Bitcoin-Qt
Shut down Bitcoin-Qt
Create a temporary wallet at
https://blockchain.info/wallet Use blockchain.info's "import private key" functionality to import the private keys of all the addresses listed above.
Move the wallet.dat out of the bitcoin data directory and restart Bitcoin-Qt so it creates a brand new undamaged wallet.dat
Send all the bitcoins from the blockchain.info wallet to my new Bitcoin-Qt wallet.
To get a list of private keys:
Click on the "Help" menu in Bitcoin-Qt
Select (click on) "Debug window"
In the debug window, click "Console"
If your wallet is encrypted, enter the following into the Console:
walletpassphrase YOUR_PASSWORD_HERE 600
Replacing YOUR_PASSWORD_HERE with your actual password. This will unlock your wallet for 10 minutes (600 seconds).
To get your private keys, you'll need to enter the following into the console:
dumpprivkey BITCOIN_ADDRESS
Run it multiple times, once for each bitcoin address in the list I provided above replacing BITCOIN_ADDRESS with one of the bitcoin addresses each time.
This will respond with your private key (it will start with either a 5, K, or L). Do not give this private key to anyone. With it they can take or spend your bitcoins. This is the private key that you'll need to import into your temporary blockchain.info wallet.
If any of the addresses report
Private key for address 1bitcoin_address_here is not known (code -4) then either that part of the wallet is damaged beyond the ability for Bitcoin-Qt to access the private key, or I've somehow accidentally provided you with an incorrect bitcoin address. Either way, those bitcoins won't be recoverable via this method (perhaps pywallet would fare better in those situations).
If this solution is satisfactory and you plan on using it, then let me know and I'll try to get you a list of addresses that are associated with the bitcoins that were initially received at 1BX3a8LG8c4MhmDf7S8srfEpvyywUkqjJQ and that still have a balance associated.