
हार्डवेयर-बाउंड 256-स्लॉट पॉलीमॉर्फिक VM, नॉन-लीनियर MBA और macOS arm64 (Apple Silicon) के लिए Apple Secure Enclave बाइनरी प्रोटेक्टर — सार्वजनिक CrackMe और SDK दस्तावेज़
scLock (Supercluster Lock)हार्डवेयर-बाउंड 256-स्लॉट पॉलीमॉर्फिक VM, नॉन-लीनियर MBA ($\mathbb{Z}_{2^{64}}$) और macOS के लिए Apple Secure Enclave बाइनरी प्रोटेक्टर (arm64 Apple Silicon)
द्वारा विकसित relay (relay // SYSTEMS)
Gumroad पर Commercial SDK प्राप्त करें ($79) · सार्वजनिक CrackMe चुनौती आज़माएँ · लाइव लैंडिंग पेज · 한국어 안내 (Korean)
scLock क्यों?C, C++, Rust, Swift या Objective-C से कंपाइल किए गए मानक macOS Mach-O (arm64) बाइनरीज़ Ghidra, IDA Pro, और Binary Ninja में कुछ ही सेकंडों में साफ़ कंट्रोल-फ़्लो ग्राफ़ और प्लेनटेक्स्ट कॉन्स्टेंट्स उजागर कर देते हैं। पारंपरिक सॉफ़्टवेयर ऑब्फ़स्केटर एकल स्टैटिक कुंजी या एक केंद्रीय switch(opcode) डिस्पैचर पर निर्भर करते हैं, जहाँ एक कुंजी रिकवर करने से पूरा बाइटकोड स्ट्रीम उजागर हो जाता है।
scLock (Supercluster Lock) कंपाइल-टाइम 256-स्लॉट पॉलीमॉर्फिक वर्चुअलाइज़ेशन, प्रति-हैंडलर MBA कुंजी शैटरिंग, और द्वि-स्तरीय Apple Silicon Secure Enclave (SEP) बाइंडिंग को जोड़ता है:
sclock compile) 64-बिट पॉलीमॉर्फिक सीड से एक बिल्कुल नया 256-प्रविष्टि निर्देश सेट (172 सक्रिय माइक्रो-ऑप्स + 84 स्टेट-करप्टिंग चैफ हैंडलर) संश्लेषित करता है। कभी भी दो बिल्ड एक ही बाइटकोड एन्कोडिंग या हैंडलर तालिका साझा नहीं करते।black_box + vm.anchor) MBA साल्ट शैटरिंग: भले ही कोई विश्लेषक Portable मोड में बाहरी स्पंज कुंजियाँ (k0, k1) की गणना कर ले, बाइटकोड पैकेट स्टैटिक तालिकाओं या इमीडिएट कॉन्स्टेंट्स से डिक्रिप्ट नहीं किए जा सकते। रॉ हैंडलर साल्ट (op_secret_salt) स्टैटिक डेटा सेक्शन से हटा दिए जाते हैं (वन-वे Davies-Meyer ANCHOR_SHARDS द्वारा प्रतिस्थापित) और कोड-इंटीग्रिटी एंकर के विरुद्ध प्री-मास्क किए जाते हैं। प्रत्येक 256 कंपाइल्ड ARM64 हैंडलर (__sc_lut_op_000..255) के अंदर, h_salt और ऑपरेंड मास्क (hm1, hm2, hm3) रनटाइम पर std::hint::black_box-गार्डेड एफ़ाइन पैरामीटर्स को लाइव vm.anchor ([x0, #0xa0]) के साथ नॉन-लीनियर MBA पॉलिनोमियल्स के माध्यम से संयोजित करके पुनर्निर्मित किए जाते हैं—जो LLVM (-C opt-level=3) कॉन्स्टेंट फोल्डिंग और InstCombine सरलीकरण को विफल करता है।SEP) आर्किटेक्चर:
SCP1): सार्वभौमिक अंतिम-उपयोगकर्ता macOS वितरण और सार्वजनिक CrackMe के लिए निर्मित ताकि बाइनरी किसी भी Apple Silicon Mac (M1 / M2 / M3 / M4) पर ऑफ़लाइन चले। बाहरी स्पंज कुंजियाँ (k0, k1) को 1,024-राउंड SHA-256 Code-Anchor White-Box KDF के माध्यम से प्राप्त करता है, जिसे लाइव SEP कम्युटेटिव P-256 डबल-ECDH एंटी-एमुलेशन / एंटी-हुकिंग गेट ($d_{\text{SEP}} \cdot Q_P \stackrel{?}{=} d_P \cdot Q_{\text{SEP}}$ जो Secure Enclave पर निष्पादित होकर गैर-SEP एमुलेटर्स या API हुक्स के अंतर्गत निष्पादन को ज़हरीला बनाता है) के साथ जोड़ता है। चूँकि सभी Macs पर ऑफ़लाइन निष्पादन के लिए नियतात्मक कुंजी व्युत्पत्ति आवश्यक है, SCP1 में स्टैटिक एक्सट्रैक्शन रक्षा प्रति-हैंडलर रनटाइम-एंटैंगल्ड (vm.anchor + black_box) MBA साल्ट शैटरिंग और सभी 256 हैंडलर्स में स्टेट-डिपेंडेंट स्पंज चेनिंग द्वारा प्रदान की जाती है।--sep-lock / --host-sep-lock): P-256 निजी कुंजी को सीधे लक्ष्य Mac के भौतिक Secure Enclave UID (kSecAttrTokenIDSecureEnclave हार्डवेयर-रैप्ड rk1/dacl ब्लॉब) के अंदर सील कर देता है। Mach-O बाइनरी में कहीं भी शून्य अनसील-योग्य कुंजी सामग्री मौजूद नहीं होती—लक्ष्य Mac के Secure Enclave सिलिकॉन के बिना ऑफ़लाइन कुंजी व्युत्पत्ति भौतिक रूप से असंभव है।if (is_debugged) exit() ब्रांचेस के बजाय, scLock कर्नेल sysctl P_TRACED बिट और ARM64 प्रोलॉग BRK (0xD4200000) स्कैन को सीधे 256-बिट स्पंज स्टेट एक्युमुलेटर में मिला देता है, साथ ही स्वचालित सिंबल और टूलचेन पाथ स्क्रबिंग (sclock protect-app) करता है।हमारी बात मानने की ज़रूरत नहीं—scLock को अभी अपने ही डिसअसेम्बलर और डीबगर में परखें।
इस रिपॉज़िटरी में scLock द्वारा संरक्षित एक स्टैंडअलोन Mach-O arm64 बाइनरी शामिल है (v1.0.0, Portable SCP1 मोड में कंपाइल्ड ताकि यह किसी भी Apple Silicon Mac पर चले):
crackme/challenge_protected (या scLock-CrackMe-Challenge-macOS-arm64.zip डाउनलोड करें)Mach-O 64-bit executable arm64 (Apple Silicon M1 / M2 / M3 / M4)# 1. Clone this repository (or unzip the release archive)
git clone https://github.com/planners1490/sclock.git
cd sclock/crackme
# 2. Clear macOS Gatekeeper quarantine (if downloaded via browser) & make executable
xattr -cr ./challenge_protected
chmod +x ./challenge_protected
# 3. Inspect symbol table & strings (Zero VM/Obfuscator leaks)
nm -gU ./challenge_protected
strings ./challenge_protected | grep -iE "sclock|vm|opcode|mba|chaff" || echo "0 leaks found"
# 4. Execute the protected binary on any Apple Silicon Mac
./challenge_protected # Runs built-in self-test (seats=20, pin=1234 -> 83300)
./challenge_protected 20 1234 # Pass custom <seats> <unlock_pin>
Ghidra, IDA Pro, Binary Ninja, या LLDB में crackme/challenge_protected खोलें और इन्हें करने का प्रयास करें:
h_salt) पुनः प्राप्त करें और Ghidra के डीकंपाइलर टाइमआउट (>330s) को ट्रिगर किए बिना वर्चुअलाइज़्ड प्राइसिंग/वेरिफिकेशन रूटीन को डीकंपाइल करें।lldb अटैच करें और P_TRACED-उलझे स्पंज स्टेट को भ्रष्ट किए बिना वर्चुअलाइज़्ड डिस्पैच लूप के माध्यम से स्टेप करें।arg2 != 1234) और वर्चुअलाइज़्ड रूटीन के अंदर सटीक 64-बिट बीजगणितीय मिक्सिंग कॉन्स्टेंट खोजें।कोई दिलचस्प विश्लेषण या राइट-अप मिला? इसे Issue #1 (Official CrackMe Challenge Thread) में पोस्ट करें!
Apple Silicon (macOS arm64, Release प्रोफ़ाइल) पर परीक्षण किया गया: