Pages:
Author

Topic: The FinderOuter, a bitcoin recovery tool (v0.16.0 2022-09-19) - page 7. (Read 4274 times)

legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Quote from another topic:
Thanks is there a tool i can use to recover ? as i must have missed a few characters off or could someone help me via private message  as i do not want to disclose it on here !!
You could use The FinderOuter. Compile it from source code or download the released version, run it offline. The program only has 2 options for now and you need the second option ("Missing Base58"). I believe the rest is self explanatory.
It should take a second to find the right key(s) with 3 missing characters.
I'm trying to recover JBRai's private key with 49 out of 52 characters known. I've installed The FinderOuter (in a VM), but it asks for the locations of the missing characters.
Any chance you can add a loop to search all possible locations for the 3 missing characters? That is, assuming the rest of JBRai's key is correct.

I've tested it with a known key: it takes about 2 seconds to find 3 missing characters. To do the same on 3 unknown locations would take about 58^3 times longer, which means several days, but it'll still be manageable.
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
Will it verify messages from Segwit addresses?
Of course it will.
The 3 basic script types used in signing are supported: P2PKH (address starting with 1), P2WPKH (address starting with bc1) and P2SH-P2WPKH (address starting with 3).
I don't think there is anything else left apart from BIP-322 which I will add soon.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
  • Verifying bitcoin message signatures and in case of failure it can try to find where the problem was.

Will it verify messages from Segwit addresses?
It is still a problem, only Electrum does that until now, as far as I know.

I am only able to sign from legacy addresses using most software
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
Next release (0.2.0) is probably going to take some more time as I am busy releasing Denovo (20k LoC so far) these days and the next feature requires optimization of ECC. However I keep releasing the code which could be used if you compile it yourself.
New feature is Missing Mnemonic which is when you have a seed phrase missing a couple of words.
There is also a changelog which helps you follow all the changes (and commits).
There is also a continuous integration workflow to ensure successful builds and deployment.

you should consider scenario when user missing few character but don't know location of the missing character.
I haven't been able to come up with a way to generalize this. The alternative is to hard code it for each case individually (one method for missing 1 char, another for 2 and so on) which I don't really like. I'm going to place it in an issue #1 until I can come up with a neat solution.
legendary
Activity: 3010
Merit: 3724
Join the world-leading crypto sportsbook NOW!
Cool beans. I suppose we'll just have to look for those inevitable threads of people who've lost access and see if this tool will help them the way it's designed to (opening it up, putting in a line and clicking go). Still needs a bit of basic understanding for the casual user though (that includes people like me).
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
I see you're switching to .NET Core and user don't need to deal with dependency at all. I can even run it on niche Linux distro Smiley
Yeah, netcore has been a fantastic decision by Microsoft. It is not only runs on multiple OS/platforms but also is fully open source and also highly optimized.
I'll slowly migrate all of my previous projects (eg. transaction tool) to netcore too but as a new project called Denovo.

As for finding missing Base58, IMO you should consider scenario when user missing few character but don't know location of the missing character.
Thanks for your feedback. I'll add this to my to-do list.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
I see you're switching to .NET Core and user don't need to deal with dependency at all. I can even run it on niche Linux distro Smiley

As for finding missing Base58, IMO you should consider scenario when user missing few character but don't know location of the missing character.
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
Major Updates (see commits on github for details)
  • [2020-01-01] Initial Release of Beta (0.1.0) Happy New Year!
  • [2020-02-19] v 0.1.1 finding private key with 3 missing characters at unknown locations.
  • [2020-03-10] v 0.1.2 recovery of hex private keys is now supported.
  • [2020-05-11] v 0.2.0 recovery of addresses and BIP-38 keys are now supported + move backend to Bitcoin.Net.
  • [2020-05-30] v 0.3.0 recovery of mini private keys is now supported.
  • [2020-06-30] v 0.4.0 recovery of BIP-39 mnemonics is now supported.
  • [2020-07-23] v 0.4.1 adds example button.
  • [2020-09-17] v 0.5.0 the parallelism update increasing speed from 10% to more than 1800% utilizing the whole CPU power.
  • [2020-12-24] v 0.6.0 recovery of Electrum mnemonic and more options in Base16 recovery.
  • [2021-02-02] v 0.7.0 UI improvements
  • [2021-03-20] v 0.8.0 recover BIP-32 path and Armory backup phrases
  • [2021-04-05] v 0.9.0 find encoding of a string, added help and knowledge base windows
  • [2021-05-05] v 0.10.0 huge optimization by changing ECC and solving issue #9
  • [2021-06-13] v 0.11.0 optimizing SHA and Base58 algorithm
  • [2021-08-13] v 0.12.0 recovering mnemonic passphrase is now supported.
  • [2021-08-19] v 0.12.1 bug fix in missing mnemonic passphrase option.
  • [2022-02-02] v 0.13.0 recovering BIP38 passwords is now supported.
  • [2022-03-07] v 0.14.0 general code improvement.
  • [2022-05-19] v 0.15.0 introduced search space.
  • [2022-09-19] v 0.16.0 introduced search space for BIP38 passphrases.


Complete change-log: https://github.com/Coding-Enthusiast/FinderOuter/blob/master/CHANGELOG.md
legendary
Activity: 1042
Merit: 2805
Bitcoin and C♯ Enthusiast
Table of Contents

