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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Gepetto — リバースエンジニアリングを高速化するために言語モデルを照会するIDAプラグイン | Kitploit
ツール/GitHubGitHub/justicerage/gepetto
コード分析リバースエンジニアリングバイナリ解析機械学習AI支援リバースエンジニアリング
GitHubjusticerage/gepetto

Gepetto

リバースエンジニアリングを高速化するために言語モデルを照会するIDAプラグイン

リポジトリを見る
3.5k332542ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Gepetto

Gepetto は、さまざまな大規模言語モデルを使用して、IDA Pro (≥ 7.6) によってデコンパイルされた関数に意味を与える Python プラグインです。これらのモデルを活用して関数が何を行うかを説明し、その変数を自動的にリネームすることができます。以下は、ほんの数秒で得られる結果の簡単な例です:

セットアップ

hcli の使用 (推奨)

Gepetto をインストールする最も簡単な方法は、Hex-Rays CLI ツール (hcli) を使用することです:

pip install ida-hcli
hcli plugin install gepetto

これにより、プラグインが IDA のユーザーディレクトリに自動的にインストールされます。

手動インストール

別の方法として、プラグインを手動でインストールすることもできます:

  1. このスクリプト(gepetto.py および gepetto/ フォルダ)を IDA のプラグインフォルダ($IDAUSR/plugins)に配置します。
  2. プラグインディレクトリの場所はシステムによって異なります:
    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS: ~/.idapro/plugins/
    • Linux: ~/.idapro/plugins/
  3. 必要なパッケージを IDA の Python インストール環境にインストールします。IDA が使用しているインタプリタを確認するには、次のレジストリキーを確認してください: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA(Windows でのデフォルト:%LOCALAPPDATA%\Programs\Python\Python39)。
  4. 対応するインタプリタで、次を実行するだけです:
    [/path/to/python] -m pip install -r requirements.txt
    

設定

Gepetto は設定を IDA のユーザーディレクトリに保存するため、プラグインをアップグレードしても設定が保持されます:

  • Windows: %APPDATA%\Hex-Rays\IDA Pro\cfg\gepetto\config.ini
  • macOS / Linux: ~/.idapro/cfg/gepetto/config.ini

プラグインを初めて実行すると、gepetto/config.ini がそこにコピーされ、コンソールにパスが表示されます。以降、プラグインに同梱されているコピーはテンプレートにすぎません — ユーザーディレクトリにあるものを編集してください。場所を完全に上書きするには GEPETTO_CONFIG_DIR を設定します。

そのファイルに API キーを追加するか、ファイル内で指定されている環境変数を通じて提供してください。OpenAI の場合、キーはこのページで作成できます。API クエリは通常無料ではない(ただし非常に高価でもない)こと、および該当するプロバイダーで支払い方法を設定する必要があることに注意してください。

サポートされているモデル

  • Anthropic
    • claude-opus-4-7
    • claude-sonnet-4-6
    • claude-haiku-4-5
  • OpenAI
    • gpt-5
    • gpt-5-mini
    • gpt-5-nano
    • gpt-4-turbo
    • gpt-4o
    • o4-mini
    • gpt-4.1
    • o3
    • o3-pro
  • Google Gemini
    • gemini-2.0-flash
    • gemini-2.5-pro
    • gemini-2.5-flash
    • gemini-2.5-flash-lite-preview-06-17
  • Azure OpenAI
    • gpt-35-turbo
    • gpt-35-turbo-1106
    • gpt-35-turbo-16k
    • gpt-4-turbo
    • gpt-4-turbo-2024-0409-gs
  • Ollama
    • Ollama 経由で公開されている任意のローカルモデル(Ollama が実行されていない場合は表示されません)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1(変数の名前変更はサポートされていません)
  • Novita AI
    • deepseek/deepseek-r1
    • deepseek/deepseek-v3
    • meta-llama/llama-3.3-70b-instruct
    • meta-llama/llama-3.1-70b-instruct
    • meta-llama/llama-3.1-405b-instruct
  • Kluster.ai
    • deepseek-ai/DeepSeek-R1
    • deepseek-ai/DeepSeek-V3-0324
    • google/gemma-3-27b-it
    • klusterai/Meta-Llama-3.1-8B-Instruct-Turbo
    • klusterai/Meta-Llama-3.1-405B-Instruct-Turbo
    • klusterai/Meta-Llama-3.3-70B-Instruct-Turbo
    • meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
    • meta-llama/Llama-4-Scout-17B-16E-Instruct
    • Qwen/Qwen2.5-VL-7B-Instruct
  • LM Studio
    • LM Studio 経由で公開されている任意のローカルモデル(LM Studio Developer サーバーが実行されていない場合は表示されません)

