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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Kam1n0-Community — 複数アーキテクチャにおいて静的、動的、機械学習技術を用いてインデックス化、クローン検索、実行可能ファイル分類を行うスケーラブルなアセンブリ解析プラットフォーム。 | Kitploit
ツール/GitHubGitHub/mcgill-dmas/kam1n0-community
脆弱性分析コード分析リバースエンジニアリングファジングバイナリ解析機械学習
GitHubmcgill-dmas/kam1n0-community

Kam1n0-Community

複数アーキテクチャにおいて静的、動的、機械学習技術を用いてインデックス化、クローン検索、実行可能ファイル分類を行うスケーラブルなアセンブリ解析プラットフォーム。

リポジトリを見る
627124343年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

Kam1n0 v2 とは?

image GitHub (pre-)release Github All Releases JDK PRs Welcome

Build latest development release (Windows) Test release build (Windows)

Kam1n0 v2.x は、拡張可能なアセンブリ管理・分析プラットフォームです。ユーザーはまず、(大量の)バイナリ集合を異なるリポジトリにインデックス化し、クローン検索や分類などのさまざまな分析サービスを利用できます。アプリケーション の概念を用いて、アセンブリリポジトリのマルチテナントアクセスと管理をサポートします。アプリケーションインスタンスは、独自の排他リポジトリを持ち、専門的な分析サービスを提供します。リバースエンジニアリングタスクの多様性を考慮し、Kam1n0 v2.x サーバーは現在、3種類のクローン検索アプリケーション(Asm-Clone、Sym1n0、Asm2Vec)と、Asm2Vec に基づく 実行可能ファイル分類 を提供しています。新しいアプリケーションタイプは、プラットフォームにさらに追加することができます。

ユーザーは複数のアプリケーションインスタンスを作成できます。アプリケーションインスタンスは特定のユーザーグループ間で共有できます。アプリケーションリポジトリの読み書きアクセスとオンオフ状態は、アプリケーションの所有者が制御できます。Kam1n0 v2.x サーバーは、いくつかの共有リソースプールを使用してアプリケーションを同時に提供できます。

Kam1n0 は、カナダのマギル大学データマイニング・セキュリティ研究所の Benjamin C. M. Fung 教授の指導のもと、Steven H. H. Ding と Miles Q. Li によって開発されました。これは、Hex-Rays Plug-In Contest 2015 で第2位を受賞しました。Kam1n0 が有用だと感じられた場合は、以下の論文を引用してください:

  • S. H. H. Ding, B. C. M. Fung, and P. Charland. Kam1n0: MapReduce-based Assembly Clone Search for Reverse Engineering. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (SIGKDD), pages 461-470, San Francisco, CA: ACM Press, August 2016.

  • S. H. H. Ding, B. C. M. Fung, and P. Charland. Asm2Vec: boosting static representation robustness for binary clone search against code obfuscation and compiler optimization. In Proceedings of the 40th IEEE Symposium on Security and Privacy (S&P), 18 pages, San Francisco, CA: IEEE Computer Society, May 2019.

Asm-Clone

Asm-Clone アプリケーションは、アセンブリ関数の効率的な部分グラフ検索問題(すなわちグラフ同型問題)を解決しようとします(230万関数に対して平均クエリ時間1.3秒未満、平均インデックス時間30ms未満)。対象関数(下図左)が与えられると、リポジトリ内の他の関数の中からクローン部分グラフ(下図右)を識別できます。

  • アプリケーションタイプ: Asm-Clone
  • Kam1n0 v1.x で使用されていたオリジナルのクローン検索サービス。
  • 現在は Meta-PC、ARM、PowerPC、TMS320c6(実験的)をサポート。
  • 特定のアセンブリコードファミリ内での部分グラフクローン検索をサポート。
    • + 結果の解釈性が高い:部分グラフに分解される。
    • + 指定されたコードファミリ内での検索に正確。
    • + 大きなバイナリのさまざまなパッチやバージョンの差分に適している。
    • - 命令セットの変更、最適化、難読化に比較的敏感。
    • - アセンブリコード言語の構文を事前に定義する必要がある。
    • - リポジトリ内に同じ選択されたファミリのアセンブリコードが必要。

Sym1n0

差別化ファジングテストと制約解決によるセマンティッククローン検索。効率的でスケーラブルな動的-静的ハイブリッドアプローチ(150万関数に対して平均クエリ時間1秒未満、平均インデックス時間100ms未満)。対象関数(下図左)が与えられると、リポジトリ内の他の関数の中からクローン部分グラフ(下図右)を識別できます。抽象構文グラフの可視化をサポート。

  • アプリケーションタイプ: Sym1n0(v2のみ)
  • シンボリック実行と具体的実行の両方によるクローン検索。
  • 異なるI/O動作に基づいて関数を区別。
  • Vex IR(LibVex 搭載)から構築された抽象構文グラフ上でクローン検索を実行。
    • + 異なるアセンブリコードファミリ間でのクローン検索。
      • 例えば、x86 バイナリをインデックス化しているが、クエリは ARM コード。
    • + 部分グラフクローン検索。
    • + LibVex を通じて幅広いファミリをサポート。
      • x86、AMD64、MIPS32、MIPS64、PowerPC32、PowerPC64、ARM32、ARM64。
    • + 効率的な動的-静的ハイブリッドアプローチ。
    • + 異なるプロセッサ向けにコンパイルされたファームウェアの分析に最適。
    • - グラフの大規模な操作(完全平坦化など)に敏感。
    • - 基本ブロックの完全性の大規模な破壊に敏感。

