Projects STRLCPY btcrecover Commits 9d28ff9a
🤬
  • ■ ■ ■ ■ ■
    btcrecover/btcrseed.py
    skipped 1832 lines
    1833 1833   entry.select_range(0, tk.END)
    1834 1834   entry.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=padding, pady=padding)
    1835 1835   tk_root.deiconify()
     1836 + tk_root.lift()
    1836 1837   entry.focus_set()
    1837 1838   tk_root.mainloop() # blocks until the user closes the window
    1838 1839   pause_at_exit = False
    skipped 1 lines
  • ■ ■ ■ ■ ■ ■
    docs/INSTALL.md
    skipped 11 lines
    12 12   * Armory 0.92.x on Windows - [Python 2.7](#python-27) **32-bit** (x86)
    13 13   * Armory 0.93+ on Windows - [Python 2.7](#python-27) **64-bit** (x86-64)
    14 14   * Armory 0.92+ on Linux - no additional requirements
    15  - * Armory 0.92+ on OS X - please read both OS X sections [here](Seedrecover_Quick_Start_Guide.md#os-x)
     15 + * Armory 0.92+ on OS X - some version of Armory may not work correctly on OS X, if in doubt use version 0.95.1
    16 16   * Bitcoin Unlimited/Classic/XT/Core - [Python 2.7](#python-27), optional: [PyCrypto](#pycrypto)
    17 17   * MultiBit Classic - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    18 18   * MultiBit HD - [Python 2.7](#python-27), [scrypt](#scrypt), optional: [PyCrypto](#pycrypto)
    19 19   * Electrum (1.x or 2.x) - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    20  - * Electrum 2.8+ fully encrypted wallets - [Python 2.7](#python-27) (2.7.8+ recommended), [Armory 0.92+](Seedrecover_Quick_Start_Guide.md#installation), optional: [PyCrypto](#pycrypto)
    21  - * BIP-39 Bitcoin passphrases (e.g. TREZOR) - [Python 2.7](#python-27) (2.7.8+ recommended), [Armory 0.92+](Seedrecover_Quick_Start_Guide.md#installation)
    22  - * BIP-39 Ethereum passphrases (e.g. TREZOR) - [Python 2.7](#python-27) (2.7.8+ recommended), [Armory 0.92+ and pysha3](Seedrecover_Quick_Start_Guide.md#installation)
     20 + * Electrum 2.8+ fully encrypted wallets - [Python 2.7](#python-27) (2.7.8+ recommended), [coincurve](Seedrecover_Quick_Start_Guide.md#installation), optional: [PyCrypto](#pycrypto)
     21 + * BIP-39 Bitcoin passphrases (e.g. TREZOR) - [Python 2.7](#python-27) (2.7.8+ recommended), [coincurve](Seedrecover_Quick_Start_Guide.md#installation)
     22 + * BIP-39 Ethereum passphrases (e.g. TREZOR) - [Python 2.7](#python-27) (2.7.8+ recommended), [coincurve and pysha3](Seedrecover_Quick_Start_Guide.md#installation)
    23 23   * Hive for OS X - [Python 2.7](#python-27), [scrypt](#scrypt), [Google protobuf](#google-protocol-buffers), optional: [PyCrypto](#pycrypto)
    24 24   * mSIGNA (CoinVault) - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    25 25   * Blockchain.info - [Python 2.7](#python-27) (2.7.8+ recommended), recommended: [PyCrypto](#pycrypto)
    26 26   * Bitcoin Wallet for Android/BlackBerry backup - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    27 27   * Bitcoin Wallet for Android/BlackBerry spending PIN - [Python 2.7](#python-27), [scrypt](#scrypt), [Google protobuf](#google-protocol-buffers), optional: [PyCrypto](#pycrypto)
    28 28   * KnC Wallet for Android backup - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    29  - * Bither - [Python 2.7](#python-27), [scrypt](#scrypt), [Armory 0.92+](Seedrecover_Quick_Start_Guide.md#installation), optional: [PyCrypto](#pycrypto)
     29 + * Bither - [Python 2.7](#python-27), [scrypt](#scrypt), [coincurve](Seedrecover_Quick_Start_Guide.md#installation), optional: [PyCrypto](#pycrypto)
    30 30   * Litecoin-Qt - [Python 2.7](#python-27), optional: [PyCrypto](#pycrypto)
    31 31   * Electrum-LTC - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    32 32   * Litecoin Wallet for Android - [Python 2.7](#python-27), recommended: [PyCrypto](#pycrypto)
    skipped 165 lines
  • ■ ■ ■ ■ ■ ■
    docs/Seedrecover_Quick_Start_Guide.md
    skipped 8 lines
    9 9   
    10 10  Additional requirements are described below.
    11 11   
    12  -Note that *seedrecover.py* uses Armory (Bitcoin wallet software) to accelerate the Eliptic Curve math it needs to perform; you do not need to start Armory for any reason.
    13  - 
    14 12  ### Windows ###
    15 13   
    16 14   1. Follow [these instructions](INSTALL.md#python-27) to download and install Python 2.7.
    17 15   
    18  - 2. Visit this page to download Armory for Windows: <https://github.com/goatpig/BitcoinArmory/releases>. If you installed the 64-bit version of Python, download the latest version of Armory ending in `.exe` (but avoid any `Pre-release` versions). If you installed the 32-bit version of Python, download a **0.93.x** version of Armory ending in `.exe`.
     16 + 2. Open a command prompt window, and type this to install the required Python libraries:
    19 17   
    20  - 3. Double-click the downloaded file to install Armory.
     18 + C:\Python27\Scripts\pip install coincurve==5.2.0 pysha3
    21 19   
    22  - 4. For Ethereum wallets only, open a command prompt window, and type this to install pysha3:
    23  - 
    24  - C:\Python27\Scripts\pip install pysha3
    25  - 
    26  - 5. (optional) Follow [these instructions](INSTALL.md#windows) to download and install pywin32.
     20 + 3. (optional) Follow [these instructions](INSTALL.md#windows) to download and install pywin32 which allows *seedrecover.py* to run as a low-priority process so it doesn’t hog your CPU.
    27 21   
    28 22  ### Linux ###
    29 23   
    30  -Because Armory has a number of dependencies, installing it on Linux isn't always easy. For Debian-like distributions, a shell script has been provided (in the same directory as this README file) which will automatically download and install Armory along with all of its required dependencies. Simply run it from a terminal window:
    31  - 
    32  - bash install-armory.sh
    33  - 
    34  -Alternatively you can manually download and install the latest version of Armory from here (but avoid any `Pre-release` versions): <https://github.com/goatpig/BitcoinArmory/releases>.
    35  - 
    36  -For Ethereum wallets only, install the pysha3 library, for example on Debian-like distributions (including Ubuntu), open a terminal window and type this:
     24 +Most distributions include Python 2.7 pre-installed. Two additional Python libraries, coincurve and (for Ethereum wallets) pysha3 are required. For example on Debian-like distributions (including Ubuntu), open a terminal window and type this:
    37 25   
    38 26   sudo apt-get install python-pip
    39  - sudo pip install pysha3
     27 + sudo pip install coincurve==5.2.0 pysha3
    40 28   
    41 29  ### OS X ###
    42 30   
    43  -Please read the [Running *seedrecover.py*](#running-seedrecoverpy) section first to check if *seedrecover.py* will work with your wallet on OS X.
     31 + 1. Open a terminal window (open the Launchpad and search for "terminal"). Type this and then choose `Install` to install the command line developer tools:
     32 + 
     33 + xcode-select --install
    44 34   
    45  - 1. Download the latest version of Armory for `osx` from here: <https://github.com/goatpig/BitcoinArmory/releases> (but avoid any `Pre-release` versions).
     35 + 2. Type this to install the GNU Multiple Precision Arithmetic Library:
    46 36  
    47  - 2. Open your Downloads, and double-click the Armory file to decompress it.
     37 + curl -O https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
     38 + tar xf gmp-6.1.2.tar.xz
     39 + cd gmp-6.1.2
     40 + ./configure --prefix=/usr/local/opt/gmp
     41 + make && make check
     42 + sudo make install
     43 + cd ..
     44 + rm -rf gmp-6.1.2 gmp-6.1.2.tar.xz
    48 45   
    49  - 3. Drag the new Armory app into your Applications folder (just to the left, in the sidebar).
     46 + 3. Type this to install Python pip, coincurve, and (for Ethereum wallets) pysha3:
    50 47   
    51  -Please also read the OS X section below.
     48 + curl https://bootstrap.pypa.io/get-pip.py | sudo python
     49 + sudo pip install coincurve==5.2.0 pysha3
    52 50   
    53 51   
    54 52  ## Running *seedrecover.py* ##
    skipped 8 lines
    63 61   3. a receiving address that was generated by your wallet from your seed, along with a good estimate of how many addresses you created before the receiving address you'd like to use, *or*
    64 62   4. an "address database". If you don't have i., ii., or iii. from above, please see the [Recovery with an Address Database](#recovery-with-an-address-database) section below.
    65 63   
    66  - **Note** that seed recovery based on addresses (option iii. or iv. above) is not currently supported on OS X.
    67  - 
    68  -Actually running *seedrecover.py* on Windows or Linux is simple: just double-click it. If you're given an option between running it in a terminal or without one, choose *Run in Terminal*. Next, you'll be asked a short series of questions:
     64 +To start *seedrecover.py* on OS X, first rename the `seedrecover.py` script file to `seedrecover.command`. Aside from this, starting it is the same for every system: just double-click the `seedrecover.py` (or `seedrecover.command`) file. If you're asked about running it in a terminal, choose *Run in Terminal*. Next, you'll be asked a short series of questions:
    69 65   
    70 66   1. First you'll be asked to open your wallet file. If you have an Electrum wallet file, find it now - the rest of the steps will then be skipped. Otherwise, click `Cancel` to continue.
    71 67   
    skipped 1 lines
    73 69   
    74 70   3. Next you'll be asked for your master public key. If you don't have yours stored anywhere, click `Cancel` to continue.
    75 71   
    76  - 4. If you don't have your master public key, next you'll be asked for your Bitcoin addresses. Find as many of your addresses associated with this wallet as you can, and enter them here (separated by spaces). Addresses you created early in your wallet's lifetime are prefereable. If your wallet supports multiple "accounts" each with their own address list, only addresses from your first account are useful here.
     72 + 4. If you don't have your master public key, next you'll be asked for your Bitcoin addresses. Find as many of your addresses associated with this wallet as you can, and enter them here (separated by spaces). Addresses you created early in your wallet's lifetime are prefereable. If your wallet supports multiple "accounts" each with their own address list, only addresses from your first account should be entered here.
    77 73   
    78 74   5. If you entered Bitcoin addresses above, next you'll be asked to enter the "address generation limit". *seedrecover.py* works by generating one or more addresses based on each seed it tries. The generation limit is the number of addresses it generates for each seed. Generating fewer addresses will improve *seedrecover.py*'s speed, however if it generates too few, it will miss the correct seed entirely.
    79 75  
    80 76   For example, let's say you found and entered three Bitcoin addresses in step 4. If you're reasonably sure that all three were within the first 10 addresses ever created in your wallet, you should use `10` for the address generation limit.
    81 77   
    82  -### OS X ###
    83  - 
    84  -Running *seedrecover.py* (or *btcrecover* with Armory support) is not quite as easy on OS X.
    85  - 
    86  -To run *seedrecover.py*, you must use the version of Python which is included with Armory. Open a terminal window (open the Launchpad and search for "terminal"), `cd` to the directory where the `seedrecover.py` script is, and then run it using the full path. Below is an example, note that the first line may differ if the `seedrecover.py` script is in a different location.
    87  - 
    88  - cd Downloads/btcrecover-master
    89  - /Applications/Armory.app/Contents/Frameworks/Python.framework/Versions/2.7/bin/python seedrecover.py
    90  - 
    91  -Then you can continue with the numbered steps listed above.
    92  - 
    93  -For *btcrecover* users, the process is similar. You must use the full path:
    94  - 
    95  - /Applications/Armory.app/Contents/Frameworks/Python.framework/Versions/2.7/bin/python btcrecover.py [other-options...]
     78 +Finally, you'll be asked for your best guess of what your seed is.
    96 79   
    97 80  ### Recovery with an Address Database ###
    98 81   
    99 82  When *seedrecover.py* tries different guesses based on the seed you entered, it needs a way to determine which seed guess is correct. Normally it uses each seed guess to create a master public key (an *mpk*) and compare it to the mpk you entered, or to create Bitcoin addresses and compare them to the addresses you entered. If you have neither your mpk nor any of your addresses, it's still possible to use *seedrecover.py* but it is more complicated and time consuming.
    100  - 
    101  -**Note** that seed recovery based on an address database is not currently supported on OS X.
    102 83   
    103 84  This works by generating Bitcoin addresses, just as above, and then looking for each generated address in the entire Bitcoin blockchain. In order to do this, you must first create a database of addresses based on the full blockchain:
    104 85   
    skipped 5 lines
    110 91   
    111 92   4. Once your Bitcoin client is synced, close the Bitcoin software.
    112 93   
    113  - 5. Double-click on the `create-address-db.py` script (in the same folder as `seedrecover.py`) to build the address database using the fully-synced blockchain (it will be saved into the same directory as `create-address-db.py` with the name `addresses.db`) . This process will take about one hour, and use about 4 GB of both RAM and drive space.
     94 + 5. (On OS X, rename the `create-address-db.py` script file to `create-address-db.command`.) Double-click on the `create-address-db.py` script (in the same folder as `seedrecover.py`) to build the address database using the fully-synced blockchain (it will be saved into the same directory as `create-address-db.py` with the name `addresses.db`) . This process will take about one hour, and use about 4 GB of both RAM and drive space.
    114 95   
    115 96   6. Follow the steps listed in the [Running *seedrecover.py*](#running-seedrecoverpy) section, except that when you get to the address entry window in step 4, click `Cancel`.
    116 97   
    skipped 4 lines
  • ■ ■ ■ ■ ■ ■
    docs/install-armory.sh
    1  -#!/bin/bash
    2  - 
    3  -set -e
    4  - 
    5  -LATEST="https://github.com/goatpig/BitcoinArmory/releases/download/v0.96.1/armory_0.96.1_amd64.deb"
    6  - 
    7  -curl -LfsS --retry 10 -o '/tmp/armory.deb' "$LATEST"
    8  - 
    9  -sudo apt-get -q update
    10  -sudo apt-get -yq install gdebi-core
    11  - 
    12  -sudo gdebi -nq /tmp/armory.deb
    13  -rm /tmp/armory.deb
    14  - 
Please wait...
Page is in error, reload to recover