11
پر توجہ دیں
503
پیروکار

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

میں تخلیق کیا: 2023-03-14 23:25:45, تازہ کاری: 2024-11-29 18:57:29
comments   6
hits   1558

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

میں نے اگلے دروازے پر ماہرین کے گروپ میں دیکھا کہ OKX ورلڈ پائی ڈے پر اسرار حل کرنے والی تقریب کا انعقاد کر رہا ہے، تھیم درج ذیل ہے۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

ایک سینئر پروگرامر ہونے کے ناطے یہ خبر دیکھ کر میرے منہ کے کونے قدرے بلند ہو گئے اور میں نے اپنا MacBook Pro کھولا اور بغیر کچھ کہے کام کرنے لگا۔

تجزیہ

حکام کا کہنا ہے کہ تصویر کے اس حصے میں کلید کے 61 بٹس ہیں جو pi کے ساتھ اوورلیپ ہوتے ہیں جیسا کہ ہم سب جانتے ہیں کہ پرائیویٹ کی کی لمبائی 32 بائٹس ہے جو کہ 64 بٹس پلس 0x پریفکس ہے۔ , مجموعی طور پر 66 بٹس، 61 بٹس پہلے سے موجود ہیں، ظاہر ہے کہ تصویر کی پہلی لائن میں موجود “0X” pi نہیں ہے، لیکن اس کے بعد 5 ہندسے (0123456789ABCDEF) ہیں۔ ان کرداروں کی بے ترتیب ترتیب میں بروٹ فورس چلانے میں کوئی حرج نہیں ہے، تو آئیے شروع کرتے ہیں۔

رنگ کو تیز کرنے اور ایڈجسٹ کرنے کے لیے میک کے بلٹ ان ٹولز کا استعمال کریں۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

ایسا لگتا ہے کہ میک خود بخود تصویر پر موجود حروف کو پہچان سکتا ہے۔

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

یہ یقینی طور پر قابل استعمال نہیں ہے۔*نہیں، یقین نہیں، میں آپ کو بعد میں بتاؤں گا۔ دوسرے فونٹس کے اسٹروک کی شکل کو دیکھ کر اندازہ لگایا جا سکتا ہے کہ ہم دونوں کے درمیان فرق کا حساب لگانے کے لیے Python کا استعمال کرتے ہیں۔_’ کا مطلب ہے کہ صرف مختلف

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

عملدرآمد کے نتائج درج ذیل ہیں:

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

3 اضافی ہندسے ہیں، اور بالکل 3 غیر یقینی ہیں، آئیے انہیں ہٹانے کی کوشش کرتے ہیں، کیونکہ ان کو ختم کرنے کے بعد، باقی 61 ہندسے ٹھیک ہیں۔ صرف سب سے زیادہ مخصوص اختلافات رکھے گئے ہیں، اور حتمی سابقہ ​​درج ذیل ہے۔

0X1DA69425E13DB04099ED428B32D22990EFC3F937317D9E7A37BEEA92744

اس کے بعد، ہمیں ابھی بھی OK چین پر بیلنس پر چڑھنے کے لیے Python کا استعمال کرنے کی ضرورت ہے اور اس بات کا موازنہ کریں کہ کس پرائیویٹ کلید میں بیلنس ہے، آپ پہلے 314USDT ٹرانسفر کے ساتھ عوامی کلید بھی منتخب کر سکتے ہیں، جو کہ آفیشل ویب سائٹ کے مطابق ہے۔ ، گیس باقی ہے براہ راست بیلنس چیک کریں۔

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

آپ دیکھ سکتے ہیں کہ اسے 1048576 بار منتقل کرنے کی ضرورت ہے۔

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

بے چینی سے انتظار ~~~~، بری خبر، حکمت عملی سے باہر نکلنے سے پہلے کوئی نتیجہ نہیں ہے، سبھی دکھائے گئے ہیں کوئی نہیں۔

واقعات کا اچانک موڑ

ایسا نہیں ہونا چاہیے، میں نے ٹویٹر پر سب کی بحثیں پڑھنا شروع کیں، لیکن عجیب بات یہ تھی کہ کسی نے یہ نہیں کہا تھا کہ یہ ڈکرپشن کامیاب ہے۔ ، اور ابھی تک اس کا اعلان نہیں کیا گیا تھا کہ پہلے 61 ہندسے درست ہیں اس وقت، ایک عجیب جواب نے میری توجہ مبذول کروائی کیونکہ درمیان میں فرق تھا۔D2299کوئی اعتراض نہیں، مجھے یقین ہے، لیکن وہ بھی بہت پر اعتماد لگتا ہے۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

لیکن اس شخص کا 61واں ہندسہ ہے اس نے یہ بھی کہا کہ اس سے کوئی فرق نہیں پڑتا۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

کوشش کرنے والے رویے کے ساتھ، مجھے کئی دوسرے لوگ ملے جنہوں نے یہ کہتے ہوئے پیغامات چھوڑے کہ انہیں 61 افراد مل گئے ہیں، اور وہ سب بہت پر اعتماد لگ رہے تھے۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

میں نے تبصرے کے علاقے میں پائے جانے والے تمام سابقے جمع کیے اور انہیں پچھلے کوڈ کے ساتھ عبور کیا، بنیادی کوڈ میں زیادہ تبدیلی نہیں آئی، اس لیے میں اسے دوبارہ پیسٹ نہیں کروں گا۔

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

درحقیقت، ایک بھائی کی PI قدر میرے سے مختلف ہے۔ آئیے پہلے ان کو چلاتے ہیں یہ اصل میں کام کرتا ہے اس کا مطلب یہ ہے کہ یہ پرائیویٹ کلید نہیں ہے۔

1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155

اس کا D229 ہے، لیکن تصویر واضح طور پر D2299 دکھاتی ہے، اور 731 کے بعد 7 ہے، لیکن اس کے پاس دو ہیں۔ لیکن یہ درست 61 ہندسے نکلے مجھے نہیں معلوم کہ میں بہت متجسس ہوں، لیکن میں نے تبصروں میں دیکھا کہ کوئی اور ہے۔ پائی کا ورژن میں جاہل ہوں اور انسانوں کے ذریعہ کائنات کی موجودہ تفہیم، غیر معقول نمبر pi کائنات کی لامحدودیت کی نمائندگی کرسکتا ہے، اور اس کا اعشاریہ کبھی بھی ختم نہیں ہوگا۔ آپ جس کائنات میں ہیں اس کا UUID۔ اگر اس کے دوسرے ورژن ہیں تو شاید ایک متوازی دنیا سے۔

یہ کسٹمر سروس کا جواب ہے جب ایک اور بڑے بھائی نے شکوک کا اظہار کیا:

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

یہ علم میں اضافہ ہے۔

Web3 سکے ٹرانسفر کوڈ

آخر میں، اس بار میں نے ایف ایم زیڈ پلیٹ فارم کا ویب 3 فنکشن استعمال کیا ہے، جب میں نے ایکسچینج میں پرائیویٹ کلید کو شامل کیا تو کوئی فرق نہیں پڑتا میں اسے ڈیبگر موڈ میں دو لائنوں میں کر سکتا ہوں۔

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

ثابت کریں

کریک شدہ عوامی کلیدی پتہ

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

لنک دیکھیں: https://www.okx.com/cn/explorer/okc/address/0x0bd08825e05e540c9508961a32e58d14da47275a

میں نے اسے لے جانے کے بعد TX: https://www.okx.com/cn/explorer/okc/tx/0x4211418b09571011417257201aaf10fc3c5d638809a9456eb5aba5fe8c5d4e2c

آپ دیکھ سکتے ہیں کہ وصول کنندہ کا پتہ ہے۔

0x25f0a126be95f437ee71d7c4de725567c5f6c731

عالمی پی آئی ڈے کے لیے OKX کا پرائیویٹ کلیدی پہیلی انعام کیسے کریک کریں (مکمل کوڈ کے ساتھ)

یہ ثابت کرنے کے لیے کہ یہ پتہ میرا ہے، میں نے بلیک ہول ایڈریس پر رقم منتقل کرنے کے لیے وصول کنندہ کا پتہ استعمال کیا۔

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

بلیک ہول کا پتہ ہے۔ 0x0000000000000000005757572e464d5a2e434f4d

یہ بلیک ہول ایڈریس ایک یو آر ایل پر مشتمل ہے جو ڈی کوڈنگ کے بعد ہے۔

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

بعد کا لفظ

یہ ہے پیچھے مڑ کر دیکھ کر، میں گزشتہ برسوں میں اپنے علم کو جمع کرنے کے لیے شکر گزار ہوں، ورنہ یہ رفتار اتنی تیز نہ ہوتی اور دوسرے مجھ سے آگے نکل جاتے۔ مجھے یقین ہے کہ سرکاری خاکہ میں کوئی خامی ہے بہرحال، میں خوش قسمت ہوں کہ اس کے جواب کو عام کرنے سے پہلے مجھے امید ہے کہ اگلی بار اسی طرح کے واقعات کا انعقاد زیادہ سخت ہوگا۔