An open API service indexing awesome lists of open source software.

https://github.com/phrutis/bip39scan

brute bip39 mnemonic GPU - $250
https://github.com/phrutis/bip39scan

bip39 brute brute-force bruteforce cuda gpu mnemonic phrases seed

Last synced: about 1 month ago
JSON representation

brute bip39 mnemonic GPU - $250

Awesome Lists containing this project

README

        

# bip39scan - CUDA only
Multigpu program brute force mnemonic phrases

Supports all patches, BTC, DOGE, LITE, dash, BTC Cash, addresses and ETH tokens.

Automatically detects the coin type based on the given patch. You can specify the type manually.

RTX speed 4090 = 160,000,000 phrases per sec (24 words)

RTX speed 4090 = 11,000,000 phrases per sec. (12 words)

By default, all CUDA cards work. You can specify the necessary -d 0,1,2,3,5

You can use your own list of words from a text file for searching.

Only words from the 2048 mnemonic words are supported.

Words in the file must be on a new line.

To add a specified list, use ```-w words.txt```

[Brute force program (win + linux)](https://github.com/phrutis/bip39scan#bip39scanexe---windows-cuda-only) + [program for reading mnemonics from a file (win + linux)](https://github.com/phrutis/bip39scan#bip39scan-linux-only) +
[source code bip39scan client](https://github.com/phrutis/bip39scan#source-code-of-bip39scan) + [Bonus](https://github.com/phrutis/bip39scan#bonus-only-for-linux) = $500


Buy the programs https://t.me/cuda8

If you have any questions, please write @phrutis

For the test, you can generate a phrase on the website https://iancoleman.io/bip39/

Add the address to the address database. Using the same patch you will find

## Modes:
### Sequential search Windows

Replace unknown words with *

```bip39scan.exe --save Found.txt -a eth0x.txt -p m/44'/60'/0'/0/0-3 cement income * bounce suspect * * jungle cheese ranch neutral *```


![1](https://github.com/user-attachments/assets/a448a078-7340-4b86-af06-766db9897238)

### Random mode:

Replace unknown words with *

```bip39scan.exe --save Found.txt -a eth0x.txt -p m/44'/60'/0'/0/0-3 -r * * * * * * * * * * * *```


![random](https://github.com/user-attachments/assets/f9611d71-33fe-4abc-87a8-e52b83102147)

If you have address bases of 1-12 GB, it is better to convert them to binary format.

Launch with a text address base of 10 GB = 10 minutes, with a binary base 3-5 seconds.

We create binary databases, example below

BTC

```bip39scan.exe --save Found.txt -a btc1.txt --save-bin btc1.bin -p m/44'/0'/0'/0/0-5```

```bip39scan.exe --save Found.txt -a btc3.txt --save-bin btc3.bin -p m/49'/0'/0'/0/0-5```

```bip39scan.exe --save Found.txt -a btc-bc.txt --save-bin btc-bc.bin-p m/84'/0'/0'/0/0-5```

ETH and tokens

```bip39scan.exe --save Found.txt -a eth_addresses.txt --save-bin eth.bin -t ethereum -p m/44'/60'/0'/0/0-5 -r * * * * * *```

Quick start with binary base:

```bip39scan.exe --save Found.txt -a btc1.bin -t P2PKH -p m/0/0-10 -r * * * * * *```

```bip39scan.exe --save Found.txt -a btc1.bin -t P2PKH -p m/44'/0'/0'/0/0-9 -r * * * * * *```

```bip39scan.exe --save Found.txt -a btc3.bin -t P2SH -p m/49'/0'/0'/0-1/0-9 -r * * * * * *```

```bip39scan.exe --save Found.txt -a btc-bc.bin -t Bech32 -p m/84'/0'/0'/0-1/0-9 -r * * * * * *```

```bip39scan.exe --save FoundETH.txt -a eth.bin -t ethereum -p m/44'/60'/0'/0/0-9 -r * * * * * *```

It is better to be on the safe side, use the instructions below or turn off the Internet during the search.

1. Press the key combination "Win+R" and enter the command "firewall.cpl".
2. Go to the "Advanced settings" section and select "Outgoing connection rules".
3. Click on the "Create rule" button, select the "For program" option and specify its path.
4. Select the checkbox next to "Block connection".
5. Click "Next", specify "Name" and click "Done".

precomp.bin - this is the acceleration table

![Image](https://github.com/user-attachments/assets/ee6c4bac-2fc2-452e-b9ab-b85cdfe64701)

### Sequential search linux
Works on RTX 3070, other cards may have problems.

Try installing nvidia/cuda:12.1.0-devel-ubuntu20.04

```--dict words.txt``` - Specify the desired mnemonic list of words on a new line.

```chmod +x bip39scan```

```./bip39scan --dict 'words.txt' -a btc1.txt -p m/44\'/0\'/0\'/0/0-5 --save Found.txt \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt*```

If you know part of the phrase, please indicate it like this

```./bip39scan --dict 'words.txt' -a btc1.txt -p m/44\'/0\'/0\'/0/0-5 --save Found.txt chat summer \*words.txt* gap injury \*words.txt* snap note \*words.txt* \*words.txt* \*words.txt*```

![bip39](https://github.com/user-attachments/assets/9e0437f6-82ac-474b-afd1-5dd7b744b6c6)

### Random search linux

```./bip39scan --dict 'words.txt' -a btc1.txt -p m/44\'/0\'/0\'/0/0-5 --save Found.txt \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* \*words.txt* -r```

If you know part of the phrase, please indicate it like this

```./bip39scan --dict 'words.txt' -a btc1.txt -p m/44\'/0\'/0\'/0/0-5 --save Found.txt chat summer denial gap injury equip snap note \*words.txt* \*words.txt* \*words.txt* \*words.txt* -r```

![Image](https://github.com/user-attachments/assets/f11bd02a-cace-43cf-b992-f94d0ae6bbe1)

### Speed ​​example RTX 3070 Ti (24 words) - 43 million phrases per second

![Image](https://github.com/user-attachments/assets/212ae251-7cf6-4e20-a057-c5fc6c22ac3c)


# bip39scan2 linux (ubuntu)
The program reads mnemonic phrases from a text file on the GPU (Only CUDA )

The program also reads all: PASSWORDS, numbers, words from a file. There are many finds on them.

Supports all patches, addresses from different coins and tokens.

Automatically detects the coin type based on the given patch. You can specify the type manually.

Multi GPU program. RTX speed 4090 = 500k phrases per sec.

By default, all CUDA cards work. You can specify the necessary -d 0,1,2,3,5

Supports phrase dictionaries up to 32 TB.

Buy the programs https://t.me/cuda8/248

Launch examples:


```chmod +x bip39scan2```


BTC:

```./bip39scan2 -m seeds.txt --save Found.txt -a btc1.txt -p m/0-1/0-20```

```./bip39scan2 -m seeds.txt --save Found.txt -a btc1.txt -p m/44\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save Found.txt -a btc3.txt -p m/49\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save Found.txt -a btc-bc.txt -p m/84\'/0\'/0\'/0-1/0-10```


ETH:

```./bip39scan -m seeds.txt --save Found.txt -a eth_addresses.txt -p m/44\'/60\'/0\'/0-1/0-20```


Others coins:

```./bip39scan2 -m seeds.txt --save FoundB-cash.txt -a btc-cash.txt -p m/44\'/145\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundB-cash.txt -a btc-cash.txt -p m/44\'/0\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundDash.txt -a dash.txt -p m/44\'/5\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundDoge.txt -a doge.txt -p m/44\'/3\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundLITE.txt -a lite-L.txt -p m/44\'/2\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundLITE.txt -a lite-M.txt -p m/49\'/2\'/0\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save FoundLITE.txt -a lie-ltc1.txt -p m/84\'/2\'/0\'/0-1/0-20```


ETH Tokens: ARB, AVAX, BASE, BNB, CRO, ETC, ETH, FTM, GETH, GNO, MATIC, OP, opBNB, zkEVM

```./bip39scan2 -m seeds.txt --save TFoundETH.txt -a BAZA/t6.bin -t ethereum -p m/44\'/60\'/160720\'/0-1/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETH.txt -a BAZA/t6.bin -t ethereum -p m/44\'/137\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHNIM-Nimiq.txt -a BAZA/t6.bin -t ethereum -p m/44\'/242\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHAION.txt -a BAZA/t6.bin -t ethereum -p m/44\'/425\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHTHETA.txt -a BAZA/t6.bin -t ethereum -p m/44\'/500\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHSmartCL.txt -a BAZA/t6.bin -t ethereum -p m/44\'/714\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHVET.txt -a BAZA/t6.bin -t ethereum -p m/44\'/818\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHCLO.txt -a BAZA/t6.bin -t ethereum -p m/44\'/820\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHTOMO.txt -a BAZA/t6.bin -t ethereum -p m/44\'/889\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHTT.txt -a BAZA/t6.bin -t ethereum -p m/44\'/1001\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHWAN.txt -a BAZA/t6.bin -t ethereum -p m/44\'/5718350\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHPOA.txt -a BAZA/t6.bin -t ethereum -p m/44\'/178\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHGO.txt -a BAZA/t6.bin -t ethereum -p m/44\'/6060\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHCELO.txt -a BAZA/t6.bin -t ethereum -p m/44\'/52752\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHPOLYGON.txt -a BAZA/t6.bin -t ethereum -p m/44\'/966\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHHARMONY.txt -a BAZA/t6.bin -t ethereum -p m/44\'/1023\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHKLAY.txt -a BAZA/t6.bin -t ethereum -p m/44\'/8217\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHTRON.txt -a BAZA/t6.bin -t ethereum -p m/44\'/195\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHEGLD.txt -a BAZA/t6.bin -t ethereum -p m/44\'/508\'/0\'/0\'/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHADA.txt -a BAZA/t6.bin -t ethereum -p m/1852\'/1815\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHFLOW.txt -a BAZA/t6.bin -t ethereum -p m/44\'/539\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHNEO.txt -a BAZA/t6.bin -t ethereum -p m/44\'/888\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHSOL.txt -a BAZA/t6.bin -t ethereum -p m/44\'/501'/0\'/0\'/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHXDC.txt -a BAZA/t6.bin -t ethereum -p m/44\'/550\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHXLM.txt -a BAZA/t6.bin -t ethereum -p m/44\'/148\'/0\'/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHXRP.txt -a BAZA/t6.bin -t ethereum -p m/44\'/144\'/0\'/0/0-20```

```./bip39scan2 -m seeds.txt --save TFoundETHBNB.txt -a BAZA/t6.bin -t ethereum -p m/44\'/714\'/0\'/0/0-20```

It is important to put \ before ' in the patch!!!

If you have address bases of 1-12 GB, it is better to convert them to binary format.

Launch with a text address base of 10 GB = 10 minutes, with a binary base 3-5 seconds.

We create binary databases, example below

BTC

```./bip39scan2 -m seeds.txt --save Found.txt -a btc1.txt --save-bin btc1.bin -p m/44\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save Found.txt -a btc3.txt --save-bin btc3.bin -p m/49\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save Found.txt -a btc-bc.txt --save-bin btc-bc.bin-p m/84\'/0\'/0\'/0-1/0-10```


ETH and tokens

```./bip39scan -m seeds.txt --save Found.txt -a eth_addresses.txt --save-bin eth.bin -t ethereum -p m/44\'/60\'/0\'/0-1/0-20```

Quick start with binary base:

```./bip39scan2 -m seeds.txt --save Found.txt -a btc1.bin -t P2PKH -p m/0-1/0-20```

```./bip39scan2 -m seeds.txt --save Found.txt -a BAZA/btc1.bin -t P2PKH -p m/44\'/0\'/0\'/0-1/0-10
```

```./bip39scan2 -m seeds.txt --save Found.txt -a BAZA/btc3.bin -t P2SH -p m/49\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save Found.txt -a BAZA/btc-bc.bin -t Bech32 -p m/84\'/0\'/0\'/0-1/0-10```

```./bip39scan2 -m seeds.txt --save FoundETH.txt -a eth.bin -t ethereum -p m/44\'/60\'/0\'/0-20```

The program works very fast, it takes a lot of time to launch each command.

I recommend first creating binary databases, then making a list of launch commands in a file.

This will be faster and more convenient.

Place the file next to the program.

```chmod +x START.sh```

See the example in the file START.sh

```./START.sh```

### bip39scan2.exe Windows
```bip39scan2.exe -m seeds.txt --save Found.txt -a btc1.txt -p m/0-1/0-20```

Launch arguments as for Linux above. Launch arguments as for Linux above. Get help ```bip39scan2.exe -h```

Works on RTX 20xx, 30xx series cards.

On RTX 4090, 5090 cards it does not work for everyone!


# BONUS only for Linux (ubuntu)
Attack on vulnerable random number generator (RNG)
Program only for win bip39scan-rng.exe
Ex. ```bip39scan-rng.exe --rng --save Found.txt -p m/44'/0'/0'/0/0-9 -a btc1.txt```

Vulnerablity in libbitcoin explorer library - generator phrases and entropy

The developers have removed the utility everywhere, it is impossible to compile from the source code.

It is very difficult to find a vulnerable version 3.2.

32-bit vulnerability is 4294967295 mnemonic phrases.

9 languages, 12, 15, 18, 21, 24 words. 193,273,528,275 is tens of TB.

The vulnerability affected not only BTC, ETH, but also tokens, other coins.

Many still don't know and use the old library to generate phrases and keys

Launch example.

```./bx-linux-x64-qrcode_3_2 seed -b 256 | ./bx-linux-x64-qrcode_3_2 mnemonic-new```

```./bx-linux-x64-qrcode_3_2 seed -b 256 | ./bx-linux-x64-qrcode_3_2 mnemonic-new -l es```

```./bx-linux-x64-qrcode_3_2 seed -b 128 | ./bx-linux-x64-qrcode_3_2 mnemonic-new -l ja```

Languages

--language

en (default)

-l es

-l fr

-l it

-l ja

-l cs

-l ru

-l uk

-l zh_Hans

-l zh_Hant

(Phrase length 12, 15, 18, 21, 24)

-b 128

-b 160

-b 192

-b 224

-b 256

A multi-cpu script is sent to the explorer that generates a stream of phrases into a text file.

It is also possible to generate vulnerable private keys from BTC, ETH and other coins.

```./bx-linux-x64-qrcode_3_2 seed -b 256 >> Out.txt```


# Source code of bip39scan

Source code of the program bip39scan

For compilation you need knowledge of C++, CUDA!

It is necessary to remove the client-server link and other.

How to build:

## Building on Ubuntu:

Below is detailed instruction with bash commands required to build bip39scan.

The symbol '$' denotes command prompt.

If your prompt is shown as '#' on your terminal, skip 'sudo'.

For example, instead of

$ sudo sh cuda_12.0.1_525.85.12_linux.run

you should run

```# sh cuda_12.0.1_525.85.12_linux.run```

Let's start.

1. install CUDA. Download the linux version from the NVIDIA website and run.
Open https://developer.nvidia.com/cuda-12-0-1-download-archive?target_os=Linux

in your browser and choose your system. The following is valid for Ubuntu 18.04.

$ wget https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux.run

$ sudo sh cuda_12.0.1_525.85.12_linux.run

Skip the driver installation (deselect the 'driver' checkbox) if you already have it.

To ensure the cuda is installed, run:

$ nvcc --version

It should print information and version of CUDA.

If no nvcc is found, try adding the CUDA bin path to the PATH variable:

$ export PATH=/usr/local/cuda/bin:$PATH

2. install build-essential:

$ sudo apt-get install build-essential


Check the gcc version:

$ gcc --version

if the version is less than 9, install gcc 9:

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:jonathonf/gcc

$ sudo apt-get update

$ sudo apt-get install gcc-9

$ sudo apt-get install g++-9

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10

3. install libssl:

$ sudo apt-get install libssl-dev

4. for the client-server version, install boost:

$ sudo apt-get install libboost-all-dev


You will need Boost version at least 1.71. If apt-get does not intall at least 1.71, build Boost from source:

$ wget https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.gz

$ tar -xzvf boost_1_71_0.tar.gz

$ cd boost_1_71_0

$ ./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=static

$ sudo ./b2 install threading=multi link=static

$ sudo ln -svf detail/sha1.hpp /usr/include/boost/uuid/sha1.hpp

5. install cmake from here: https://cmake.org/download/ choose Binary distributions, if that does not work - build from source

$ wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.tar.gz

$ tar -xzvf cmake-3.28.0-linux-x86_64.tar.gz

6. unpack the bip39scan source, let's say bip39scan/

7. make an empty build directory, and run cmake in it e.g.

$ mkdir bip39scan-build

$ cd bip39scan-build


On first make, it will generate precomp.bin file, which may take quite some time. If you
already have the precomp.bin, copy it to the build directory and comment this line in the
../bip39scan/CMakeLists.txt: add_dependencies(bip39scan precomp-bin) like this:

#add_dependencies(bip39scan precomp-bin)

Save CMakeLists.txt and run cmake:

$ ../cmake-3.28.0-linux-x86_64/bin/cmake ../bip39scan

where ../bip39scan is the source code directory

8. make the project

$ make bip39scan