Skip to content

Commit

Permalink
Add derivation path to seed found dialogue, improve altcoin usage doc…
Browse files Browse the repository at this point in the history
…umentation
  • Loading branch information
3rdIteration committed Dec 11, 2020
1 parent 80869e1 commit f0a9f5d
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 4 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@
* [Descrambling 12 word seeds](docs/BIP39_descrambling_seedlists.md) (Using Tokenlist feature for BIP39 seeds via seedrecover.py)
* Wallet File password recovery for a range of wallets

## Using BTCRecover with Altcoins

By default, seedrecover.py will check common Bitcoin derivation paths for BIP39 wallets and common Ethereum derivation paths for Ethereum wallets.

If you are trying to use BTCRecover with a supported altcoin, you will need to specify that in the command line via the --coin argument. (eg: seedrecover.py --coin LTC)

[You can click here to view a list of the cryptos that are supported via the --coin argument, along with the derivation paths they check.](common-derivation-pathlists)

If your wallet used different derivation paths (perhaps to try a crypto that isn't officially supported), you want to search using addresses from multiple cryptos at once, or you just want to speed things up, you can edit these files, manually specify a single derivation path via --bip32-path or add your own derivation-pathlist file and use it via the --pathlist command.

**_If you want the tool to support a crypto that isn't listed above, please test that it works and submit a PR which includes a unit test for that coin and also any required code to accept the address format._**

## Setup and Usage Tutorials ##
Expand Down
2 changes: 1 addition & 1 deletion btcrecover/addressset.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# along with this program. If not, see http://www.gnu.org/licenses/


__version__ = "1.3.1-CryptoGuide"
__version__ = "1.4.0-CryptoGuide"

import struct, base64, io, mmap, ast, itertools, sys, gc, glob, math
from os import path
Expand Down
2 changes: 1 addition & 1 deletion btcrecover/btcrpass.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# TODO: put everything in a class?
# TODO: pythonize comments/documentation

__version__ = "1.3.0-Cryptoguide"
__version__ = "1.4.0-Cryptoguide"
__ordering_version__ = b"0.6.4" # must be updated whenever password ordering changes
disable_security_warnings = True

Expand Down
16 changes: 15 additions & 1 deletion btcrecover/btcrseed.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

# TODO: finish pythonizing comments/documentation

__version__ = "1.3.0-CryptoGuide"
__version__ = "1.4.0-CryptoGuide"

disable_security_warnings = True

Expand Down Expand Up @@ -954,6 +954,20 @@ def _verify_seed(self, arg_seed_bytes):
# print("Path: m/", current_path_index[0] - 2**31, "'/", current_path_index[1] - 2**31, "' Testing: ", binascii.hexlify(test_hash160), "against: ", binascii.hexlify(hash160),file=open("HashCheck.txt", "a"))

if test_hash160 in self._known_hash160s: #Check if this hash160 is in our list of known hash160s
global seedfoundpath
seedfoundpath = "m/"
for index in current_path_index:
if index > 100:
index -= 2 ** 31
seedfoundpath += str(index) + "'"
else:
seedfoundpath += str(index)

seedfoundpath += "/"

seedfoundpath += str(i)

print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), ": ***MATCHING SEED FOUND***, Matched on Address at derivation path:", seedfoundpath)
#print("Found match with Hash160: ", binascii.hexlify(test_hash160))
return True
return False
Expand Down
2 changes: 1 addition & 1 deletion create-address-db.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import sys,argparse, atexit
from os import path

__version__ = "1.3.1-CryptoGuide"
__version__ = "1.4.0-CryptoGuide"

if __name__ == "__main__":
print("Starting CreateAddressDB", __version__)
Expand Down

0 comments on commit f0a9f5d

Please sign in to comment.