albertobsd / keyhunt

privkey hunt for crypto currencies that use secp256k1 elliptic curve
MIT License
640 stars 349 forks source link

With help from ChatGPT succeed to compile it on Mac M1 #268

Open bane77111 opened 10 months ago

bane77111 commented 10 months ago

If someone interested to run it on Mac m1 chip maybe it will work on m2 too, this is the changed Make file:

make legacy

CC = clang
CXX = clang++
CFLAGS = -Ofast -target arm64-apple-macos -arch arm64 -ftree-vectorize -flto
CXXFLAGS = -Ofast -target arm64-apple-macos -arch arm64 -ftree-vectorize -flto
LDFLAGS = -lm -lpthread -lcrypto -lgmp
RM = rm -f

# Specify the include path for OpenSSL
OPENSSL_INCLUDE = -I/opt/homebrew/Cellar/openssl@3/3.1.4/include
OPENSSL_LIB = -L/opt/homebrew/Cellar/openssl@3/3.1.4/lib -lssl -lcrypto

# Specify the include and library paths for GMP
GMP_INCLUDE := -I/opt/homebrew/include
GMP_LIB := -L/opt/homebrew/lib -lgmp

CFLAGS += $(OPENSSL_INCLUDE) $(GMP_INCLUDE)
CXXFLAGS += $(OPENSSL_INCLUDE) $(GMP_INCLUDE)
LDFLAGS += $(OPENSSL_LIB) $(GMP_LIB)

# Define the separator
SEPARATOR = ;

# List of GMP256K1 source files
GMP256K1_SRCS = gmp256k1/GMP256K1.cpp gmp256k1/Int.cpp gmp256k1/IntGroup.cpp gmp256k1/IntMod.cpp gmp256k1/Point.cpp gmp256k1/Random.cpp

legacy: ; \
    $(CXX) $(CXXFLAGS) -c oldbloom/bloom.cpp -o oldbloom.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c bloom/bloom.cpp -o bloom.o $(SEPARATOR) \
    $(CC) $(CFLAGS) -c base58/base58.c -o base58.o $(SEPARATOR) \
    $(CC) $(CFLAGS) -c xxhash/xxhash.c -o xxhash.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c util.c -o util.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c sha3/sha3.c -o sha3.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c sha3/keccak.c -o keccak.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c hashing.c -o hashing.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/Int.cpp -o Int.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/Point.cpp -o Point.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/GMP256K1.cpp -o GMP256K1.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/IntMod.cpp -o IntMod.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/Random.cpp -o Random.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c gmp256k1/IntGroup.cpp -o IntGroup.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o keyhunt keyhunt_legacy.cpp base58.o bloom.o oldbloom.o xxhash.o util.o Int.o Point.o GMP256K1.o IntMod.o IntGroup.o Random.o hashing.o sha3.o keccak.o $(LDFLAGS) $(SEPARATOR) \
    $(RM) *.o

bsgsd: ; \
    $(CXX) $(CXXFLAGS) -c oldbloom/bloom.cpp -o oldbloom.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c bloom/bloom.cpp -o bloom.o $(SEPARATOR) \
    $(CC) $(CFLAGS) -c base58/base58.c -o base58.o $(SEPARATOR) \
    $(CC) $(CFLAGS) -c rmd160/rmd160.c -o rmd160.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c sha3/sha3.c -o sha3.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c sha3/keccak.c -o keccak.o $(SEPARATOR) \
    $(CC) $(CFLAGS) -c xxhash/xxhash.c -o xxhash.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c util.c -o util.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/Int.cpp -o Int.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/Point.cpp -o Point.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/SECP256K1.cpp -o SECP256K1.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/IntMod.cpp -o IntMod.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/Random.cpp -o Random.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -c secp256k1/IntGroup.cpp -o IntGroup.o $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o hash/ripemd160.o -c hash/ripemd160.cpp $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o hash/sha256.o -c hash/sha256.cpp $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o hash/ripemd160_sse.o -c hash/ripemd160_sse.cpp $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o hash/sha256_sse.o -c hash/sha256_sse.cpp $(SEPARATOR) \
    $(CXX) $(CXXFLAGS) -o bsgsd bsgsd.cpp base58.o rmd160.o hash/ripemd160.o hash/ripemd160_sse.o hash/sha256.o hash/sha256_sse.o bloom.o oldbloom.o xxhash.o util.o Int.o Point.o SECP256K1.o IntMod.o Random.o IntGroup.o sha3.o keccak.o $(LDFLAGS) $(SEPARATOR) \
    $(RM) *.o    

Before compale make sure to have all paths setup and you'll have to delete in file: gmp256k1/Random.cpp ; the line #include <linux/random.h>

I try it to run:

bane@Luse keyhunt % ./keyhunt -m bsgs -f tests/125.txt -R -b 125 -q -S -s 10

[+] Version 0.2.230519 Satoshi Quest (legacy), developed by AlbertoBSD

[+] Random mode

[+] Quiet thread output

[+] Stats output every 10 seconds

[+] Mode BSGS random

[+] Opening file tests/125.txt

[+] Added 1 points from file

[+] Bit Range 125

[+] -- from : 0x10000000000000000000000000000000

[+] -- to   : 0x20000000000000000000000000000000

[+] N = 0x100000000000

[+] Bloom filter for 4194304 elements : 14.38 MB

[+] Bloom filter for 131072 elements : 0.88 MB

[+] Bloom filter for 4096 elements : 0.88 MB

[+] Allocating 0.00 MB for 4096 bP Points

[+] processing 4194304/4194304 bP points : 100%     

[+] Making checkums .. ... done

[+] Sorting 4096 elements... Done!

[+] Writing bloom filter to file keyhunt_bsgs_4_4194304.blm .... Done!

[+] Writing bloom filter to file keyhunt_bsgs_6_131072.blm .... Done!

[+] Writing bP Table to file keyhunt_bsgs_2_4096.tbl .. Done!

[+] Writing bloom filter to file keyhunt_bsgs_7_4096.blm .... Done!

[+] Total 105553116266496 keys in 10 seconds: ~10 Tkeys/s (10555311626649 keys/s[+] Total 246290604621824 keys in 20 seconds: ~12 Tkeys/s (12314530231091 keys/s[+] Total 351843720888320 keys in 30 seconds: ~11 Tkeys/s (11728124029610 keys/s

And on my Mac works OK. ps. There is also an issue with legacy reading pub. keys, if you have uncompressed you'll get an error so you need to change it to compressed pub.key.

albertobsd commented 10 months ago

Can you post what error do you get with the public keys uncompressed?

bane77111 commented 10 months ago

Can you post what error do you get with the public keys uncompressed?

The error i get: ParsePublicKeyHex: Error invalid public key specified (Not lie on elliptic curve) As i already post an issue some time ago, issue #222 and #216

danhantao commented 9 months ago

19 warnings generated. ld: warning: ignoring duplicate libraries: '-lcrypto', '-lgmp' ld: warning: ignoring file '/usr/local/Cellar/gmp/6.3.0/lib/libgmp.10.dylib': found architecture 'x86_64', required architecture 'arm64' ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.1.4/lib/libcrypto.3.dylib': found architecture 'x86_64', required architecture 'arm64' ld: warning: ignoring file '/usr/local/Cellar/openssl@3/3.1.4/lib/libssl.3.dylib': found architecture 'x86_64', required architecture 'arm64' ld: Undefined symbols: _RIPEMD160_Final, referenced from: thread_pub2rmd(void) in cc-8ed1f9.o thread_pub2rmd(void) in cc-8ed1f9.o Secp256K1::GetHash160(int, bool, Point&, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o ... _RIPEMD160_Init, referenced from: thread_pub2rmd(void) in cc-8ed1f9.o thread_pub2rmd(void) in cc-8ed1f9.o Secp256K1::GetHash160(int, bool, Point&, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o ... _RIPEMD160_Update, referenced from: thread_pub2rmd(void) in cc-8ed1f9.o thread_pub2rmd(void) in cc-8ed1f9.o Secp256K1::GetHash160(int, bool, Point&, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o rmd160_4(unsigned long, unsigned char const, unsigned char const, unsigned char const, unsigned char const, unsigned char, unsigned char, unsigned char, unsigned char) in cc-8ed1f9.o ... _SHA256_Final, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _SHA256_Init, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _SHA256_Update, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _gmp_randinit_mt, referenced from: _main in cc-8ed1f9.o ___gmp_randseed, referenced from: main in cc-8ed1f9.o gmpn_perfect_square_p, referenced from: _main in cc-8ed1f9.o ___gmpz_add, referenced from: _main in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o ... _gmpz_add_ui, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o main in cc-8ed1f9.o Secp256K1::GetY(Int, bool) in cc-8ed1f9.o Secp256K1::GetY(Int, bool) in cc-8ed1f9.o Secp256K1::ParsePublicKeyHex(char*, Point&, bool&) in cc-8ed1f9.o ... gmpz_clear, referenced from: std::1::vector<Point, std::1::allocator>::~vector[abi:v160006]() in cc-8ed1f9.o std::1::vector<Point, std::1::allocator>::~vector[abi:v160006]() in cc-8ed1f9.o std::1::vector<Point, std::1::allocator>::~vector[abi:v160006]() in cc-8ed1f9.o std::1::vector<Point, std::1::allocator>::~vector[abi:v160006]() in cc-8ed1f9.o std::1::vector<Point, std::1::allocator>::~vector[abi:v160006]() in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _gmpz_clears, referenced from: Secp256K1::GetY(Int, bool) in cc-8ed1f9.o ___gmpz_cmp, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o main in cc-8ed1f9.o ... gmpz_export, referenced from: thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o ... _gmpz_fdiv_q, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o main in cc-8ed1f9.o gmpz_fdiv_q_ui, referenced from: Secp256K1::GetY(Int, bool) in cc-8ed1f9.o _gmpz_get_str, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... ___gmpz_import, referenced from: _main in cc-8ed1f9.o thread_process_minikeys(void) in cc-8ed1f9.o thread_process_minikeys(void) in cc-8ed1f9.o thread_process_minikeys(void) in cc-8ed1f9.o thread_process_minikeys(void) in cc-8ed1f9.o _gmpz_init, referenced from: _main in cc-8ed1f9.o _gmpz_init_set, referenced from: thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o ... _gmpz_init_set_str, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_pub2rmd(void) in cc-8ed1f9.o thread_process_vanity(void) in cc-8ed1f9.o ... _gmpz_init_set_ui, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _gmpzinits, referenced from: Secp256K1::GetY(Int, bool) in cc-8ed1f9.o gmpz_invert, referenced from: Point::Reduce() in cc-8ed1f9.o Secp256K1::DoubleDirect(Point&) in cc-8ed1f9.o Secp256K1::AddDirect(Point&, Point&) in cc-8ed1f9.o IntGroup::ModInv() in cc-8ed1f9.o ___gmpz_mod, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o main in cc-8ed1f9.o ... gmpz_mul, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... _gmpz_mul_2exp, referenced from: _main in cc-8ed1f9.o main in cc-8ed1f9.o gmpz_pow_ui, referenced from: Secp256K1::GetY(Int, bool) in cc-8ed1f9.o _gmpzpowm, referenced from: Secp256K1::GetY(Int, bool) in cc-8ed1f9.o gmpz_powm_ui, referenced from: thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o ... _gmpz_set, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... ___gmpz_set_str, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o main in cc-8ed1f9.o ... gmpz_set_ui, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o ... ___gmpz_setbit, referenced from: Int::Rand(Int, Int) in cc-8ed1f9.o ___gmpz_sizeinbase, referenced from: thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o ... _gmpz_sqrt, referenced from: main in cc-8ed1f9.o gmpz_sub, referenced from: _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o _main in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o thread_bPload_2blooms(void) in cc-8ed1f9.o ... _gmpz_tstbit, referenced from: thread_process(void) in cc-8ed1f9.o thread_process(void) in cc-8ed1f9.o thread_process_vanity(void) in cc-8ed1f9.o thread_process_vanity(void) in cc-8ed1f9.o Secp256K1::GetY(Int, bool) in cc-8ed1f9.o Secp256K1::GetPublicKeyHex(bool, Point&) in cc-8ed1f9.o Secp256K1::GetPublicKeyHex(bool, Point&, char*) in cc-8ed1f9.o ... _gmpz_urandomb, referenced from: Int::Rand(Int, Int) in cc-8ed1f9.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

bane77111 commented 9 months ago

___gmpz_urandomb, referenced from: Int::Rand(Int, Int) in cc-8ed1f9.o clang: error: linker command failed with exit code 1 (use -v to see invocation)

I think you should reinstall GMP via Homebrew and try again?

Wezix commented 5 months ago

Thank you @bane77111 Got this to work OK on an M3 Pro 18GB was hitting 65Ph/s

lucasmozzatto commented 2 months ago

Thank you @bane77111 Got this to work OK on an M3 Pro 18GB was hitting 65Ph/s

I'm a bit of a layman. Do you have any step-by-step instructions on how to run Keyhunter? I believe I managed to get around the error of doing the make

vladkens commented 2 months ago

Hi everyone in this discussion. I also had problems running it on macOS, so I made an alternate version (also in pure C): https://github.com/vladkens/ecloop

Have a look and see if it works for you too. This program has less features, but it can do range scan and private key search from given list. Searches for hash160 from given list or with bloom filter.