Я с позволения, запощу здесь код этой проги (с оригинальной темы) для его небольшого разбора:
import secrets
import sha3
import eth_keys
from eth_keys import keys
import requests # To install from pip
import re
import colorama
from colorama importFore,Back,Style
import ctypes
colorama.init()
kernel32 = ctypes.windll.kernel32
kernel32.SetConsoleMode(kernel32.GetStdHandle(-11),7)
x =0
while x<10:
private_key = str(hex(secrets.randbits(256))[2:])
private_key_bytes = bytes.fromhex(private_key)
public_key_hex = keys.PrivateKey(private_key_bytes).public_key
public_key_bytes = bytes.fromhex(str(public_key_hex)[2:])
keccak256_of_public_key_bytes = sha3.keccak_256(public_key_bytes).hexdigest()
public_address = keys.PublicKey(public_key_bytes).to_address()
checksum = keys.Public.Key(public_key_bytes).to_checksum_address()
print(Fore.WHITE +'\n Private_key:',private_key,
Fore.BLUE +'\n Ethereum address:',public_address)
x = x+1
url ='https://www.blockchain.com/ru/eth/address/'+ str(public_address)
print(Fore.YELLOW ,url)
requests.post(url, headers={'UA':'Chrome'}, data={"foo":'bar'})
res = requests.get(url)
a = str(res.text)
match = re.findall(r'Oкoнчaтeльный бaлaнc</span></div></div><div class="sc-8sty72-0 bFeqhe"><span class="sc-1ryi78w-0 cILyoi sc-16b9dsl-1 ZwupP u3ufsr-0 eQTRKC" opacity="1">0.00000000 ETH</span>', a)
zz= len('Oкoнчaтeльный бaлaнc</span></div></div><div class="sc-8sty72-0 bFeqhe"><span class="sc-1ryi78w-0 cILyoi sc-16b9dsl-1 ZwupP u3ufsr-0 eQTRKC" opacity="1">')
aaaa = str(match)
bbbb = slice(154,168)
xxxx = aaaa[bbbb]
print(Fore.RED, xxxx)
if len(match)==0:
f1 = open("text1.html",'a')
f1.write('\n <br>'+ str(private_key))
f1.write('\n <br>'+ str(public_address)+'<br> <p style="color:red">0.00000000</p> <br>')
f1.write('\n <br><p style="color:green">+++</p><br>')
f1.close()
Код довольно неоптимизирован, как по мне. Во многих смыслах. Например, он генерирует только 10 адресов, проверяет их и все. Хочешь следующие 10 - запускай заново программу. А это потеря времени. Почему бы вместо этого не сделать бесконечный цикл, (что то по типу while True) который бы останавливался при нахождении первого ненулевого баланса?
Еще конечно радуют get запросы в коде. Вместо пары сикстилионов лет на взлом Эфира придется ждать в * n раз больше