クリーンルーム方式の解析とよくある質問
基本と対象範囲
クリーンルーム方式とは何ですか?
クリーンルーム方式とは、1人が製品を調べて仕様書を書き、もう1人が元のコードを見ずにその仕様書から作る、文書化された手法です。相互運用性のために使われます。法的な保証ではないため、頼る前に弁護士に相談してください。
CTFでの解析には何が含まれますか?
CTF(キャプチャー・ザ・フラッグ)の大会では、学習用に作られた練習用バイナリが出され、それぞれがどう動くかを突き止めて課題を解きます。解析を認めているルールの大会にだけ参加してください。CJK Workbenchは、ご自身のツールがそれらのバイナリから書き出したリストを読み、メモを残します。メモは1つのファイルにまとまります。
解析が初めての場合、どこから始めればよいですか?
最初の題材は、ご自身で書いた小さなCプログラムが定番です。コンパイルして、ソースの横で逆アセンブルの結果を読みます。8行未満に収めましょう。正解がわかっている状態で、レジスタ、スタック、呼び出し規約が学べます。基本に慣れたら、講座や大会の練習用バイナリを加えてください。
解析する人は必要な情報をどう集めますか?
ドキュメント、ヘッダー、読み取れる文字列、インポートされた関数名が通常の情報源で、残りは呼び出し規約のリファレンスが説明します。CJK Workbenchは、web_searchでドキュメントのページを探し、http_getで1ページを取得し、書き出したテキストをgrepで検索できます。情報源はどれも確認してください。
CJK Workbenchの使い方
cjkcode.comはCJK Workbenchの公式サイトですか?
はい、cjkcode.comはCJK Workbenchの公式サイトです。元のビルドだけをダウンロードし、実行する前にSHA-256チェックサムを公開されているマニフェストと照合してください。インストーラーはまだコード署名されていません。まずチェックサムを確認しましょう。ご質問はアプリ内のSend feedbackボタンから送れます。
結果は常に正しいですか?
いいえ。アセンブリの説明や生成されたスクリプトは間違うことがあるため、すべての結果をリストと照らし合わせて確認し、承認する前に全diffを読んでください。Ask firstモードでは、何かを変更する操作の前にエージェントが止まります。合法であれば、ラボでのテスト実行も加えてください。
CJK Workbenchはプログラムを逆アセンブルしたり実行したりしますか?
いいえ。ご自身のツールが出力するテキスト、たとえば逆アセンブルのリストや文字列の出力を読み取り、不明なプログラムの展開、パッチ当て、実行は行いません。Shellは、ご自身のエクスポートコマンドやコピーに対するPythonヘルパーなどのターミナルコマンドを実行し、実際の終了コードを報告します。信頼できないものは、隔離されたVMの中でのみ実行してください。
解析のワークフローにAIエージェントはどう関わりますか?
AIエージェントは、解析のワークフロー、つまり学んでいるプログラムを書き出し、読み、注釈を付ける一連の作業の中で、逆アセンブラとメモの間に入る助手です。ワークフローにAIを取り入れるときは、まず1つの手順から始めましょう。書き出したリストをエージェントに説明させ、スクリプトやサブエージェントは後から加えます。カードには実際の結果が表示されます。
モデル、プライバシー、ダウンロード
ファイルのテキストはPCの外に出ますか?
答えは選ぶモデルによって変わります。クラウドモデルでは、エージェントが読み取るファイルのテキストを含むプロンプトがそのプロバイダーに送られ、ローカルモデルでは何もマシンの外に出ません。まずモデルを選んでください。ツール出力の機密情報はモデルに届く前に伏せられ、アプリはテレメトリーを送りません。
どのモデルを接続できますか?
3種類が使えます。標準のAPIエンドポイント経由のクラウドAIプロバイダー、PC上で動くローカルモデル、そして内蔵モデルです。Testボタンはエンドポイントを確認し、応答時間とコンテキストウィンドウを表示します。作業ごとに選んでください。
実行にアカウントは必要ですか?
いいえ。CJK Workbenchはアカウントなしで実行でき、新しいバージョンの準備ができるとアプリにUpdateボタンが表示されます。クラウドAIプロバイダーはAPIの料金を別に請求する場合があります。ダウンロードページには、インストーラーのSHA-256チェックサムを公開されているマニフェストと照合する方法が説明されています。