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

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

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

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

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

Категории

Все категории
Loading categories
binaryninja-ollama — Плагин для Binary Ninja, который интегрирует локальные модели Ollama для переименования функций и переменных в декомпилированном коде HLIL, сохраняя конфиденциальность за счёт полностью локального и офлайн-анализа. | Kitploit
Инструменты/GitHubGitHub/ahaggard2013/binaryninja-ollama
Анализ КодаОбратная инженерияКонфиденциальностьАнализ Бинарных ФайловМашинное ОбучениеОбратная Разработка с Помощью ИИ
GitHubahaggard2013/binaryninja-ollama

binaryninja-ollama

Плагин для Binary Ninja, который интегрирует локальные модели Ollama для переименования функций и переменных в декомпилированном коде HLIL, сохраняя конфиденциальность за счёт полностью локального и офлайн-анализа.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
83111 год назадПроверено Kitploit

"Buy Me A Coffee"

Binary Ninja Ollama (v1.0.9)

Автор: Austin Haggard

Binary Ninja Ollama интегрируется с вашим локально размещённым сервером ollama, чтобы переименовывать функции и переменные с помощью ИИ

Описание:

Ollama — это инструмент, который позволяет загружать модели ИИ с открытым исходным кодом и запускать их локально. Некоторым моделям требуется значительная вычислительная мощность, тогда как другие могут работать на вашем личном ноутбуке. Результаты будут сильно различаться в зависимости от выбранной вами модели :).

Почему стоит использовать это вместо sidekick/openai?

  1. Это БЕСПЛАТНО и легко настраивается локально.
  2. Я говорил, что это БЕСПЛАТНО?
  3. Его можно запускать где угодно без интернета!
  4. Ваши данные остаются только между вами и вашим сервером ollama, без участия третьих сторон.

Возможности

Этот плагин интегрирует Ollama с Binary Ninja и поддерживает перечисленные ниже действия:

  • Настройка того, какой сервер/порт binary ninja должен использовать для подключения к ollama.
    • Есть (очень) мощный игровой ПК? Используйте его для размещения ollama и укажите binja на llama3:70b/gemma2:27b.
    • Запускаете это на ноутбуке? Разместите его локально, установите localhost и запустите gemma2:latest/llama3:latest.
    • Есть множество других моделей, которые можно попробовать, но в основном я тестировал это на вариантах llama3/gemma2 с неплохими результатами.
  • Запрос к вашему локально размещённому серверу ollama, чтобы определить, что делает данная функция.
    • Это можно использовать для массового переименования всех функций или для отдельных целевых функций.
  • Позволяет пользователям переименовывать переменные в HLIL с помощью ollama.
    • Это можно использовать для переименования отдельных переменных внутри инструкции.
    • Это можно использовать для переименования всех переменных внутри функции.

Установка

Если вы устанавливаете это как отдельный плагин, вы можете поместить (или создать симлинк) его в папку плагинов Binary Ninja. Пути по умолчанию описаны в документации Vector 35.

Зависимости

  • Python 3.10+
  • ollama, установленный с помощью pip3 install ollama

Сервер Ollama

Это требует, чтобы у вас был доступ к собственному серверу ollama или вы размещали его самостоятельно, а также загрузили любые модели, которые хотите использовать.

Следуйте инструкциям на https://ollama.com, чтобы настроить сервер и загрузить любые модели, которые хотите попробовать. После этого сервер должен автоматически запуститься, и к нему можно будет обращаться через localhost:11434.

Использование

Переименование всех переменных функции

Вариант переименования всех переменных функции проанализирует все переменные внутри функции и попытается переименовать их на основе следующего запроса:

root@kitploit:~
prompt = (
             f"In one word, what should the variable '{variable}' be named in the below Function? "
             f"The name must meet the following criteria: all lowercase letters, usable in Python code"
)

Before variables renaming After variables renaming

Переименование всех функций

Вариант переименования всех функций будет последовательно перебирать все функции в binaryview, от наименьшей к наибольшей, и переименовывать их на основе запроса:

root@kitploit:~
prompt = (
    f"Given the following HLIL decompiled code snippet, provide a Python-style function name that describes what the code is doing. "
    f"The name must meet the following criteria: all lowercase letters, usable in Python code, with underscores between words. "
    f"Only return the function name and no other explanation or text data included."
)

Before functions renaming After functions renaming After functions renaming

Переименование целевой функции

Переименование целевой функции использует тот же запрос, что и переименование всех функций, но ограничивает его выбранной функцией при запуске плагина.

Переименование переменной целевой функции

Переименование целевой переменной использует тот же запрос, что и переименование всех переменных, но ограничивает его выбранной функцией при запуске плагина.

Настройки

Настройки вызываются при первом обращении к любой операции переименования при первом запуске binary ninja или при ручном вызове. Применённые настройки сохраняются в течение сеанса binary ninja.

Окно настроек позволяет указать IP-адрес, порт и модель для использования в ollama. Выбрать можно только загруженные модели.

Plugin settings option Plugin connection options Plugin model options

Известные проблемы

  • На больших функциях ИИ игнорирует запрос и возвращает большие блоки текста с описанием функции. Это смягчается игнорированием возвращённого значения и записью в лог «не удалось переименовать функцию», но этот вопрос можно изучить подробнее.
  • Ситуацию с несуществующим выбранным сервером можно было бы обрабатывать лучше.

Запросы новых функций

  • Что-то, что вас интересует, но отсутствует в плагине?

    • Откройте issue!
    • Создайте pull request.
  • Идеи:

    • переименование отдельной переменной вместо всех переменных в строке
    • создание ИИ-комментариев, описывающих код
    • восстановление структуры

Лицензия

Этот плагин выпущен под лицензией MIT.

Скачать инструмент