Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
IDAssist — Плагин для IDA Pro для реверс-инжиниринга на основе ИИ | Kitploit
Инструменты/GitHubGitHub/symgraph/idassist
Статический анализАнализ уязвимостейАнализ КодаОбратная инженерияОтладчикиСбор информацииАнализ Бинарных ФайловМашинное ОбучениеОбучение и ОбразованиеОбратная Разработка с Помощью ИИ
GitHub
705731831 месяц назадПроверено Kitploit
symgraph/idassist

IDAssist

Плагин для IDA Pro для реверс-инжиниринга на основе ИИ

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
# IDAssist

*Плагин для реверс-инжиниринга на основе ИИ для IDA Pro*

**Автор:** Jason Tang

## Описание

IDAssist — это плагин для IDA Pro, который интегрирует анализ на основе LLM непосредственно в интерфейс IDA, обеспечивая реверс-инжиниринг бинарных файлов с помощью ИИ через настраиваемые LLM-провайдеры, семантические графы знаний, поиск по RAG-документам и поддерживает большое разнообразие LLM-провайдеров.

Созданный на Python и PySide6, IDAssist работает как закрепляемая панель внутри IDA Pro 9.0+ и взаимодействует с LLM-провайдерами (OpenAI, Anthropic, Ollama, LiteLLM и другими) для анализа функций, предложения переименований, ответов на вопросы о коде и построения индексируемого графа знаний всего бинарного файла.