独自のプロバイダーの追加

Gepetto は 3 つの場所からプロバイダーを読み込み、メニュー名が衝突した場合は後のものが前のものを上書きします: gepetto/models/ に同梱されているモジュール、次に $IDAUSR/cfg/gepetto/providers/ 内の任意の .py ファイル、そして gepetto.providers エントリポイントを宣伝するインストール済みディストリビューションです。上書きはコンソールで通知されるため、プラグインをフォークすることなく組み込みプロバイダーを置き換えられます。

ドロップインプロバイダーは、組み込みのものとまったく同じ契約を使用します。OpenAI 互換のエンドポイントの場合、ファイル全体は次のとおりです:

import openai
import gepetto.config
import gepetto.models.model_manager
from gepetto.models.openai import GPT


class MyProvider(GPT):
    @staticmethod
    def get_menu_name() -> str:
        return "MyProvider"

    @staticmethod
    def supported_models():
        return ["my-model-v1"]

    @staticmethod
    def is_configured_properly() -> bool:
        return bool(gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"))

    def __init__(self, model):
        try:
            super().__init__(model)
        except ValueError:
            pass  # No OpenAI key needed for this provider.
        self.model = model
        self.client = openai.OpenAI(
            api_key=gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"),
            base_url="https://api.example.com/v1",
        )


gepetto.models.model_manager.register_model(MyProvider)

一致する [MyProvider] セクションを config.ini に追加し、IDA を再起動してください。プロバイダーはロード時に登録されるため、新しいキーや新しいファイルは、メニューに表示される前に再起動が必要です。

代わりにパッケージとして配布するには、クラスまたは register(register_model) 呼び出し可能オブジェクトを公開してください:

[project.entry-points."gepetto.providers"]
myprovider = "myprovider:MyProvider"

providers/ 内のファイルは、IDA の起動時に任意の Python を実行します。これは他の IDA プラグインと同じ信頼レベルですが、信頼できるプロバイダのみをインストールしてください。

使用方法

プラグインが正しくインストールされていれば、以下のスクリーンショットに示すように、IDA の擬似コードウィンドウのコンテキストメニューから起動できるはずです:

Edit > Gepetto メニューから、Gepetto がサポートするモデルを切り替えられます:

Gepetto は、IDA から直接 LLM に質問できる CLI インターフェースも提供しています。入力バーで Gepetto を選択してください:

ホットキー

以下のホットキーが利用可能です:

  • モデルに関数の説明を求める: Ctrl + Alt + G
  • モデルにコードへのコメント追加を求める: Ctrl + Alt + K
  • 関数の変数に対してより良い名前を要求する: Ctrl + Alt + R

初期テストでは、より良い名前を要求する場合、先に関数の説明を求めた方がうまく機能することが示されています – これは モデルが自身のコメントを使ってより正確な提案を行うためだと推測されます。 AI の返答にはランダム性の要素があります。何らかの理由で最初に得られた応答が適切でない場合は、 いつでもコマンドを再実行できます。

制限事項

  • このプラグインは、機能するために HexRays デコンパイラへのアクセスを必要とします。
  • サポートされているすべての LLM は汎用であり、誤った結果を返す可能性が十分にあります!常に 返された結果に対して批判的な視点を持ってください!

翻訳

設定内のロケールを編集することで、Gepetto の言語を変更できます。例えば、プラグインを フランス語で使用するには、以下を追加するだけです:

[Gepetto]
LANGUAGE = "fr_FR"

選択するロケールは gepetto/locales 内のフォルダ名と一致している必要があります。希望する言語が利用できない場合は、 ご自身で追加してプロジェクトに貢献できます!希望するロケール用の新しいフォルダを作成し (例: gepetto/locales/de_DE/LC_MESSAGES/)、更新した .po ファイルを含む新しいプルリクエストを開いてください。このファイルは gepetto/locales/gepetto.pot をコピーして編集することで作成できます(msgstr で始まるすべての行を ローカライズ版に置き換えてください)。

謝辞

  • OpenAI、言うまでもなくこれらの素晴らしいモデルを提供してくれたことに
  • Hex Rays、IDA の開発元であり、その驚異的な速さのサポートに
  • Kaspersky、当初このプロジェクトに資金提供してくれたことに
  • HarfangLab、現在この活動を可能にしている支援者に
  • @vanhauser-thc、彼のフォークを通じてサポートすべき追加モデルやプロバイダーのアイデアを提供してくれたことに
  • 翻訳に貢献してくれたすべての人々: @seifreed、@kot-igor、@ruzgarkanar、@orangetw
ツールをダウンロード