Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sclock — macOS arm64(Apple Silicon)向けのハードウェアバインド型256スロット多態VM、非線形MBA、およびApple Secure Enclaveバイナリプロテクター — 公開CrackMeとSDKドキュメント | Kitploit
ツール/GitHubGitHub/planners1490/sclock
リバースエンジニアリング暗号化CTFバイナリ解析アンチボット
GitHubplanners1490/sclock

sclock

macOS arm64(Apple Silicon)向けのハードウェアバインド型256スロット多態VM、非線形MBA、およびApple Secure Enclaveバイナリプロテクター — 公開CrackMeとSDKドキュメント

リポジトリを見る
201日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト
scLock — Supercluster Lock by relay

scLock (Supercluster Lock)

ハードウェアバインド型256スロット多態VM、非線形MBA($\mathbb{Z}_{2^{64}}$)、およびmacOS(arm64 Apple Silicon)向けApple Secure Enclaveバイナリプロテクター

開発者: relay(relay // SYSTEMS)

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

Gumroadで商用SDKを入手($79) · 公開CrackMeチャレンジを試す · ライブランディングページ · 한국어 안내 (Korean)


なぜ scLock なのか?

C、C++、Rust、Swift、Objective-Cからコンパイルされた標準的なmacOS Mach-O(arm64)バイナリは、Ghidra、IDA Pro、Binary Ninjaにおいて、クリーンな制御フローグラフと平文の定数を数秒で露呈してしまいます。従来のソフトウェア難読化ツールは、単一の静的鍵や中央集約型のswitch(opcode)ディスパッチャに依存しており、1つの鍵を復元するだけでバイトコードストリーム全体が露呈します。

scLock(Supercluster Lock) は、コンパイル時256スロット多態仮想化、ハンドラごとのMBA鍵シャタリング、そしてデュアルティアApple Silicon Secure Enclave(SEP)バインディングを組み合わせています:

  1. ビルドごとの256スロット多態的ISA + 84個のチャフトラップ: すべてのコンパイル(sclock compile)は、64ビットの多態的シードから、まったく新しい256エントリの命令セット(172個のアクティブなマイクロオペレーション + 84個の状態破壊チャフハンドラ)を合成します。2つのビルドが同じバイトコードエンコーディングやハンドラテーブルを共有することは決してありません。
  2. ハンドラごとの実行時絡み合い(black_box + vm.anchor)MBAソルト破砕: アナリストがポータブルモードで外側のスポンジキー (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 で保護されたアフィンパラメータを、非線形MBA多項式を通じてライブな vm.anchor([x0, #0xa0])と組み合わせることで実行時に再構築されます—これにより LLVM(-C opt-level=3)の定数畳み込みや InstCombine の簡約化を打ち破ります。
  3. 非線形混合ブール算術($\mathbb{Z}_{2^{64}}$)と2進的(2-adic)全単射: 算術、乗算、定数、および制御フローの遷移は、$\mathbb{Z}_{2^{64}}$ 上の次数2/3の非線形MBA恒等式へと持ち上げられ、2進数論的不透明述語($7x^2 - 1 \neq y^2 \pmod{2^{64}}$)と結合されます。
  4. デュアルティアApple Secure Enclave(SEP)アーキテクチャ:
    • ポータブルマルチMacモード(デフォルト、SCP1): ユニバーサルなエンドユーザー向けmacOS配布と公開 CrackMe 向けに構築され、バイナリが任意のApple Silicon Mac(M1 / M2 / M3 / M4)上でオフライン動作します。外側のスポンジキー (k0, k1) を、1,024ラウンドのSHA-256コードアンカーホワイトボックスKDFと、ライブSEP可換P-256ダブルECDHアンチエミュレーション/アンチフッキングゲート($d_{\text{SEP}} \cdot Q_P \stackrel{?}{=} d_P \cdot Q_{\text{SEP}}$ をSecure Enclave上で実行し、非SEPエミュレータやAPIフック下での実行を毒する)を組み合わせて導出します。すべてのMacにわたるオフライン実行には決定論的な鍵導出が必要なため、SCP1 における静的抽出防御は、ハンドラごとの実行時絡み合い(vm.anchor + black_box)MBAソルト破砕と、256個すべてのハンドラにわたる状態依存スポンジチェイニングによって提供されます。
    • ハードウェアUIDノードロックモード(--sep-lock / --host-sep-lock): P-256秘密鍵を、対象Macの物理的なSecure Enclave UID(kSecAttrTokenIDSecureEnclave のハードウェアラップされた rk1/dacl blob)内に直接封印します。Mach-Oバイナリのどこにも封印解除可能な鍵素材は存在しません—対象MacのSecure Enclaveシリコンなしでは、オフラインでの鍵導出は物理的に不可能です。
  5. 分岐なしのアンチデバッグ状態絡み合いとゼロリークカモフラージュ: パッチ可能な if (is_debugged) exit() 分岐の代わりに、scLock はカーネルの sysctl P_TRACED ビットとARM64プロローグの BRK(0xD4200000)スキャンを256ビットのスポンジ状態アキュムレータに直接混入させ、シンボルとツールチェーンパスの自動スクラブ(sclock protect-app)を行います。

公開リバースエンジニアリングチャレンジ(CrackMe)

私たちの言葉を鵜呑みにしないでください—今すぐご自身のディスアセンブラとデバッガで scLock をテストしてください。

このリポジトリには、scLock で保護されたスタンドアロンのMach-O arm64 バイナリが含まれています(v1.0.0、ポータブル 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 を開き、以下を試みてください:

  1. 256 個すべてのハンドラごとの MBA ソルト(h_salt)を復元し、Ghidra のデコンパイラタイムアウト(>330s)を発生させずに、仮想化された価格計算/検証ルーチンを逆コンパイルする。
  2. lldb をアタッチし、P_TRACED と絡み合ったスポンジ状態を破壊することなく、仮想化されたディスパッチループをステップ実行する。
  3. 隠された二次的な 4 桁のマスター PIN(arg2 != 1234)と、仮想化ルーチン内の正確な 64 ビット代数混合定数を見つけ出す。

興味深い分析や解説記事を見つけましたか? Issue #1 (Official CrackMe Challenge Thread) に投稿してください!


実測ベンチマーク

Apple Silicon(macOS arm64、Release プロファイル)でテスト済み:

1. リバースエンジニアリングおよびデコンパイラ耐性

分析ベクトル保護なしバイナリ(clang -O3)scLock v1.0.0 保護バイナリ
Ghidra 11.x デコンパイラ(DecompileCallback)0.4 秒(C ソース全体を復元)> 330 秒 タイムアウト(Decompiler process killed)
IDA Pro / Binary Ninja の CFG 復元クリーンな制御フローグラフ256 方向の間接ディスパッチの壁 + 84 個の Chaff トラップ
鍵とソルトのアーキテクチャ定数が __TEXT,__const 内に可視ハンドラごとの black_box MBA ソルト分散 + ポータブル SCP1 / ノードロック --sep-lock
動的デバッグ(lldb / frida)ブレークポイント設定やレジスタ改変が容易ブランチレスな P_TRACED 絡み合いによるサイレントな状態破壊
難読化シンボルとパスの監査(nm / strings)関数名や /rustc/ / .llvm. パスが露出難読化/VM シンボルや /rustc/ パスのリークが 0(Mach-O を自動スクラブ)

2. 実行時パフォーマンスのオーバーヘッド

scLock は UI レイヤー全体を肥大化させるのではなく、重要な高価値関数(ライセンス検証、独自の DSP/AI ウェイト、暗号鍵スケジュール、改ざん防止ゲート)を対象としているため:

指標測定値備考
単一の仮想化関数呼び出しレイテンシ~8–12 µs(~0.01 ms)完全な 256 スロット多態 VM + MBA 評価
持続スループット~85,000–120,000 呼び出し / 秒シングルコア Apple Silicon(arm64)
120 FPS リアルタイムフレームバジェットへの影響< 0.15%(0% フレームドロップ)リアルタイムオーディオプラグイン(AU/VST3)、ゲーム、macOS アプリに安全

scLock の使い方(3 コマンド)

商用 scLock SDK は、単一の自己完結型ネイティブ arm64 CLI バイナリ(bin/sclock)として提供されます。

1. C / C++ / Wasm 関数を保護する

# Default: Portable All-Mac SEP-Attested + Per-Handler MBA Mode (runs on any Apple Silicon Mac)
sclock compile examples/01_quickstart_c/protect_me.c \
  -o protect_me_locked

# Optional: Single-Machine Physical SEP UID Node-Locked Mode (zero unsealable keys in binary)
sclock compile examples/01_quickstart_c/protect_me.c \
  -o protect_me_node_locked \
  --sep-lock

2. 既存のRust / C++ / Swiftアプリバイナリをスクラブして堅牢化する

# Scrub internal compiler/LLVM paths, strip symbol tables, and apply Hardened Runtime signature
sclock protect-app ./target/release/my_commercial_app

3. 5段階ゼロリーク・ステルス監査を実行する

sclock verify ./protect_me_locked
ツールをダウンロード