<!-- SCREENSHOT: IDAssist main interface showing the Explain tab with a function explanation and security analysis panel -->
![Screenshot](https://assets.kitploit.com/production/public/readmes/13845/a8d641f250f37a6e8112849f84bbea6d77d333b63ca8f777fbdf93f9f0d137ce.gif)

## Основные возможности

**Объяснение функций** — Создание подробных объяснений дизассемблированных функций на естественном языке с автоматическим анализом безопасности, включая уровень риска, профиль активности, флаги безопасности и обнаружение API.

**Интерактивный чат запросов** — Задавайте вопросы о бинарном файле с сохранением истории чата. Используйте контекстные макросы (`#func`, `#addr`, `#line`, `#range`) для внедрения кода функций, адресов или диапазонов дизассемблирования в запросы.

**Автоматические действия** — Предложения переименований функций, переменных и типов на основе ИИ. Просмотрите предлагаемые изменения в таблице с оценками уверенности, затем примените выбранные действия к IDB.

**Семантический граф знаний** — Создавайте и исследуйте граф знаний бинарного файла: функции, отношения вызовов, потоки данных и характеристики безопасности. Включает визуализацию графов, семантический поиск и обнаружение сообществ.

**Поиск по RAG-документам** — Загружайте справочные документы (`.txt`, `.md`, `.rst`, `.pdf`) и используйте их как контекст при запросах к LLM. Поддерживает гибридный текстовый+векторный поиск через индексацию Whoosh.

**Интеграция с SymGraph** — Отправляйте и получайте имена функций, переменных, типы и данные графа на платформу SymGraph. Включает многошаговый мастер с разрешением конфликтов при получении.

**Управление настройками** — Настройте несколько LLM и MCP провайдеров, управляйте учетными данными API SymGraph, настраивайте системный промпт и задавайте пути к базам данных.

## Расширенные возможности

### ReAct Agent

Вкладка Query поддерживает автономный режим агента ReAct (Reasoning + Acting). При включении LLM планирует стратегию исследования, выполняет инструменты для сбора информации, анализирует результаты и синтезирует исчерпывающий ответ — всё автоматически за несколько раундов рассуждений.

### Расширенное мышление

Настройте уровень усилий рассуждения, чтобы контролировать, сколько LLM «думает» перед ответом:

| Уровень | Бюджет мышления | Лучше всего подходит для |
|-------|----------------|----------|
| Нет | Отключено | Быстрые, простые запросы |
| Низкий | ~2K токенов | Прямолинейный анализ |
| Средний | ~10K токенов | Умеренная сложность |
| Высокий | ~25K токенов | Глубокий анализ, сложный код |

### MCP Интеграция

IDAssist может подключаться к внешним MCP-серверам для взаимодействия с LLM с расширенными инструментами, где модель может программно проверять функции, читать дизассемблирование, запрашивать перекрестные ссылки и изменять IDB во время рассуждений. Поддерживаются как MCP-серверы на основе URL (SSE или Streamable HTTP), так и MCP-серверы на основе stdio, запускаемые из локальной команды CLI. IDAssist также предоставляет встроенные внутренние инструменты для вызова функций без необходимости внешнего MCP-сервера.

### Вызов функций

LLM-провайдеры с поддержкой вызова инструментов могут вызывать функции анализа IDA в середине диалога, что позволяет проводить итеративное исследование без ручного вмешательства.

### Обратная связь RLHF

Оставляйте положительные/отрицательные отзывы об объяснениях и ответах на запросы. Отзывы хранятся локально и могут использоваться для улучшения инженерии промптов и выбора модели.

## Архитектура

IDAssist следует шаблону MVC (Model-View-Controller):

- **Представления** (`src/views/`) — виджеты вкладок PySide6, которые отправляют сигналы при взаимодействии пользователя
- **Контроллеры** (`src/controllers/`) — соединяют сигналы представлений с вызовами служб, управляют состоянием
- **Службы** (`src/services/`) — бизнес-логика, LLM-провайдеры, доступ к базе данных, анализ графов
- **Внутренние инструменты** (`src/services/internal_tools.py`) — определения инструментов, специфичных для IDA, для вызова функций LLM
- **Графовые инструменты** (`src/services/graphrag/graphrag_tools.py`) — инструменты чтения/записи семантического графа для взаимодействия с LLM

Ключевые принципы проектирования:
- Все вызовы IDA API выполняются в главном потоке через `execute_on_main_thread()`
- Ответы LLM передаются в UI инкрементально (постепенно)
- Локальные базы данных SQLite для сохранения состояния (не требуется внешняя база данных)
- Реестр служб-одиночек с потокобезопасной инициализацией

## Быстрый старт

1. **Установите плагин** (рекомендуется — IDA Plugin Manager):

   ```
   hcli plugin install idassist
   ```

   Это автоматически устанавливает плагин и его Python-зависимости в среду IDA.

2. **Или установите вручную** (из архива релиза):

   Загрузите последний zip-архив релиза с [GitHub Releases](https://github.com/jtang613/IDAssist/releases) и распакуйте его в каталог плагинов IDA:

   **Linux / macOS:**
   ```bash
   unzip IDAssist-*.zip -d ~/.idapro/plugins/
   ```

   **Windows:**
   Extract the zip into `%APPDATA%\Hex-Rays\IDA Pro\plugins\`.

   Затем установите зависимости, используя **встроенный Python IDA** (не системный Python):

   **Linux / macOS:**
   ```bash
   <IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txt
   ```

   **Windows:**
   ```cmd
   "<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssist\requirements.txt"
   ```

   > Замените `<IDA_INSTALL_DIR>` на путь установки IDA Pro (например, `/opt/idapro-9.0` или `C:\Program Files\IDA Pro 9.0`).
   >
   > **Совет:** Вы также можете задать переменную окружения `IDAUSR`, указывающую на пользовательский каталог, содержащий подкаталог `plugins/`.

3. **Откройте IDAssist:** Запустите IDA Pro, откройте бинарный файл и нажмите `Ctrl+Shift+A` (или Edit > Plugins > IDAssist).

4. **Настройте провайдера:** Перейдите на вкладку Settings, нажмите **Add** в разделе LLM Providers и настройте предпочитаемого провайдера.

5. **Проанализируйте функцию:** Перейдите к любой функции, щелкните вкладку **Explain** и нажмите **Explain Function**.

Подробные инструкции по настройке см. в [Начало работы](https://github.com/symgraph/idassist/blob/master/docs/getting-started.md).

## Настройка LLM-провайдера

IDAssist поддерживает следующие типы провайдеров:

| Тип | Метод аутентификации | Примечания |
|------|-------------|-------|
| `anthropic_platform` | API Key | Прямой API Anthropic |
| `anthropic_oauth` | OAuth (браузер) | Аутентификация через браузер |
| `anthropic_claude_cli` | Локальный CLI | Использует бинарник `claude` CLI |
| `bedrock` | Учетные данные AWS | Прямой API AWS Bedrock Converse |
| `openai_platform` | API Key | Прямой API OpenAI |
| `openai_oauth` | OAuth (браузер) | Аутентификация через браузер |
| `ollama` | Нет (локально) | Самостоятельно размещенные модели |
| `litellm` | URL прокси | Многопровайдерный прокси |

### Рекомендуемые модели

| Провайдер | Модель | Сильные стороны |
|----------|-------|-----------|
| Anthropic | `claude-sonnet-4-6` | Сильный анализ кода, расширенное мышление |
| OpenAI | `gpt-5.3-codex` | Быстрый, хороший общий анализ |
| Ollama | `qwen2.5-coder:32b` | Локально, не нужен API-ключ |

## Использование семантического графа

Вкладка Semantic Graph предоставляет граф знаний бинарного файла:

1. **ReIndex Binary** — Извлекает структуру функций, граф вызовов и перекрестные ссылки
2. **Semantic Analysis** — Генерирует сводки LLM для каждой функции
3. **Security Analysis** — Обнаруживает шаблоны уязвимостей и API, связанные с безопасностью
4. **Network Flow** — Отслеживает сетевые операции по графу вызовов
5. **Community Detection** — Группирует связанные функции в модули

Исследуйте граф через **List View** (вызывающие, вызываемые, ребра, флаги), **Visual Graph** (интерактивная диаграмма узлов с расширением на N шагов) или **Search** (7 типов запросов, включая семантический поиск, похожие функции и контекст вызовов).

## Действия контекстного меню

Щелкните правой кнопкой мыши в любом представлении дизассемблирования или псевдокода, чтобы получить доступ:

| Действие | Горячая клавиша | Результат |
|--------|--------|--------|
| Объяснить функцию | `Ctrl+Shift+E` | Открывает вкладку Explain и генерирует объяснение |
| Спросить о выделении | `Ctrl+Shift+Q` | Открывает вкладку Query с контекстом `#func` |
| Предложения переименования | — | Открывает вкладку Actions и генерирует предложения |

## Требования

- **IDA Pro 9.0+** с Python 3 и PySide6
- **Hex-Rays Decompiler** (рекомендуется для функций псевдокода)
- Python-пакеты, перечисленные в `requirements.txt`

## Документация

- [Индекс документации](https://github.com/symgraph/idassist/blob/master/docs/index.md)
- [Начало работы](https://github.com/symgraph/idassist/blob/master/docs/getting-started.md)
- Справочник по вкладкам: [Explain](https://github.com/symgraph/idassist/blob/master/docs/tabs/explain-tab.md) | [Query](https://github.com/symgraph/idassist/blob/master/docs/tabs/query-tab.md) | [Actions](https://github.com/symgraph/idassist/blob/master/docs/tabs/actions-tab.md) | [Semantic Graph](https://github.com/symgraph/idassist/blob/master/docs/tabs/semantic-graph-tab.md) | [RAG](https://github.com/symgraph/idassist/blob/master/docs/tabs/rag-tab.md) | [Settings](https://github.com/symgraph/idassist/blob/master/docs/tabs/settings-tab.md)
- Рабочие процессы: [Explain](https://github.com/symgraph/idassist/blob/master/docs/workflows/explain-workflow.md) | [Query](https://github.com/symgraph/idassist/blob/master/docs/workflows/query-workflow.md) | [Semantic Graph](https://github.com/symgraph/idassist/blob/master/docs/workflows/semantic-graph-workflow.md)

## Домашняя страница

[https://symgraph.ai](https://symgraph.ai)

## Лицензия

Подробности см. в файле LICENSE.
Скачать инструмент