aezeed-recover

command module
v0.0.0-...-3d71b91 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2023 License: MIT Imports: 3 Imported by: 0

README

aezeed-recover

Recover wrong or missing words from an aezeed mnemonic.

Overview

aezeed-recover does not need an internet connection, and works well on a 80x24 standard terminal, i.e. on your node or a primitive device for the very purpose of recovery.

demo
  • Currently, recovery is limited to 2 missing or a single wrong word
  • Replacements and insertions are tried at any position
  • Password recovery is not supported, yet

(see TODO for upcoming features)

If you need additional help recovering your seed, please contact recovery@mustwork.de.

Similar Projects

Installation

Download the appropriate binary from releases, or build from source:

git clone https://github.com/mustwork/aezeed-recover.git
cd aezeed-recover
go install

Running

Either run the binary directly, or execute aezeed-recover if installed with go install. Make sure ~/go/bin/ is on your $PATH.

Dev Mode

Running with the --dev flag will enable random seed generation and other options.

DO NOT USE THE GENERATED MNEMONIC FOR REAL FUNDS.

Known Issues

  • skipping through seed words with arrow keys occasionally activates drop down unintentionally
  • when skipping through seed words with arrows, the cursor is not always positioned at the end of the word
  • on the info splash screen the confirmation button is disabled initially, although the entire text is visible
  • pasting should NOT wrap around into password field
  • pasting non-alpha characters should not be possible
  • when leaving password field with ESC, the seed is not reevaluated
  • pasting from clipboard on linux and windows is untested

TODO

improve brute force by limiting realm

The amount of missing/wrong words can be increased significantly by considering more detailed knowledge of the seed. If parts of the seed are definite, the search space is vastly reduced. Possible improvements:

  • mark certain words as fixed
  • allow prefixes as given
  • allow suffixes as given
  • consider placeholders or a regex like DSL

See btcrecover.

improve brute force by trying more likely mistakes first

The following assumptions should be honoured:

  • adjacent words ar more likely to be mistaken than distant words
  • mistakes are made more likely towards the end of the mnemonic
BIP39 support

Also recovering BIP39 seeds is desirable.

BIP39 only has a 4 bit checksum, as opposed to aezeed's 4 bytes. Hence, brute forcing missing or wrong words requires knowledge of an address, its derivation path, as well as access to a transaction index (a node).

find swapped words and columns

Another possible cause of error is swapping or rotating the mnemonic when writing it down, i.e. columns are mistaken for rows.

  • check for swaps along all symmetrical rotations, i.e. swap words between columns if a column contains 2,3,4,6,8,12 words

Donation

BTC: bc1qfkv06pjcgq280f42nu66ktdfeer7f06lmtgerp

License

MIT

Author

Markus Rother


Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
ui
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL