Idacode позволяет легко выполнять и отлаживать сценарии Python в вашей среде IDA, не оставляя кода Visual Studio. Расширение кода VS можно найти на рынке.
Idacode все еще находится в очень раннем состоянии, и следует ожидать ошибок. Пожалуйста, откройте новую проблему, если вы столкнетесь с какими -либо проблемами.
debugpy для связи, он естественным образом синхронизирует выходное окно с выводной панелью VS кода.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 в этом репозитории. Скопируйте все файлы в каталог плагина IDAS.
Следующим шагом является настройка ваших настроек в соответствии с вашей средой. Редактировать idacode_utils/settings.py Соответственно:
HOST : это адрес хоста. Это всегда 127.0.0.1 , если вы не хотите, чтобы он был доступен из удаленного места. Имейте в виду, что этот плагин не использует аутентификацию.PORT : Это порт, который вы хотите, чтобы Ида послушала. Это используется для связи WebSocket между IDA и VS -кодом.DEBUG_PORT : это порт, который вы хотите прослушать для входящих сессий отладки.PYTHON : Это абсолютный путь к распределению Python, который использует ваша настройка IDA.LOGGING : определяет, должен ли отладчик войти в файлы. Это особенно полезно, когда вы сталкиваетесь с проблемами с Idacode. Пожалуйста, отправьте новый вопрос, если найдете что -нибудь. Файлы всегда расположены в вашем каталоге Temp (например, Windows: %TEMP% ). Файлы называются debugpy.*.log . Теперь вы можете запустить плагин, нажав на IDACode в меню плагинов.
Расширение кода VS доступно на рынке. Чтобы настроить расширение, обратитесь к Readme расширения.
Нажмите IDACode в меню плагина. Вас должен встретиться со следующим текстом:
IDACode listening on 127.0.0.1:7065
Начиная с версии 0.2.0 Idacode поддерживает «Exepute on save», которая включена по умолчанию. Код VS автоматически выполнит ваш скрипт в IDA, как только вы сохраните текущий документ (например, с CTRL+S). Такое поведение может быть отключено в настройках.
В вашем распоряжении 4 команды:

После того, как у вас есть папка, вы хотите поместить свои сценарии (вы должны указать папку, когда VS Code просит вас!), Вы готовы подключиться к IDA. Вы можете сделать это, выполнив Connect to IDA или Connect and attach a debugger to IDA . Пожалуйста, имейте в виду, что сессия отладки является постоянной, пока вы не перезапустите IDA. Вы не можете изменить папку рабочей области после начала отладчика.
Убедитесь, что папка рабочей области - это папка, в которой расположены ваши основные сценарии.
После того, как вы подключитесь, вы сможете выбрать Execute script in IDA .
Idacode использует удаленную отладку VS Code для подключения к IDA. Все функции кода VS поддерживаются. Тем не менее, вы должны указать точку записи сценариев, используя функциональность Python встроенной: breakpoint . Эта инструкция говорит отладчику, чтобы приостановить выполнение, если нет никакого присутствия отладчика, он просто игнорирует функцию. Idacode импортирует вспомогательный пакет под названием dbg , который реализует перегрузку breakpoint , называемой bp . Эта функция поддерживает ведение ведения журнала и условности:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " ) Пожалуйста, также обратите внимание, что вызов breakpoint() никогда не должен происходить в конце файла, он всегда должен быть перед любой другой строкой кода, когда он нарушает следующую инструкцию в вашем коде. Также обратите внимание, что если вы решите использовать пакет dbg , вы должны либо удалить все ссылки, либо использовать переменную __idacode__ в качестве условного перед выполнением его в качестве обычного сценария IDA.
Также важно, чтобы прикрепление отладчика создало новый экземпляр отладчика. В большинстве случаев это не то, что вы хотите. Если вы отключитесь от отладчика, используйте удаленный отладчик кода, чтобы подключиться обратно.
