-
Notifications
You must be signed in to change notification settings - Fork 55
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
93 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,108 @@ | ||
import os, random, codecs, time, threading | ||
from bit.format import bytes_to_wif | ||
from bit import Key | ||
# install cryptofuzz & colorthon | ||
# pip install cryptofuzz / pip install colorthon | ||
import os, random, time, threading | ||
from cryptofuzz import Convertor | ||
from cryptofuzz.assest import MAX_PRIVATE_KEY | ||
from colorthon import Colors | ||
|
||
co = Convertor() | ||
|
||
def _HexGen(size): | ||
key = "" | ||
for i in range(size): | ||
k = str(random.choice("0123456789abcdef")) | ||
key += f"{k}" | ||
return key | ||
# COLORS CODE -------------------- | ||
RED = Colors.RED | ||
GREEN = Colors.GREEN | ||
YELLOW = Colors.YELLOW | ||
CYAN = Colors.CYAN | ||
WHITE = Colors.WHITE | ||
RESET = Colors.RESET | ||
# COLORS CODE ------------------- | ||
|
||
def getClear(): | ||
if os.name == 'nt': | ||
os.system('cls') | ||
else: | ||
os.system('clear') | ||
|
||
def _HexToWif(Hex): | ||
byteHex = codecs.decode(Hex, 'hex') | ||
wifCompressed = bytes_to_wif(byteHex, compressed=True) | ||
wifUnCompressed = bytes_to_wif(byteHex, compressed=False) | ||
return wifCompressed, wifUnCompressed | ||
|
||
def KeyGen(size): | ||
k = "".join(random.choice('0122333444455555666666777777788888888999999999abcdef') for _ in range(size)) | ||
if int(k, 16) < MAX_PRIVATE_KEY: | ||
return k | ||
else: | ||
return KeyGen(size) | ||
|
||
def _WifToAddr(WifCompressed, WifUnCompressed): | ||
BitCompressed = Key(WifCompressed) | ||
BitUnCompressed = Key(WifUnCompressed) | ||
return BitCompressed.address, BitUnCompressed.address | ||
|
||
def _LoadTargetFile(FileName): | ||
tgt = [i.strip() for i in open(FileName).readlines()] | ||
return set(tgt) | ||
def Hex_To_Addr(hexed, compress): | ||
return co.hex_to_addr(hexed, compress) | ||
|
||
|
||
def Rich_Loader(FileName): | ||
return set([i.strip() for i in open(FileName).readlines()]) | ||
|
||
|
||
def getHeader(richFile, loads, found): | ||
getClear() | ||
output = f""" | ||
{YELLOW}\t██████╗ ██╗ ██╗██████╗ ██████╗ ███╗ ███╗██╗██████╗ {RESET} | ||
{YELLOW}\t██╔══██╗╚██╗ ██╔╝██╔══██╗██╔═══██╗████╗ ████║██║██╔══██╗{RESET} | ||
{YELLOW}\t██████╔╝ ╚████╔╝ ██████╔╝██║ ██║██╔████╔██║██║██║ ██║{RESET} | ||
{YELLOW}\t██╔═══╝ ╚██╔╝ ██╔══██╗██║ ██║██║╚██╔╝██║██║██║ ██║{RESET} | ||
{YELLOW}\t██║ ██║ ██║ ██║╚██████╔╝██║ ╚═╝ ██║██║██████╔╝{RESET} | ||
{YELLOW}\t╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚═════╝ {RESET} | ||
{RED}╔═╗╦═╗╔═╗╔═╗╦═╗╔═╗╔╦╗╔╦╗╔═╗╦═╗{RESET} {WHITE}╔╦╗╔╦╗╔╦╗╦═╗╔═╗╔═╗ ╔═╗╔═╗╔╦╗{RESET} | ||
{RED}╠═╝╠╦╝║ ║║ ╦╠╦╝╠═╣║║║║║║║╣ ╠╦╝{RESET} {WHITE}║║║║║║ ║║╠╦╝╔═╝╠═╣ ║ ║ ║║║║{RESET} | ||
{RED}╩ ╩╚═╚═╝╚═╝╩╚═╩ ╩╩ ╩╩ ╩╚═╝╩╚═{RESET} {WHITE}╩ ╩╩ ╩═╩╝╩╚═╚═╝╩ ╩o╚═╝╚═╝╩ ╩{RESET} | ||
{RED}➜{RESET} {WHITE}Pyromid {RESET}{CYAN}v2 {RESET}Ⓟ{GREEN} Powered By CryptoFuzz - Exclusive MMDRZA.COM{RESET} | ||
{RED}▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬{RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Import Rich File :{RESET}{CYAN} {richFile} {RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Method Generated :{RESET}{CYAN} Random Without Repeat. {RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Address Type :{RESET}{CYAN} Compressed / Uncompressed.{RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Max Decimal (HEX):{RESET}{CYAN} {MAX_PRIVATE_KEY} {RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Result Checked :{RESET}{CYAN} {loads} {RESET} | ||
{RED}[{RESET}{WHITE}►{RESET}{RED}]{RESET}{GREEN} Matched Address :{RESET}{CYAN} {found} {RESET} | ||
""" | ||
print(output) | ||
|
||
|
||
def MainCheck(): | ||
global z, wf | ||
target_file = 'Rich.txt' | ||
Target = _LoadTargetFile(FileName=target_file) | ||
z = 0 | ||
wf = 0 | ||
lg = 0 | ||
while True: | ||
z += 1 | ||
Private_Key = _HexGen(64) | ||
WifCompressed, WifUncompressed = _HexToWif(Hex=Private_Key) | ||
CompressAddr, UnCompressAddr = _WifToAddr(WifCompressed, WifUncompressed) | ||
lct = time.localtime() | ||
if str(CompressAddr) in Target or str(UnCompressAddr) in Target: | ||
wf += 1 | ||
open('Found.txt', 'a').write(f'Compressed Address: {CompressAddr}\n' | ||
f'UnCompressed Address: {UnCompressAddr}\n' | ||
f'Private Key: {Private_Key}\n' | ||
f'WIF (Compressed): {WifCompressed}\n' | ||
f'WIF (UnCompressed): {WifUncompressed}\n') | ||
|
||
elif int(z % 100000) == 0: | ||
lg += 100000 | ||
print(f"Generated: {lg} (SHA-256 - HEX) ...") | ||
else: | ||
tm = time.strftime("%Y-%m-%d %H:%M:%S", lct) | ||
print(f"[{tm}][Total: {z} Check: {z * 2}] #Found: {wf} ", end="\r") | ||
global z, wf | ||
target_file = 'Rich.txt' | ||
Targets = Rich_Loader(target_file) | ||
z = 0 | ||
wf = 0 | ||
lg = 0 | ||
getHeader(richFile=target_file, loads=lg, found=wf) | ||
while True: | ||
z += 1 | ||
privatekey = KeyGen(64) | ||
# compress address | ||
CompressAddr = Hex_To_Addr(privatekey, True) | ||
# uncompress address | ||
UncompressAddr = Hex_To_Addr(privatekey, False) | ||
lct = time.localtime() | ||
if str(CompressAddr) in Targets: | ||
wf += 1 | ||
open('Found.txt', 'a').write(f"Compressed Address: {CompressAddr}\n" | ||
f"Private Key: {privatekey}\n" | ||
f"DEC: {int(privatekey, 16)}\n" | ||
f"{'-' * 66}\n") | ||
elif str(UncompressAddr) in Targets: | ||
wf += 1 | ||
open('Found.txt', 'a').write(f"Uncompressed Address: {CompressAddr}\n" | ||
f"Private Key: {privatekey}\n" | ||
f"DEC: {int(privatekey, 16)}\n" | ||
f"{'-' * 66}\n") | ||
elif int(z % 100000) == 0: | ||
lg += 100000 | ||
getHeader(richFile=target_file, loads=lg, found=wf) | ||
print(f"Generated: {lg} (SHA-256 - HEX) ...") | ||
else: | ||
tm = time.strftime("%Y-%m-%d %H:%M:%S", lct) | ||
print(f"[{tm}][Total: {z} Check: {z * 2}] #Found: {wf} ", end="\r") | ||
|
||
|
||
MainCheck() | ||
|
||
|
||
if __name__ == '__main__': | ||
|
||
t = threading.Thread(target=MainCheck) | ||
t.start() | ||
t.join() | ||
t = threading.Thread(target=MainCheck) | ||
t.start() | ||
t.join() |