Улучшение кода с помощью ИИ

«ИИ Помощник» (AI Helper) обрабатывает код, уже восстановленный VB Decompiler: C# из сборок .NET и Visual Basic 5.0/6.0 из P-Code или Native Code. Для обработки можно использовать локальную модель через Ollama или сервис, подключённый через интеграцию с OpenAI API.

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

Обработка процедуры

  1. Откройте нужную процедуру в «Обозреватель решений» (Solution explorer) и изучите её код в представлении «Декомпилятор» (Decompiler).
  2. Переключитесь на «ИИ Помощник» и настройте поставщика сервиса, адрес сервера и модель, как описано ниже.
  3. Запустите обработку кнопкой рядом со списком моделей.
  4. Проверьте полученный код в «ИИ Помощник» и сравните его с исходным результатом декомпиляции.

Обработка с помощью ИИ выполняется в отдельном потоке. Если модель слишком долго отвечает, нажмите «Отмена» (Cancel). Дополнительные параметры подключения можно свернуть, чтобы освободить место для кода.

Локальная модель через Ollama

  1. Установите Ollama с официальной страницы загрузки и запустите её.
  2. Загрузите рекомендуемую модель командой ollama pull qwen3:8b в терминале.
  3. В «ИИ Помощник» выберите локального поставщика LLM/Ollama. В поле «Ollama хост» (Ollama host) укажите адрес сервера. Для локальной установки по умолчанию используется http://localhost:11434.
  4. Выберите установленную модель в поле «Модель» (Model) и запустите обработку.

Рекомендуется qwen3:8b: встроенные промпты «ИИ Помощник» адаптированы для этой легковесной модели. Более новые модели могут работать медленнее, не улучшая результат обработки кода.

Выбор модели не ограничен: можно использовать любую модель, установленную в выбранном экземпляре Ollama. Если формат её ответа неизвестен декомпилятору, в результате могут остаться служебные теги или другой вспомогательный текст.

Оборудование для локального запуска Ollama

Локальная обработка ИИ выполняется на компьютере, где запущена Ollama, и требует значительно больше ресурсов, чем декомпиляция. Ниже приведены практические ориентиры для qwen3:8b с квантованием весов Q4_K_M, стандартным кэшем контекста f16 и обработкой одного запроса за раз. Контекст измеряется в токенах: 4K — это 4096 токенов, а 128K — 131072 токена. В этот объём входят инструкции модели, исходный код и сформированный ответ.

КомпонентПрактический минимум: контекст 4KРекомендуется: контекст 128K
Операционная система64-разрядная Windows 10 (22H2) или Windows 1164-разрядная Windows 10 (22H2) или Windows 11
ПроцессорСовременный x64-процессор с AVX2 и не менее чем 4 физическими ядрамиСовременный x64-процессор с AVX2 и не менее чем 8 физическими ядрами
Оперативная память (RAM)16 ГБ64 ГБ
ВидеокартаСовместимая с Ollama видеокарта с выделенной видеопамятью не менее 8 ГБСовместимая с Ollama видеокарта с выделенной видеопамятью не менее 32 ГБ
НакопительSSD, не менее 20 ГБ свободного места для Ollama и этой моделиSSD, не менее 20 ГБ свободного места для Ollama и этой модели

Выберите размер контекста ползунком в настройках Ollama. Видеокарты с 8 ГБ памяти, подходящей для 4K, недостаточно для приведённой конфигурации с контекстом 128K. Размер загружаемой модели — около 5.2 ГБ, но это не весь необходимый объём памяти. При 128K один только кэш контекста f16 занимает примерно 18 ГиБ; дополнительно нужны память для весов модели и рабочих буферов. Оставляйте запас памяти для Windows и других приложений.

При достаточном объёме RAM Ollama может выполнять вычисления на процессоре, однако обработка кода может быть очень медленной. Компьютеры на Pentium M и сопоставимые устаревшие системы не подходят для локального запуска qwen3:8b. Общая память старых встроенных Intel HD Graphics не заменяет указанную в таблице выделенную видеопамять. Эти требования относятся к компьютеру с Ollama; при подключении к удалённому серверу или внешнему API вычисления выполняются на их оборудовании.

Для небольших процедур начните с 4K. Увеличение контекста повышает расход памяти и время обработки больших входных данных. Если обработка слишком медленная, отмените её, уменьшите контекст и проверьте использование GPU командой ollama ps. Фактический расход памяти зависит от версии Ollama, вычислительного бэкенда и других запущенных задач.

Код C# после обработки локальной моделью

Подключение через OpenAI API

В поле «Провайдер» (Provider) выберите OpenAI API. Заполните поля «Хост» (Host), «API-ключ» (API key) и «Модель» для нужного сервиса. Укажите действующий ключ API и доступную по этому ключу модель. Не включайте ключи API в скриншоты и материалы для совместного анализа.

Через поставщика OpenAI API также можно подключить DeepSeek. Укажите адрес сервера DeepSeek, ключ API и идентификатор модели в соответствующих полях. Пример настройки приведён ниже.

Настройки подключения AI Helper к DeepSeek: поставщик сервиса, адрес сервера, ключ API и модель

Где обрабатывается код

«ИИ Помощник» отправляет текущий декомпилированный код выбранному сервису. Для полностью локальной обработки используйте сервер Ollama на своей рабочей станции и модель, выполняемую на ней же. При подключении к Ollama на другом компьютере, облачной модели Ollama или внешнему API код может передаваться за пределы рабочей станции.

При восстановлении конфиденциального исходного кода и расследовании инцидентов выбирайте сервер и сервис с учётом требований организации к обработке данных. Наличие Ollama или адреса localhost само по себе не означает, что код обрабатывается без доступа к внешним сервисам.

Устранение неполадок

  • Если локальная модель не отображается, убедитесь, что она установлена именно в том экземпляре Ollama, адрес которого указан в настройках.
  • Если сервис не отвечает, проверьте, что он запущен и доступен. Адрес сервера, учётные данные и идентификатор модели должны соответствовать одному и тому же сервису.
  • Если обработка слишком медленная, отмените её. При использовании другой локальной модели попробуйте рекомендуемую qwen3:8b.
  • Если в ответе незнакомой модели остаются служебные теги или вспомогательный текст, попробуйте qwen3:8b или удалите этот текст вручную при проверке результата.
  • Если в результате неожиданно изменились условие, вызов, константа или тип, сверьтесь с низкоуровневым листингом. Более читаемый код не обязательно сохраняет исходное поведение.

Ollama и сервисы внешних поставщиков моделей — сторонние продукты. Их доступность, поведение моделей и правила работы не зависят от VB Decompiler.