__________

Introduction
The FinderOuter is a bitcoin recovery tool that focuses on making the recovery process easy for everyone with any level of technical knowledge. It uses a simple user interface with a list of recovery options. Each option has an explanation and many hints helping user figure out what is needed. It always consist of filling some text boxes and selecting some options and finally clicking the Find button. This eliminates the need to read long guide pages on how to use the application. Each option also has some example cases that can show a simple preview of how each option should be filled for different cases.
FinderOuter is specialized for maximum efficiency, each recovery option and their parts are written from scratch and all those parts down to the basic cryptography used (such as SHA, ECC,...) are specialized for that operation.

Thanks to .Net core and AvaloniaUI FinderOuter can run on all operating systems.
This project is written fully in C# and is 100% open source and will always remain free to use. You can make a donation if you found this tool useful..
FinderOuter is still in beta and under development. New features are slowly added and everything is optimized.
Contribution is always welcome. Please report any bugs you find or any improvement suggestions you have by creating a new issue.


Quick guide
  • Select an option from this list depending on what you want to recover
  • Read the instructions
  • Fill in the required information
  • Select appropriate available options according to the entered data
  • There are some useful advanced options to speed up the recovery
  • Click Find button
  • See the progress and the reports
  • Progressbar showing the progress percentage shows up for options that use multi-threading (take more than a couple of seconds to complete)
  • All recovery options come with examples, click this button repeatedly to cycle through them
  • Some parts have a help button that brings up the respective FinderOuter knowledge base page





Features
1. Message signature verification
User can enter a message signature here to verify it. In case there is a problem with the message (except being an actually invalid signature), the code can search to find the common issues that some signing tools have and fix them.

2. Missing Base-58 characters
This option can be used to recover any base-58 encoded string with a checksum that is missing some characters. For example a damaged paper wallet where some characters are erased/unreadable. The position of missing characters must be known.
It works for (1) WIFs (Base-58 encoded private key) (2) Addresses (Base-58 encoded P2PKH or P2SH address) (3) BIP-38 (Base-58 encoded encrypted private key).

3. Missing Base-16 characters
This option is similar to previous feature but works for base-16 (hexadecimal) private keys. Since there is no checksum in this encoding it requires an additional input to check each permutation against. It accepts any address type and public keys. This option is slower in comparison because it uses ECC and that is not yet optimized.

4. Missing mini-privatekey characters
This option is similar to 2 and 3 but works for mini-privatekeys (eg. SzavMBLoXU6kDrqtUVmffv). It requires the corresponding address or public key of the minikey to check each possible key against, as a result it is also slower since it depends on ECC and has 2 additional hashes.

5. Missing mnomonic (seed) words
This option works for both BIP-39 and Electrum mnemonics that have some missing words. It requires knowing one child (private/public) key or address created from that seed and the exact derivation path of it.

6. Missing mnemonic passphrase
This option is used to recover the extension words (aka passphrase) used in mnemonics. It works for both BIP-39 and Electrum mnemonics algorithms. The available passphrase recovery modes are:
a. Alphanumeric: This is when the passphrase consists of letter, numbers and symbols and is random. Example: OT!pA?8i
b. CustomChars: This mode allows user to define their own set of characters to be used in the passphrase. c. soon

7. Missing BIP-38 password
This option can recover passwords used in encrypting bitcoin private keys using the BIP-38 proposal. The available password recovery modes are the same as mnemonic passphrase option.

8. Missing BIP-32 derivation path
This option could be used to find derivation path of a child key (private key, public key or the address) by having the mnemonic or the extended master keys (xprv or xpub). It only checks a hard-coded list of popular derivation paths.

9. Missing characters in Armory recovery phrase
This option is used to recover Armory paper backups (containing 2 or 4 lines of 36 characters in Base-16 with custom char-set) that are missing some of their characters. Since the last 4 characters of each line is the checksum this option can be very fast (1 trillion keys/sec) if the checksum is available or extremely slow (100 key/sec) if not.

10. Missing string encoding
This option could be used to determine the encoding of an arbitrary text. It currently supports Base-16, Base-43, Base-58, Base-58 with checksum and Base-64. All inputs will be converted to hexadecimal.



Links
Source code on GitHub: https://github.com/Coding-Enthusiast/FinderOuter
Want to help?
Review the code and leave your feedback in this topic about the code, features any possible bug(s), ...
Contributions are always welcome. Here is the conventions that FinderOuter adheres to.

If You found this tool helpful consider making a donation:
1Q9swRQuwhTtjZZ2yguFWk7m7pszknkWyk
bc1q3n5t9gv40ayq68nwf0yth49dt5c799wpld376s



To Do List (aka future features!)
See roadmap here: https://github.com/Coding-Enthusiast/FinderOuter/issues/47
  • [ ]Optimize, Optimize and more Optimize.
  • [ ]Utilize SIMD.
  • [ ]Add support for other base-58 strings such as extended private keys.
  • [X]Add BIP32 path finder.
  • [X]Add password recovery.
  • [X]Add BIP-39 passphrase recovery.
  • [X]Add BIP-38 password recovery.
Pages:
Jump to: