Gepetto 是一款功能強大的 IDA Pro Python 外掛,徹底改變了開發人員分析反編譯函式的方式。透過整合 Novita AI 的先進語言模型,Gepetto 現在能夠提供更精確、更深入的功能解釋與變數重新命名。本文將引導您如何在 Gepetto 上使用 Novita AI API,從而提升您的逆向工程能力並簡化工作流程。
了解 Gepetto 與 Novita AI 的整合
Gepetto 是專為 IDA Pro (>=7.4) 設計的 Python 外掛,IDA Pro 是一款知名的反組譯器與偵錯器。它利用大型語言模型提供深入的函式行為說明,並建議有意義的變數名稱,幾秒鐘內即可獲得結果。例如:

透過整合 Novita AI 的先進語言模型——特別是 Llama-3.1-70b-Instruct 和 Llama-3.1-405b-Instruct——Gepetto 得以獲得最先進的 AI 能力,顯著提升精準度與整體效率。Novita AI 提供一系列強大的語言模型,包括 Llama、Mistral、mythomax、Gemma 和 Qwen,可以無縫整合到 Gepetto 中。這些模型可透過 Novita AI 的模型 API 存取,為開發者提供經濟高效的 AI 驅動逆向工程解決方案。
設定 Gepetto 與 Novita AI API
開始使用 Gepetto 和 Novita AI 之前,請按照以下步驟進行:
- 安裝 Gepetto:下載 Gepetto 腳本 (gepetto.py) 和 gepetto/ 資料夾,並將其放入您的 IDA 外掛資料夾中 ($IDAUSR/plugins)。
- 安裝依賴:若要啟用腳本,請在 IDA 的 Python 環境中安裝必要的套件。透過登錄機碼找到 IDA 的 Python 直譯器:Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (Windows 預設路徑:%LOCALAPPDATA%\Programs\Python\Python39)。找到後,使用正確的直譯器執行以下命令:
[/path/to/python] -m pip install -r requirements.txt
- 設定 Novita AI API:編輯設定檔 (gepetto/config.ini) 並加入您的 Novita AI API 金鑰。您可以在 Novita AI 網站上註冊以取得 API 金鑰。請參考 Novita AI 的 LLM API 清單網站。

- 選擇 Novita AI 模型:在 Gepetto 設定中指定要使用的 Novita AI 模型。例如:

在 Gepetto 中運用 Novita AI 模型
設定完成後,您就可以開始在 Gepetto 中使用 Novita AI 模型來分析反編譯函式:
- 函式解釋:在虛擬碼視窗中按右鍵,選擇 “Gepetto > Explain function”,或使用快速鍵 Ctrl + Alt + G。Gepetto 會使用所選的 Novita AI 模型提供關於函式目的與行為的詳細說明。
- 變數重新命名:使用 “Gepetto > Rename variables” 或快速鍵 Ctrl + Alt + R,根據變數的用法與上下文自動建議更具意義的名稱。
- CLI 介面:利用 Gepetto 的 CLI 介面,直接向 Novita AI 模型詢問特定程式碼區段或一般逆向工程概念的問題。
若要探索不同 Novita AI 模型的能力,您可以使用 Novita AI 提供的 LLM playground。這讓您可以在將模型整合到 Gepetto 工作流程之前,先行測試與比較。
進階功能與最佳實務
為了充分利用 Novita AI 與 Gepetto 的組合,請參考以下進階功能與最佳實務:
- 模型選擇:嘗試不同的 Novita AI 模型,找出最適合您特定逆向工程需求的模型。某些模型可能在某些類型的程式碼分析或語言理解上表現更佳。
- 迭代分析:在要求變數重新命名之前,先使用 Gepetto 的解釋功能。這種方法通常能獲得更準確且上下文相關的變數名稱。
- 自訂提示:利用 Gepetto 的 CLI 介面為 Novita AI 模型設計自訂提示,進行更具針對性的程式碼分析。
- 持續學習:隨時關注最新的 Novita AI 模型版本與 Gepetto 更新,確保您始終使用最先進的工具。
故障排除與限制
在使用 Gepetto 與 Novita AI 時,了解可能的挑戰與限制很重要:
- API 連線問題:確保您在 gepetto/config.ini 中正確設定了 Novita AI API 金鑰,且網路連線穩定。
- 模型效能:如果遇到回應速度慢的情況,請考慮使用更輕量的 Novita AI 模型,或最佳化您的本機設定。
- 資源管理:監控 API 使用量以有效控管成本。Novita AI 提供多種 LLM API 價格方案,滿足不同需求與預算。
- HexRays 反編譯器需求:本外掛需要存取 HexRays 反編譯器才能正常運作。請確保您擁有必要的授權,且反編譯器已正確安裝並設定於 IDA Pro 中。
- LLM 準確度:請記住,雖然 Novita AI 模型非常先進,但它們是通用模型,偶爾可能產生不準確的結果。請務必根據您自身的專業知識與對程式碼的理解,審慎評估 AI 產生的解釋與建議。
翻譯與在地化
Gepetto 支援多種語言,您可依喜好自訂外掛介面語言。變更語言設定的方式如下:
- 編輯設定檔:開啟 gepetto/config.ini 檔案,在 [Gepetto] 區段下加入或修改 LANGUAGE 設定。例如,若要使用法文介面:
[Gepetto]
LANGUAGE = "fr_FR"
- 可用語系:所選語系必須與 gepetto/locales 中的資料夾名稱相符。目前可用的語言可在該目錄中找到。
- 貢獻翻譯:如果您需要的語言尚未提供,可以自行新增並貢獻給專案:
- 為目標語系建立新資料夾(例如 gepetto/locales/de_DE/LC_MESSAGES/)
- 複製 gepetto/locales/gepetto.pot 檔案
- 編輯複製的檔案,將所有以 msgstr 開頭的行替換為對應的本地化文字
- 使用更新後的 .po 檔案建立新的 Pull Request
按照這些步驟,您可以將 Gepetto 設定為您偏好的語言,提升非英語使用者的使用體驗。
結論
將 Novita AI API 與 Gepetto 整合,為逆向工程與程式碼分析開闢了新的可能性。透過運用先進的語言模型,開發人員可以獲得更深入的反編譯函式洞察,並簡化工作流程。在探索這個強大組合的過程中,請記得持續調整您的方法,並隨時關注 AI 輔助逆向工程的最新進展。
有關開始使用 Novita AI LLM API 的更詳細資訊,請參閱 快速入門指南。這份全面資源將協助您在開發專案中充分利用 Novita AI 的功能。
Novita AI 是一個 AI 雲端平台,為開發者提供使用簡單 API 部署 AI 模型的便捷途徑,同時也提供經濟實惠且可靠的 GPU 雲端資源供建置與擴展使用。
