11
fokus pada
503
Pengikut

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Dicipta dalam: 2023-03-14 23:25:45, dikemas kini pada: 2024-11-29 18:57:29
comments   6
hits   1558

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Saya melihat dalam kumpulan pakar di sebelah bahawa OKX mengadakan acara penyelesaian misteri Hari Pi Sedunia, temanya adalah seperti berikut

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Sebagai seorang pengaturcara kanan, selepas melihat berita itu, sudut mulut saya sedikit terangkat, dan saya membuka MacBook Pro saya dan mula bekerja tanpa berkata apa-apa.

menganalisis

Pegawai berkata bahawa terdapat 61 bit kunci di bahagian gambar yang bertindih dengan pi Seperti yang kita sedia maklum, panjang kunci persendirian ialah 32 bait, yang ditukar kepada hex, iaitu 64 bit ditambah awalan 0x. , sejumlah 66 bit, 61 bit sudah ada Pada pandangan pertama, “0X” dalam baris pertama gambar adalah jelas bukan pi, tetapi awalan kunci peribadi Kemudian terdapat 5 digit (0123456789ABCDEF). susunan rawak watak-watak ini tidak ada masalah dengan kekuatan kasar, jadi mari kita mulakan

Gunakan alat terbina dalam Mac untuk hanya menajam dan melaraskan warna

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Nampaknya ini Mac boleh mengecam aksara pada gambar secara automatik.

3.141592653589793230X1D64338
А694502884197169399375105820
974925E123078164062862089986
28033DB034211706409914808651
32823066470ED424609550582231
8B3
81284
•探索,
038
永无止境
027
493
05%
0128
4756482337867831731712019091
47D9E56692346034861045432664
8213393607743749141273724587
006606315588174881BEEA209628
2925409192744436789259036001

Ini pastinya tidak boleh digunakan Mari kita betulkan secara manual Kami menandai yang belum disahkan yang disekat oleh imej sebagai*Tidak. Tidak pasti, saya akan memberitahu anda kemudian Lain-lain yang disekat oleh imej boleh dinilai dengan memerhatikan bentuk lejang fon lain Pada masa ini, kami menggunakan Python untuk mengira perbezaan antara kedua-duanya_’ bermakna hanya berbeza

img = '''
3.141592653589793230X1D64338
A694502884197169399375105820
974925E123078164062862089986
28033DB034211706409914808651
32823066470ED424609550582231
8B32594081284811174502841027
0193**2*D2299964462294895493
0381960EFC8103F9365933446128
4756482337867831731712019091
47D9E56692346034861045432664
82133936077A3749141273724587
006606315588174881BEEA209628
2925409192744436789259036001
'''
# 真实圆周率
real='''
3.14159265358979323846264338
3279502884197169399375105820
9749445923078164062862089986
2803482534211706798214808651
3282306647093844609550582231
7253594081284811174502841027
0193852110555964462294895493
0381964428810975665933446128
4756482337867831652712019091
4564856692346034861045432664
8213393607260249141273724587
0066063155881748815209209628
2925409171536436789259036001
'''

items = img.strip().split('\n')
diffStr = ''
for pos, line in enumerate(real.strip().split('\n')):
    for i, c in enumerate(line):
        imgLine = list(items[pos])
        if line[i] == imgLine[i]:
            imgLine[i] = '_'
        else:
            diffStr += imgLine[i]
        items[pos] = ''.join(imgLine)
print('\n'.join(items))
print(diffStr, 'Len:', len(diffStr))

Keputusan pelaksanaan adalah seperti berikut:

___________________0X1D_____
A694________________________
____25E1____________________
____3DB0________4099________
___________ED42_____________
8B32________________________
____**_*D2299_______________
______0EFC___3F93___________
________________731_________
_7D9E_______________________
__________7A37______________
__________________BEEA______
________92744_______________
0X1DA69425E13DB04099ED428B32***D22990EFC3F937317D9E7A37BEEA92744 Len: 64

Ada 3 digit tambahan, dan ada betul-betul 3 yang tidak pasti Mari cuba keluarkannya, kerana selepas menghapuskannya, 61 digit yang lain semuanya ok. Hanya perbezaan yang paling pasti disimpan, dan awalan akhir adalah seperti berikut

0X1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744

Seterusnya, kita masih perlu menggunakan Python untuk memanjat baki secara ganas pada rantaian OK dan membandingkan kunci persendirian yang mempunyai baki Malah, anda juga boleh terlebih dahulu memilih kunci awam dengan pemindahan 314USDT, yang lebih pantas , ada gas tinggal semak terus kod.

import sys
import web3,time,logging
from eth_account import Account
from web3 import Web3
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s')
w3 = Web3(Web3.HTTPProvider("https://exchainrpc.okex.org"))
logging.info(w3.clientVersion)
found = None

def get_balance_gas(key):
    global found
    _counter += 1
    address = Account.from_key(key).address
    logging.info('fetch address %s %s' % (found, address))
    while True:
        try:
            balance = w3.eth.get_balance(address)
            break
        except:
            logging.warning(traceback.format_exc())
            time.sleep(1)
            continue
    if balance != 0:
        found = key
        raise BaseException('Found balance: %s %s' % (address, balance))
    return balance

from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(max_workers=50)
keys = []
prefix = '1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744'
# 无所谓优化算法了, 争分夺秒跑密钥
ch = '0123456789ABCDEF'
for a in range(0, 16):
    for b in range(0, 16):
        for c in range(0, 16):
            for d in range(0, 16):
                for e in range(0, 16):
                    keys.append("0x"+prefix+ch[a]+ch[b]+ch[c]+ch[d]+ch[e])
