Gepettoは、さまざまな大きな言語モデルを使用してIDA Pro(≥7.4)によって逆コンパイルされる機能に意味を提供するPythonプラグインです。それらを活用して、関数が何をするかを説明し、その変数の名前を自動的に変更することができます。ここに、わずか数秒で提供できる結果の簡単な例があります。

このスクリプト( gepetto.py 、およびgepetto/ folder)をIDAプラグインフォルダー( $IDAUSR/plugins )にドロップするだけです。デフォルトでは、Windowsでは、これは%AppData%Hex-RaysIDA Propluginsある必要があります(作成する必要がある場合があります)。
IDAのPythonインストールに必要なパッケージを追加して、スクリプトを機能させる必要があります。次のレジストリキーをチェックして使用しているインタープリターIDAを見つけてください: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA (windows: %LOCALAPPDATA%ProgramsPythonPython39 )。最後に、対応する通訳を使用して、単に実行してください。
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.iniとして見つかった)を編集し、独自のAPIキーを追加する必要があります。 Openaiの場合、このページにあります。 APIクエリは通常無料ではなく(あまり高価ではありませんが)、対応するプロバイダーで支払い方法を設定する必要があることに注意してください。
追加のモデルのサポートを追加することは、OpenAIと同様のAPIを公開すると考えているプロバイダーをあらゆるプロバイダーがいれば、それほど難しくないはずです。インスピレーションを得るためにgepetto/modelsフォルダーを調べるか、把握できない場合は問題を開きます。
プラグインが適切にインストールされたら、以下のスクリーンショットに示すように、IDAの擬似コードウィンドウのコンテキストメニューから呼び出すことができるはずです。

編集> GepettoメニューからGepettoがサポートするモデルを切り替えます。

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

次のホットキーが利用可能です。
Ctrl + Alt + GCtrl + Alt + R最初のテストでは、最初に機能の説明を求めると、より良い名前を要求すると、より良い動作があります。モデルが独自のコメントを使用して、より正確な提案をするからです。 AIの応答にはランダム性の要素があります。何らかの理由で、最初の応答があなたに合わない場合は、いつでもコマンドを再度実行できます。
構成内のロケールを編集することにより、Gepettoの言語を変更できます。たとえば、フランス語でプラグインを使用するには、単に追加するだけです。
[Gepetto]
LANGUAGE = " fr_FR "選択されたロケールは、 gepetto/localesのフォルダー名と一致する必要があります。目的の言語が利用できない場合は、プロジェクトを自分で追加することでプロジェクトに貢献できます!目的のロケール(例: gepetto/locales/de_DE/LC_MESSAGES/ )の新しいフォルダーを作成し、更新された.poファイルで新しいプルリクエストを開きます。これは、 gepetto/locales/gepetto.potを使用してmsgstrを使用してすべてのラインを置き換えます)。