Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sclock — Привязанная к оборудованию полиморфная виртуальная машина на 256 слотов, нелинейный MBA и бинарный протектор Apple Secure Enclave для macOS arm64 (Apple Silicon) — публичный CrackMe и документация SDK | Kitploit
Инструменты/GitHubGitHub/planners1490/sclock
Обратная инженерияКриптографияCTFАнализ Бинарных ФайловАнти-Бот
GitHubplanners1490/sclock

sclock

Привязанная к оборудованию полиморфная виртуальная машина на 256 слотов, нелинейный MBA и бинарный протектор Apple Secure Enclave для macOS arm64 (Apple Silicon) — публичный CrackMe и документация SDK

Репозиторий
201 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт
scLock — Supercluster Lock от relay

scLock (Supercluster Lock)

Аппаратно-привязанная полиморфная виртуальная машина на 256 слотов, нелинейный MBA ($\mathbb{Z}_{2^{64}}$) и бинарный протектор Apple Secure Enclave для macOS (arm64 Apple Silicon)

Разработано relay (relay // SYSTEMS)

Platform: macOS arm64 Hot-Path Latency: 8.15 µs Ghidra Decompiler: >330s Timeout Commercial SDK: $79 on Gumroad

Получить коммерческий SDK на Gumroad ($79) · Попробовать публичный CrackMe-челлендж · Живая целевая страница · 한국어 안내 (Korean)


Зачем нужен scLock?

Стандартные бинарники macOS Mach-O (arm64), скомпилированные из C, C++, Rust, Swift или Objective-C, за секунды раскрывают чистые графы потока управления и открытые константы в Ghidra, IDA Pro и Binary Ninja. Обычные обфускаторы ПО полагаются на единственный статический ключ или центральный диспетчер switch(opcode), где восстановление одного ключа выгружает весь поток байткода.

scLock (Supercluster Lock) объединяет полиморфную виртуализацию на 256 слотов на этапе компиляции, дробление MBA-ключей для каждого обработчика и двухуровневую привязку к Apple Silicon Secure Enclave (SEP):

  1. Полиморфный ISA на 256 слотов для каждой сборки + 84 ловушки-обманки: Каждая компиляция (sclock compile) синтезирует совершенно новый набор инструкций из 256 записей (172 активных микрокоманд + 84 обработчика-обманки, повреждающих состояние) из 64-битного полиморфного зерна. Никакие две сборки никогда не разделяют одну и ту же байткодовую кодировку или таблицу обработчиков.
  2. Разрушение MBA-соли с привязкой к среде выполнения для каждого обработчика (black_box + vm.anchor): Даже когда аналитик вычисляет внешние ключи губки (k0, k1) в портативном режиме, байткодовые пакеты невозможно расшифровать из статических таблиц или непосредственных констант. Сырые соли обработчиков (op_secret_salt) исключены из статических секций данных (заменены односторонними 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.
  3. Нелинейная смешанная булева арифметика ($\mathbb{Z}_{2^{64}}$) и 2-адические биекции: Арифметика, умножение, константы и переходы потока управления поднимаются в нелинейные тождества MBA степени 2/3 над $\mathbb{Z}_{2^{64}}$ в сочетании с 2-адическими теоретико-числовыми непрозрачными предикатами ($7x^2 - 1 \neq y^2 \pmod{2^{64}}$).
  4. Двухуровневая архитектура Apple Secure Enclave (SEP):
    • Портативный мульти-Mac режим (по умолчанию, SCP1): Создан для универсального распространения среди конечных пользователей macOS и публичного CrackMe, чтобы бинарник работал офлайн на любом Mac с Apple Silicon (M1 / M2 / M3 / M4). Выводит внешние ключи губки (k0, k1) через белый ящик KDF на основе SHA-256 с якорем кода на 1 024 раунда в паре с живым коммутативным P-256 двойным ECDH-шлюзом SEP против эмуляции / перехвата ($d_{\text{SEP}} \cdot Q_P \stackrel{?}{=} d_P \cdot Q_{\text{SEP}}$, выполняемым на Secure Enclave для отравления выполнения под не-SEP эмуляторами или API-хуками). Поскольку офлайн-выполнение на всех Mac требует детерминированного вывода ключей, защита от статического извлечения в SCP1 обеспечивается разрушением MBA-соли с привязкой к среде выполнения для каждого обработчика (vm.anchor + black_box) и зависящим от состояния сцеплением губки по всем 256 обработчикам.
    • Режим привязки к узлу по аппаратному UID (--sep-lock / --host-sep-lock): Запечатывает приватный ключ P-256 непосредственно внутри физического UID Secure Enclave целевого Mac (аппаратно обёрнутый rk1/dacl блоб kSecAttrTokenIDSecureEnclave). Никакого распечатываемого ключевого материала не существует нигде в бинарнике Mach-O — офлайн-вывод ключей физически невозможен без кремния Secure Enclave целевого Mac.
  5. Безветвевая запутанность состояния против отладки и маскировка без утечек: Вместо патчируемых ветвлений if (is_debugged) exit() scLock подмешивает бит P_TRACED из ядерного sysctl и сканирование пролога ARM64 BRK (0xD4200000) напрямую в 256-битный аккумулятор состояния губки, с автоматической очисткой символов и путей инструментальной цепочки (sclock protect-app).

Публичный вызов по обратной разработке (CrackMe)

Не верьте нам на слово — проверьте scLock в своём собственном дизассемблере и отладчике прямо сейчас.

Этот репозиторий включает автономный бинарник Mach-O arm64, защищённый scLock (v1.0.0, скомпилированный в портативном режиме SCP1, чтобы он работал на любом Mac с Apple Silicon):

  • Путь к бинарнику: 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>

Цель испытания

Откройте crackme/challenge_protected в Ghidra, IDA Pro, Binary Ninja или LLDB и попробуйте:

  1. Восстановить все 256 MBA-солей для каждого обработчика (h_salt) и декомпилировать виртуализированную процедуру ценообразования/проверки, не вызвав тайм-аут декомпилятора Ghidra (>330s).
  2. Подключить lldb и пройти по виртуализированному циклу диспетчеризации, не повредив состояние sponge, переплетённое с P_TRACED.
  3. Найти скрытый вторичный 4-значный мастер-PIN (arg2 != 1234) и точные 64-битные алгебраические константы смешивания внутри виртуализированной процедуры.

Нашли интересный анализ или разбор? Опубликуйте его в Issue #1 (Official CrackMe Challenge Thread)!


Эмпирические бенчмарки

Протестировано на Apple Silicon (macOS arm64, профиль Release):

Скачать инструмент