print('all keys:', len(keys))
tasks = [None for t in keys]
for idx, key in enumerate(keys):
    tasks[idx] = executor.submit(get_balance_gas, key)
for t in tasks:
    t.result()
    

Anda boleh melihat bahawa ia perlu dilalui 1048576 kali Menggunakan multithreading adalah lebih pantas.

2023-03-15 00:20:19,491 exchain-v1.6.8.5
all keys: 1048576
2023-03-15 00:20:20,372 fetch address None 0xc20C41f06F2428a0FD84ef03Ec6960992F5f8016
2023-03-15 00:20:20,473 fetch address None 0xcFa87ee54bc1c14c09a3AB3f41640bBab5C5480a
2023-03-15 00:20:20,483 fetch address None 0x126E922652f8B276F231D0eCA94d98685a26a45D
以下省略......

Risau menanti~~~~, berita buruk, tiada keputusan sebelum strategi keluar, semua yang dipaparkan adalah Tiada

Peristiwa yang tiba-tiba

Ini tidak sepatutnya berlaku. Saya tidak dapat memahaminya. Saya mula membaca perbincangan semua orang di Twitter dan mendapati bahawa semua orang telah mengikuti langkah yang sama dengan saya , dan pegawai itu belum mengumumkannya lagi 61 digit pertama yang betul Pada masa ini, jawapan yang pelik menarik perhatian saya kerana terdapat perbezaan di bahagian tengah.D2299Tidak ada bantahan, saya pasti, tetapi dia juga kelihatan sangat yakin.

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Tetapi angka ke-61 yang diberikan oleh orang ini ialah D2290. Dia juga mengatakan bahawa dia telah memeriksanya dengan teliti.

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Dengan sikap cuba, saya dapati beberapa orang lain yang meninggalkan mesej mengatakan mereka telah menemui 61 orang, dan mereka semua kelihatan sangat yakin.

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Saya mengumpulkan semua awalan yang ditemui di kawasan ulasan dan melintasinya dengan kod sebelumnya Kod asas tidak banyak berubah, jadi saya tidak akan menampalnya lagi.

prefixs =[
'1DA69425E13DB04099ED428B3202290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B320D2290EFC3F937317D9E7A37BEEA92744',
'1DA694255E3DB040990ED428B3208890EFC3F937317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B3202299EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB01099ED428B3202290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D2290EFC3F9317317D9E7A37BEEA92744',
'1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744',
]

Malah, terdapat lebih banyak komen baru. Nilai PI seorang saudara berbeza dengan saya. Mari jalankan ini terlebih dahulu.

1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155

Dia ialah D229, tetapi gambar itu jelas menunjukkan D2299, dan terdapat 7 selepas 731, tetapi dia mempunyai dua. Tetapi ternyata betul 61 digit Saya tidak tahu bagaimana dia mengira saya sangat ingin tahu, tetapi saya tidak meragui operasi saya, saya melihat dalam komen bahawa perkhidmatan pelanggan rasmi mengatakan ada versi lain daripada pi. Saya jahil Pengetahuan yang dipelajari dan pemahaman semasa tentang alam semesta oleh manusia, nombor tidak rasional pi boleh mewakili ketakterhinggaan alam semesta, dan bahagian perpuluhannya tidak akan berulang atau berakhir alam semesta yang anda ada. Jika terdapat versi lain, mungkin dari dunia selari.

Ini adalah tindak balas perkhidmatan pelanggan selepas seorang lagi abang besar menyatakan keraguan:

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Ia adalah peningkatan pengetahuan.

Kod pemindahan syiling Web3

Akhir sekali, berikut adalah kod untuk memindahkan bonus Kali ini saya terus menggunakan fungsi Web3 platform FMZ saya hanya menetapkan alamat rantaian kepada OKC, tidak mengapa Saya boleh melakukannya dalam dua baris

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

buktikan

Alamat kunci awam retak

>>> from eth_account import Account
>>> Account.from_key('0x1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155').address
'0x0bd08825e05e540C9508961a32E58D14da47275A'

Lihat pautan: https://www.okx.com/cn/explorer/okc/address/0x0bd08825e05e540c9508961a32e58d14da47275a

TX selepas saya mengambilnya: https://www.okx.com/cn/explorer/okc/tx/0x4211418b09571011417257201aaf10fc3c5d638809a9456eb5aba5fe8c5d4e2c

Anda boleh melihat bahawa alamat penerima adalah

0x25f0a126be95f437ee71d7c4de725567c5f6c731

Cara Memecahkan Hadiah Teka-teki Kunci Peribadi OKX untuk Hari Pi Sedunia (dengan Kod Penuh)

Untuk membuktikan bahawa alamat ini adalah milik saya, saya menggunakan alamat penerima untuk memindahkan wang ke alamat lubang hitam.

https://www.okx.com/cn/explorer/okc/tx/0xc32b5e299064456af3eb67c34a3b153f74a1bd18a31429052e3e3c5614bcdb6e

Alamat black hole ialah 0x0000000000000000005757572e464d5a2e434f4d

Alamat lubang hitam ini mengandungi URL yang, selepas penyahkodan, adalah

~ % python -c 'print(bytes.fromhex("0000000000000000005757572e464d5a2e434f4d"))'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00WWW.FMZ.COM'

Akhir kata

Ini adalah penghujungnya, saya berterima kasih atas pengumpulan pengetahuan saya selama ini. Jika tidak, kelajuan retak tidak akan begitu pantas dan orang lain akan mendahului saya. Saya pasti bahawa terdapat ralat dalam rajah rasmi Apa pun, saya bertuah kerana telah memecahkan jawapannya sebelum ia didedahkan kepada umum.