
VM polimorfica a 256 slot vincolata all'hardware, MBA non lineare e protettore di binari Apple Secure Enclave per macOS arm64 (Apple Silicon) — CrackMe pubblico e documentazione SDK
scLock (Supercluster Lock)VM polimorfica a 256 slot vincolata all'hardware, MBA non lineare ($\mathbb{Z}_{2^{64}}$) e protettore binario Apple Secure Enclave per macOS (arm64 Apple Silicon)
Sviluppato da relay (relay // SYSTEMS)
Ottieni l'SDK Commerciale su Gumroad ($79) · Prova la Public CrackMe Challenge · Landing Page Live · 한국어 안내 (Korean)
scLock?I binari macOS Mach-O (arm64) standard compilati da C, C++, Rust, Swift o Objective-C espongono grafi di flusso di controllo puliti e costanti in chiaro in Ghidra, IDA Pro e Binary Ninja in pochi secondi. Gli offuscatori software convenzionali si basano su una singola chiave statica o su un dispatcher centrale switch(opcode) in cui il recupero di una chiave rivela l'intero flusso di bytecode.
scLock (Supercluster Lock) combina virtualizzazione polimorfica a 256 slot in fase di compilazione, frammentazione delle chiavi MBA per ogni handler e binding dual-tier all'Apple Silicon Secure Enclave (SEP):
sclock compile) sintetizza un set di istruzioni completamente nuovo a 256 voci (172 micro-operazioni attive + 84 gestori chaff che corrompono lo stato) da un seed polimorfico a 64 bit. Non esistono mai due build che condividono la stessa codifica bytecode o la stessa tabella dei gestori.black_box + vm.anchor): Anche quando un analista calcola le chiavi esterne dello sponge (k0, k1) in modalità Portable, i pacchetti bytecode non possono essere decifrati da tabelle statiche o costanti immediate. I sali grezzi dei gestori (op_secret_salt) sono omessi dalle sezioni dati statiche (sostituiti da ANCHOR_SHARDS one-way Davies-Meyer) e pre-mascherati rispetto all'anchor di integrità del codice. All'interno di ciascuno dei 256 gestori ARM64 compilati (__sc_lut_op_000..255), h_salt e le maschere degli operandi (hm1, hm2, hm3) vengono ricostruiti a runtime combinando parametri affini protetti da std::hint::black_box con il vm.anchor live ([x0, #0xa0]) tramite polinomi MBA non lineari—vanificando il constant folding di LLVM (-C opt-level=3) e la semplificazione di InstCombine.SEP):
SCP1): Realizzata per la distribuzione universale macOS agli utenti finali e per il CrackMe pubblico, così che il binario funzioni offline su qualsiasi Mac Apple Silicon (M1 / M2 / M3 / M4). Deriva le chiavi esterne dello sponge (k0, k1) tramite una KDF White-Box Code-Anchor SHA-256 a 1.024 round accoppiata a un Gate Anti-Emulazione / Anti-Hooking Double-ECDH P-256 Commutativo SEP Live ($d_{\text{SEP}} \cdot Q_P \stackrel{?}{=} d_P \cdot Q_{\text{SEP}}$ eseguito sulla Secure Enclave per avvelenare l'esecuzione sotto emulatori non-SEP o hook API). Poiché l'esecuzione offline su tutti i Mac richiede una derivazione deterministica delle chiavi, la difesa contro l'estrazione statica in SCP1 è fornita dalla frantumazione del sale MBA con runtime-entanglement per gestore (vm.anchor + black_box) e dal chaining dello sponge dipendente dallo stato su tutti i 256 gestori.--sep-lock / --host-sep-lock): Sigilla la chiave privata P-256 direttamente nell'UID fisico della Secure Enclave del Mac di destinazione (blob rk1/dacl hardware-wrapped kSecAttrTokenIDSecureEnclave). Non esiste alcun materiale di chiave sbloccabile all'interno del binario Mach-O—la derivazione offline della chiave è fisicamente impossibile senza il silicio Secure Enclave del Mac di destinazione.if (is_debugged) exit(), scLock mescola il bit P_TRACED del sysctl del kernel e le scansioni BRK (0xD4200000) del prologo ARM64 direttamente nell'accumulatore di stato dello sponge a 256 bit, con pulizia automatica dei simboli e dei percorsi della toolchain (sclock protect-app).Non fidarti solo della nostra parola—metti alla prova scLock nel tuo disassembler e debugger adesso.
Questo repository include un binario Mach-O arm64 standalone protetto da scLock (v1.0.0, compilato in modalità Portable SCP1 così da funzionare su qualsiasi Mac Apple Silicon):
crackme/challenge_protected (oppure scarica 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>
Apri crackme/challenge_protected in Ghidra, IDA Pro, Binary Ninja o LLDB e prova a:
h_salt) e decompilare la routine di pricing/verifica virtualizzata senza attivare il timeout del decompilatore di Ghidra (>330s).lldb ed eseguire passo-passo il ciclo di dispatch virtualizzato senza corrompere lo stato della sponge intrecciato con P_TRACED.arg2 != 1234) e le esatte costanti algebriche di mixing a 64 bit all'interno della routine virtualizzata.Hai trovato un'analisi o un write-up interessante? Pubblicalo in Issue #1 (Official CrackMe Challenge Thread)!