Type/to search
11
Follow
651
Followers
विश्व पाई दिवस के लिए OKX की निजी कुंजी पहेली पुरस्कार को कैसे क्रैक करें (पूर्ण कोड के साथ)
Original
Created 2023-03-14 23:25:45  Updated 2024-11-29 18:57:29
 6
 2239

img

मैंने बगल में विशेषज्ञों के समूह में देखा कि OKX विश्व पाई दिवस रहस्य-सुलझाने का आयोजन कर रहा है, थीम इस प्रकार है

img

एक वरिष्ठ प्रोग्रामर के रूप में, समाचार देखने के बाद, मेरे मुंह के कोने थोड़े ऊपर उठ गए, और मैंने अपना मैकबुक प्रो खोला और बिना कुछ कहे काम करना शुरू कर दिया।

विश्लेषण

अधिकारियों का कहना है कि तस्वीर के उस हिस्से में कुंजी के 61 बिट हैं जो पाई के साथ ओवरलैप होते हैं। जैसा कि हम सभी जानते हैं, निजी कुंजी की लंबाई 32 बाइट्स है, जिसे हेक्स में परिवर्तित किया जाता है, जो 64 बिट्स प्लस 0x उपसर्ग है कुल 66 बिट्स, 61 बिट्स पहले से ही हैं। पहली नज़र में, चित्र की पहली पंक्ति में "0X" स्पष्ट रूप से pi नहीं है, बल्कि निजी कुंजी का उपसर्ग है। फिर 5 अंक (0123456789ABCDEF) हैं इन पात्रों की यादृच्छिक व्यवस्था। ब्रूट फोर्स चलाने में कोई समस्या नहीं है, तो चलिए शुरू करते हैं

रंग को आसानी से शार्प और एडजस्ट करने के लिए Mac के बिल्ट-इन टूल का उपयोग करें

img

यह इस तरह दिखता है। मैक स्वचालित रूप से चित्र पर मौजूद अक्षरों को पहचान सकता है। आइए उन्हें सीधे कॉपी करें:

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

इसके बाद, हमें अभी भी ओके चेन पर बैलेंस को हिंसक रूप से चढ़ने के लिए पायथन का उपयोग करने की आवश्यकता है और तुलना करें कि किस निजी कुंजी में बैलेंस है। वास्तव में, आप पहले 314USDT ट्रांसफर के साथ सार्वजनिक कुंजी का चयन भी कर सकते हैं, जो तेज़ है। आधिकारिक वेबसाइट के अनुसार , गैस बची हुई है। बस सीधे बैलेंस चेक करें। कोड गड़बड़ है।

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

उत्सुकता से प्रतीक्षा कर रहा हूँ~~~~, बुरी खबर, रणनीति से बाहर निकलने से पहले कोई परिणाम नहीं है, सभी प्रदर्शित None हैं

घटनाओं का अचानक मोड़

ऐसा नहीं होना चाहिए। मैं इसे समझ नहीं पाया। मैंने ट्विटर पर सभी की चर्चाएँ पढ़नी शुरू कीं और पाया कि सभी ने मेरे जैसे ही कदम उठाए थे। लेकिन अजीब बात यह थी कि किसी ने भी यह नहीं कहा था कि डिक्रिप्शन सफल रहा था। , और अधिकारी ने अभी तक इसकी घोषणा नहीं की थी। सही पहले 61 अंक। इस समय, एक अजीब जवाब ने मेरा ध्यान खींचा क्योंकि बीच में एक अंतर था।D2299मुझे यकीन है कि इसमें कोई आपत्ति नहीं है, लेकिन वह बहुत आश्वस्त भी दिखते हैं।

img

लेकिन इस व्यक्ति ने जो 61वां अंक दिया है वह D2290 है। उसने यह भी कहा कि उसने इसे ध्यान से जांच लिया है। इससे कोई फर्क नहीं पड़ता। चलो अपनी किस्मत आजमाते हैं। वैसे भी यह बिजली की बर्बादी है।

img

प्रयास करते हुए, मुझे कई अन्य लोग मिले जिन्होंने संदेश छोड़ा था कि उन्हें 61 लोग मिल गए हैं, और वे सभी बहुत आश्वस्त लग रहे थे।

