Kangaroo(Pollard’s kangaroo for SECPK1)
A Pollard’s kangaroo interval ECDLP solver for SECP256K1 (based on VanitySearch engine).
This program is limited to a 125bit interval search.
Feature
Fixed size arithmetic
Fast Modular Inversion (Delayed Right Shift 62 bits)
SecpK1 Fast modular multiplication (2 steps folding 512bits to 256bits reduction using 64 bits digits)
Multi-GPU support
CUDA optimisation via inline PTX assembly
git clone https://github.com/CryptoXploit/Kangaroo.git
https://github.com/CryptoXploit/Kangaroo/raw/main/KangarooWindows/Kangaroo.exe
Lets fire up the tool to available options
C:\Tools\Kangaroowindows>Kangaroo.exe -h
we need to provide an input file which consists of following data-
Start Range
End Range
public key 1
public key 2…….
remember that Kangaroo works only on public keys and the input file must have all values in hex format.the public key can be both compressed/uncompressed.
lets create an example text file called target.txt with puzzle #64 range and public key
C:\Tools\Kangaroowindows>notepad target.txt
lets fire up the command to see its working
C:\Tools\Kangaroowindows>Kangaroo.exe -t 1 -gpu target.txt
we used -t CPU threads as 1 and GPU calculation.its multi GPU supported tool same like vanity.within 37 seconds it found the key
we can periodically save the work and can restore it later on
C:\Tools\Kangaroowindows>Kangaroo.exe -t 1 -gpu -ws -w progress.work -wi 15 target.txt
we have used CPU thread 1 and -GPU calculation along with -ws switch for maintaining configuration with DP overhead -w for saving periodic progress and -wi for input target file and periodic saving after each 15 seconds.
To resume later we can use
C:\Tools\Kangaroowindows>Kangaroo.exe -ws -w progress.work -wi 15 -i progress.work
we dont need to supply target.txt again and we can resume the existing job from worker file progress.work
Kangaroo is very efficient and can be used in server-client cracking distribution where a kangaroo server will act as distribution point and multiple nodes can act as workers which will get job from server and periodically the progress will be send to server.