IdaCode使您可以輕鬆地在IDA環境中執行和調試Python腳本,而無需離開Visual Studio代碼。 VS代碼擴展可以在市場上找到。
idacode仍處於非常早的狀態,預計錯誤。如果您遇到任何問題,請打開新問題。
debugpy進行通信,它將輸出窗口自然同步與VS Code的輸出面板。idacode支持Python 2和Python 3!
設置IDA插件運行的依賴項:
# make sure to use the correct Python version
# IDACode supports the latest debugpy as of version 3.0.0, make sure to upgrade!
python -m pip install --user debugpy tornado克隆此存儲庫或從此處下載發布包。 ida.zip反映了此存儲庫中ida文件夾的內容。將所有文件複製到IDA插件目錄中。
下一步是配置您的設置以匹配您的環境。編輯idacode_utils/settings.py相應:
HOST :這是主機地址。除非您希望可以從遠程位置訪問它,否則這總是127.0.0.1 。請記住,此插件不利用身份驗證。PORT :這是您要IDA收聽的端口。這用於IDA和VS代碼之間的WebSocket通信。DEBUG_PORT :這是您要收聽的端口,以進行調試會議。PYTHON :這是您IDA設置使用的Python分佈的絕對路徑。LOGGING :確定調試器是否應登錄到文件中。當您遇到IDACODE問題時,這特別有用。如果您發現任何東西,請提交新問題。這些文件始終位於您的溫度目錄中(例如Windows: %TEMP% )。文件稱為debugpy.*.log 。現在,您可以通過單擊插件菜單中的IDACode來啟動插件。
VS代碼擴展可以在市場上找到。要配置擴展名,請參考擴展名的讀數。
在插件菜單中點擊IDACode 。您應該受到以下文字的歡迎:
IDACode listening on 127.0.0.1:7065
從0.2.0版本開始,iDaCode支持“執行保存”,默認情況下啟用。保存當前文檔後,VS代碼將在IDA中自動執行您的腳本(例如,使用CTRL+S)。可以在設置中禁用此行為。
您可以使用4個命令:

打開文件夾後,您想將腳本放入中(VS代碼要求您時,必須指定文件夾!),您就可以連接到IDA。您可以通過執行Connect to IDA或Connect and attach a debugger to IDA來做到這一點。請記住,在您重新啟動IDA之前,調試會議是永久的。調試器啟動後,您將無法更改工作區文件夾。
確保工作區文件夾是您的主要腳本所在的文件夾。
連接後,您可以Execute script in IDA 。
IDACODE使用VS代碼的遠程調試器連接到IDA。支持所有VS代碼功能。但是,您必須使用python內置功能: breakpoint指定腳本入口點。該指令告訴調試器暫停執行,如果沒有調試器,它將忽略該功能。 idaCode導入一個名為dbg的幫助助手軟件包,該軟件包實現了一個稱為bp的breakpoint 。此功能支持日誌記錄和條件:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " )另請注意, breakpoint()呼叫絕不應該在文件末尾發生,它必須始終是在代碼上的任何其他代碼線上,因為它在代碼中的下一個指令中斷裂。另請注意,如果您決定使用dbg軟件包,則必須刪除所有參考文獻,或者在將其作為普通IDA腳本執行之前,將變量__idacode__作為條件。
同樣重要的是,附加調試器將創建一個新的調試器實例。在大多數情況下,這不是您想要的。如果您與調試器斷開連接,請使用VS Code的遠程調試器連接。