Asm2Vec

Asm2Vec は表現学習を活用します。アセンブリコードの語彙意味関係を理解します。例えば、xmm* レジスタは addps などのベクトル操作と意味的に関連しています。memcpy は strcpy と類似しています。以下のグラフは、libgmp 内の同じソースコード gmpz_tdiv_r_2exp からコンパイルされた異なるアセンブリ関数を示しています。左から右へ、アセンブリ関数は GCC O0 オプション、GCC O3 オプション、O-LLVM 難読化コントロールフローグラフ平坦化オプション、LLVM 難読化 Bogus Control Flow Graph オプションでコンパイルされています。Asm2Vec はそれらを 静的に クローンとして識別できます。

  • 表現学習を活用。
  • アセンブリコードの語彙意味関係を理解。
    • + 高度なコード難読化技術に対するクローン検索の最先端。
      • (O-LLVM で適用されたすべてのオプションに対して>0.8の精度、複数反復)。
    • + コード最適化に対するクローン検索の最先端。
      • (O0 と O3 間で>0.8の精度、O2 と O3 間で>0.94の精度)。
    • + 最新の動的アプローチよりも優れた結果。
    • + 最近の動的アプローチよりもはるかに効率的。
    • + アーキテクチャを定義する必要がない。大量のコードを読むことで自己学習する。
    • + 静的アプローチ:効率的でスケーラブル。
    • - サブグラフはなし。
    • - アセンブリコードが同じプロセッサファミリから来ていることを前提とする。
    • - 静的アプローチ:ジャンプテーブルなどを認識できない。

実行可能ファイル分類

このアプリケーションでは、ユーザーは機能的な関連性に基づいた一連のソフトウェアクラスを定義し、各クラスに属するバイナリを提供します。その後、システムは自動的に関数をクラスタにグループ化し、その中で関数はクローン関係によって直接的または間接的に接続されます。分類に識別力のあるクラスタが保持され、それらのクラスのシグネチャとして機能します。対象のバイナリが与えられると、システムは各ソフトウェアクラスに属する度合いを示します。

  • 関数類似度計算モデルとして Asm2Vec を使用。

    • + 解釈可能な分類結果を提供。
    • + 各クラスの共通特性(関数クラスタ)を学習。
    • + 通常の機械学習モデルよりも小さく不均衡なデータセットを処理可能。
    • - 制限として、同じクラスのバイナリがいくつかの共通関数を共有するという前提がシステムの動作に必要。

プラットフォーム概要

下図は、Kam1n0 v2.x の主要なUIコンポーネントと機能を示しています。マテリアルデザインを採用しています。一般的に、各ユーザーはアプリケーションリスト、実行中ジョブリスト、結果ファイルリストを持ちます。

  • アプリケーションリストは、ユーザーが所有するアプリケーションインスタンスと、他のユーザーと共有しているものを表示します。
  • 実行中ジョブリストは、大規模なクエリ(chrome.dll など)やインデックス手順の進行状況を表示します。
  • 結果ファイルリストは、保存された結果を表示します。 UIデザインの詳細については、詳細なチュートリアルを参照してください。

インストール手順

現在の Kam1n0 のリリースは、コアサーバーと IDA Pro プラグインの2つのインストーラで構成されています。

インストーラ 含まれるコンポーネント 説明
Kam1n0-Server.msi コアエンジン インデックス化と検索のためのサービスを提供するメインエンジン。
ワークベンチ リポジトリと実行中のサービスを管理するためのユーザーインターフェース。
Webユーザーインターフェース バイナリファイルとアセンブリ関数の検索/インデックス化のためのWebユーザーインターフェース。
Visual C++ 再頒布可能パッケージ(VS 15 用) z3 の依存関係。
Kam1n0-IDA-Plugin.msi プラグイン コネクタとユーザーインターフェース。
Cefpython 用 PyPI ホイール ユーザーインターフェースのレンダリングエンジン。
PyPI および依存ホイール Python のパッケージ管理。IDA 6.8 および 6.9 に含まれています。

Kam1n0 サーバーのインストール

Kam1n0 コアエンジンは純粋に Java で書かれています。次の依存関係が必要です:

  • [必須] Oracle から最新の x64 11.x JRE/JDK ディストリビューション。
  • [オプション] idapython プラグインがインストールされた最新バージョンの IDA Pro。Python プラグインとランタイムは通常 IDA Pro にすでにインストールされています。必要に応じて IDA Pro を再インストールしてください。

リリースページ から Kam1n0-Server.msi ファイルをダウンロードします。指示に従ってサーバーをインストールします。インストールパスを選択するように求められます。サーバーが逆アセンブルを処理する必要がない場合、IDA Pro はオプションです。言い換えれば、クライアント側は Kam1n0 プラグインを IDA Pro 用に使用します。Kam1n0 サーバーと一緒に IDA Pro をインストールすることを強くお勧めします。Kam1n0 サーバーは、.i64 ファイルを開くために使用するデフォルトアプリケーションを探すことで、IDA Pro を自動的に検出します。

ツールをダウンロード