Bagaimana cara memecahkan hadiah teka-teki kunci pribadi OKX untuk Hari Lingkaran Dunia (dengan kode lengkap)

Penulis:Penemu Kuantitas, Dibuat: 2023-03-14 23:25:45, Diperbarui: 2023-09-18 20:08:33

img

Lihatlah di masjid di sebelah sini, OKX sedang mengadakan acara untuk Hari Ronde Dunia, dengan tema sebagai berikut:

img

Sebagai seorang petani senior, setelah melihat berita itu, ujung mulutnya sedikit naik, membuka MacBook Pro saya, tidak ada kata lagi, mulai.

Analisis

Di gambar ini, ada 61 bit kunci yang bertolak belakang dengan nilai keliling, dan kunci pribadi yang kita semua tahu panjangnya adalah 32 byte, diubah menjadi hex, yaitu 64 bit ditambah dengan 0x, total 66 bit, sudah ada 61 bit, dengan mata telanjang, "0X" pada baris pertama di gambar jelas bukan nilai keliling adalah kunci pribadi, dan ada 5 digit di sebelah kanan, urutan acak dari karakter ini, tidak ada masalah dengan kekerasan, mulailah.

Menggunakan alat yang hadir di Mac untuk mengolah warna dengan cara sederhana.

img

Seperti ini, maka Mac akan secara otomatis mengenali karakter dalam gambar, dan kita langsung menyalin:

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

Ini pasti tidak bisa digunakan, karena kami telah mengubahnya secara manual, dan gambar yang tidak dikonfirmasi yang disembunyikan ditandai dengan angka *, tidak pasti, dan kami akan membahasnya nanti. Yang lain terjebak dalam gambar, yang dapat dipastikan dengan melihat bentuk tulisan dari font lain, saat ini kita masuk ke Python, menghitung perbedaan antara dua, yang sama dengan tag_' yang sama, hanya menunjukkan perbedaan

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))

Hasil pelaksanaannya adalah sebagai berikut:

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

Jika Anda menambahkan 3 digit, maka ada 3 angka yang tidak pasti di dalamnya, maka cobalah untuk menghilangkannya, karena jika Anda tidak memasukkan 61 digit lainnya, itu tidak masalah. Hanya perbedaan yang paling pasti yang tersisa, dan pada akhirnya kita akan menggunakan kata depan sebagai berikut:

0X1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744

Di bawah ini, Anda harus masuk ke Python, kekerasan untuk naik ke rantai OK saldo, membandingkan mana kunci pribadi yang memiliki saldo mana, sebenarnya Anda juga dapat memilih terlebih dahulu kunci publik yang memiliki transfer 314 USDT, ini lebih cepat, melihat situs web informasi mengatakan ada gas maka Anda dapat langsung mencari saldo, kode yang lebih berantakan.

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 dapat melihat bahwa saya harus melakukan 104.8576 kali, dan dengan kecepatan yang lebih cepat menggunakan banyak thread, saya bisa menjalankan server saya.

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
以下省略......

Di tengah menunggu dengan cemas, berita buruk datang, taktik sebelum mundur tidak berhasil, semuanya ditampilkan

Peninggalan

Tidak seharusnya, Busted tidak bisa mengerti, saya mulai menelusuri diskusi di Twitter dan menemukan bahwa semua orang hampir mencapai langkah yang sama dengan saya, tetapi anehnya, saat itu tidak ada yang mengatakan bahwa mereka berhasil memecahkannya, dan tidak ada yang mempublikasikan 61 besar yang benar, sebuah posting aneh menarik perhatian saya karena ada perbedaan di antara mereka.D2299Dia tidak memiliki arti yang berbeda, saya yakin, tapi dia juga terlihat sangat percaya diri.

img

Tapi orang ini memposting 61 digit dan itu adalah D2290, dan dia mengatakan bahwa itu telah diperiksa dengan seksama, tidak masalah, kebetulan, itu adalah buang-buang listrik.

img

Dengan semangat untuk mencoba, saya menemukan 61 yang telah ditemukan oleh beberapa orang lain, dan semua orang terlihat sangat percaya diri.

img

Dengan menggunakan kode yang sama, kode dasar tidak berubah, tidak ditempelkan lagi.

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

Sebenarnya ada lebih banyak komentar baru di belakang, dan ada seorang saudara yang memiliki nilai PI yang berbeda dengan saya, itu luar biasa. Anda harus berjalan dengan beberapa, Anda tidak bisa percaya mata Anda, Anda harus berjalan keluar, menunjukkan bahwa salah satu di depan Anda adalah benar, itu tidak ilmiah, kunci pribadi adalah:

1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155

Dia adalah D229 di sini, tapi gambarnya jelas D2299, dan 731 di belakang adalah 7, dia adalah dua, dan dia adalah dua. Tapi ternyata ini adalah 61 digit yang benar, tidak ada yang tahu bagaimana dia menghitungnya sendiri, sangat penasaran, tetapi saya tidak meragukan operasinya sendiri, melihat kolom komentar mengatakan bahwa pelanggan resmi mengatakan bahwa ada versi lain dari rasio lingkaran, saya merasa kesepian, dengan pengetahuan yang saya pelajari dan pemahaman manusia saat ini tentang alam semesta, rasio lingkaran ini adalah angka yang tidak masuk akal yang dapat mewakili alam semesta yang tak terbatas, bagian kecilnya tidak pernah berulang atau berakhir, Anda dapat memahami dia sebagai UUID Anda di alam semesta ini, jika ada versi lain, mungkin dari dunia paralel.

Ini adalah jawaban dari layanan pelanggan setelah pertanyaan dari seorang kakak laki-laki lain:

img

Ini adalah pengetahuan yang sangat besar.

Kode Web3

Akhirnya ada kode untuk memindahkan bonus, kali ini saya langsung menggunakan fitur Web3 dari platform FMZ, alamat rantai diatur menjadi OKC dan berjalan, kunci pribadi yang ditambahkan pada bursa tidak berfungsi, dan kemudian kedua baris diatasi, langsung di mode alat debugging.

img

Bukti

Alamat Kunci Publik yang Dihack

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

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

TX, yang saya bawa pergi:https://www.okx.com/cn/explorer/okc/tx/0x4211418b09571011417257201aaf10fc3c5d638809a9456eb5aba5fe8c5d4e2c

Anda dapat melihat alamat penerima:

0x25f0a126be95f437ee71d7c4de725567c5f6c731

img

Untuk membuktikan bahwa alamat ini adalah milik saya, saya menggunakan alamat penerima untuk mengirim tagihan ke alamat black hole.

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

Alamat lubang hitam adalah:0x0000000000000000005757572e464d5a2e434f4d

Alamat lubang hitam ini berisi sebuah kode yang kemudian didekode sebagai

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

Kata-Kata Belakang

Dan itu berakhir di sini, kembali ke belakang, atau terima kasih atas pengetahuan yang telah Anda kumpulkan selama bertahun-tahun, jika tidak, Anda tidak akan memecahkannya dengan cepat, dan orang lain akan mendahului Anda satu langkah. Kami yakin bahwa gambar resmi memiliki kesalahan, atau, lebih baiknya, lebih beruntung untuk menguraikan jawabannya sebelum diumumkan, dan berharap OKX akan lebih ketat saat mereka mengadakan acara serupa berikutnya.


Berkaitan

Lebih banyak

Ayah.Berapa lama waktu yang dibutuhkan untuk melakukan 1.04 juta kali?

Johnny.Z sangat agresif!

btcrobotKeterampilan yang luar biasa

Ukuran okZ sangat agresif!

Penemu KuantitasSekitar 20 menit.

Penemu KuantitasKereta tua datang.