(C) 2018 Calin Culianu calin.culianu@gmail.com BCH/BTC: 1Ca1inQuedcKdyELCTmN8AtKTTehebY4mC
Based on Charlie Hothersall-Thomas' implementation, but added features, bugs fixed, and expanded with more command-line options and better support for variable-length passwords.
See Charlie Hothersall-Thomas' original implementation at: https://github.com/chigley/bip38
- Support for Bitcoin, Bitcoin Cash plus over 170+ other different address styles. Run it with the --coin=list option to see the full list of supported coins/addresses.
- Design philosophy is for a resumable brute force cracker. This way you can start and stop it and let cracking sessions run for weeks at a time, and persist across reboots. Given the same input parameters (password length, thread count, pattern, key, etc), you can hit CTRL-C at any time, get a magic number, and then re-run the app with the --resume=N parameter, and it will continue brute forcing from where it left off.
- Go Language
go get github.com/cculianu/brute38
go build github.com/cculianu/brute38
go install github.com/cculianu/brute38
(Unix/Linux/OSX)
$GOPATH/bin/brute38 -h
(Windows)
%GOPATH%/bin/brute38.exe -h
All of the above assumes you have Go set up properly.
- I really want to add GPU-based cracking. I need to read up on getting a scrypt password hasher to work in OpenCL. Any volunteers to help with this would be really greatly appreciated!
Resumability has some tradeoffs:
- It always searches the keyspace linearly, so no lotto-style luck is ever involved.
- Regular expression pattern specs don't naturally fit in with the design so I have been holding off on implementing them. The preferred workflow if you want regular expressions is to generate a flat file with a whole bunch of passphrases to try, then pass that to the program with the -i parameter.
- To correctly resume a previously-interrupted search, you must use the same specification for the search. This includes: number of threads (-t), BIP38 key, pattern (or pattern length or -i input file), and --charset all need to be the same! The program will not warn you if you are resuming a search incorrectly.
For feature requests, troubleshooting tips, love letters, hatemail, etc, don't be shy and feel free to contact me!