img

मैंने टिप्पणी क्षेत्र में पाए गए सभी उपसर्गों को एकत्र किया और उन्हें पिछले कोड के साथ जोड़ दिया। मूल कोड में बहुत अधिक बदलाव नहीं हुआ है, इसलिए मैं इसे फिर से पेस्ट नहीं करूँगा।

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

वास्तव में, और भी नई टिप्पणियाँ हैं। एक भाई का PI मान मेरे से अलग है। यह आश्चर्यजनक है।
आइए पहले इन्हें चलाएँ। मुझे अपनी आँखों पर विश्वास नहीं हो रहा है। यह वास्तव में काम करता है। इसका मतलब है कि ऊपर दिए गए उपसर्गों में से एक सही है। यह वैज्ञानिक नहीं है। निजी कुंजी है:

1DA69425E13DB04099ED428B32D2290EFC3F9373177D9E7A37BEEA92744C8155

उनका नंबर D229 है, लेकिन चित्र में D2299 स्पष्ट रूप से दिख रहा है, तथा 731 के बाद 7 है, लेकिन उनके पास दो हैं।
लेकिन यह सही 61 अंक निकला। मुझे नहीं पता कि उसने इसकी गणना कैसे की। मैं बहुत उत्सुक हूं, लेकिन मुझे अपने स्वयं के संचालन पर संदेह नहीं है। मैंने टिप्पणियों में देखा कि आधिकारिक ग्राहक सेवा ने कहा कि एक और है पाई का संस्करण। मैं अज्ञानी हूँ। मनुष्यों द्वारा सीखा गया ज्ञान और ब्रह्मांड की वर्तमान समझ, अपरिमेय संख्या पाई ब्रह्मांड की अनंतता का प्रतिनिधित्व कर सकती है, और इसका दशमलव भाग कभी दोहराया या समाप्त नहीं होगा। आप इसे इस तरह से समझ सकते हैं आप जिस ब्रह्मांड में हैं उसका UUID। यदि अन्य संस्करण हैं, तो शायद एक समानांतर दुनिया से।

एक अन्य बड़े भाई द्वारा संदेह व्यक्त किये जाने के बाद ग्राहक सेवा की प्रतिक्रिया इस प्रकार है:

img

यह ज्ञान वृद्धि है.

वेब3 सिक्का स्थानांतरण कोड

अंत में, बोनस ट्रांसफर करने के लिए कोड यहाँ है। इस बार मैंने सीधे FMZ प्लेटफ़ॉर्म के Web3 फ़ंक्शन का उपयोग किया। मैंने सिर्फ़ चेन एड्रेस को OKC पर सेट किया। एक्सचेंज में प्राइवेट की जोड़ते समय, वैसे भी इससे कोई फ़र्क नहीं पड़ता। फिर मैं इसे दो पंक्तियों में कर सकता हूँ। डीबगर मोड में निष्पादित करें

img

सिद्ध करना

क्रैक किया गया सार्वजनिक कुंजी पता

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

img

यह साबित करने के लिए कि यह पता मेरा है, मैंने प्राप्तकर्ता के पते का उपयोग करके ब्लैक होल पते पर धन हस्तांतरित किया।

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'

अंतभाषण

यह अंत है। पीछे मुड़कर देखता हूँ तो मैं वर्षों से अर्जित ज्ञान के लिए आभारी हूँ। अन्यथा, क्रैकिंग की गति इतनी तेज़ नहीं होती और दूसरे मुझसे आगे निकल जाते।
मुझे यकीन है कि आधिकारिक आरेख में कोई त्रुटि है। वैसे भी, मैं भाग्यशाली हूँ कि मैंने सार्वजनिक होने से पहले ही उत्तर खोज लिया। मुझे उम्मीद है कि अगली बार जब OKX इसी तरह के आयोजन करेगा तो वह और अधिक सख्ती बरतेगा।

Comment
All comments (6)

    104万次得花多少时间

    3 years ago

    20分钟左右

    3 years ago

    Z大牛逼!!!

    3 years ago

    动手能力一流

    3 years ago

    Z大牛逼!!!

    3 years ago

    老铁来了

    3 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)