
Plugin pour Binary Ninja qui intègre les modèles Ollama locaux pour renommer les fonctions et les variables dans le code HLIL décompilé, préservant la confidentialité en gardant l'analyse entièrement locale et hors ligne.
Auteur : Austin Haggard
Binary Ninja Ollama s'intègre à votre propre serveur ollama hébergé localement pour renommer les fonctions et les variables avec l'IA
Ollama est un outil qui vous permet de télécharger des modèles d'IA open source et de les exécuter localement. Certains modèles nécessitent une puissance de calcul importante, tandis que d'autres peuvent être exécutés sur votre ordinateur personnel. Les résultats varieront considérablement selon le modèle que vous choisissez d'utiliser :).
Pourquoi utiliser ceci plutôt que sidekick/openai ?
Ce plugin intègre Ollama à Binary Ninja et prend en charge les actions listées ci-dessous :
Si vous installez ceci en tant que plugin autonome, vous pouvez placer (ou créer un lien symbolique) ce dossier dans le chemin des plugins de Binary Ninja. Les chemins par défaut sont détaillés dans la documentation de Vector 35.
ollama installé avec pip3 install ollamaCeci nécessite d'avoir accès à votre propre serveur ollama ou de l'héberger vous-même, et de télécharger les modèles que vous souhaitez utiliser.
Suivez les instructions sur https://ollama.com pour configurer votre serveur et télécharger les modèles que vous souhaitez essayer. Une fois cela fait, un serveur devrait être démarré automatiquement et accessible via localhost:11434.
L'option de renommage de toutes les variables d'une fonction analyse toutes les variables d'une fonction et tente de les renommer en fonction de l'invite suivante :
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"
)

L'option de renommage de toutes les fonctions parcourt toutes les fonctions, de la plus petite à la plus grande, dans une binaryview et les renomme en fonction de l'invite :
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."
)

Le renommage d'une fonction ciblée utilise la même invite que le renommage de toutes les fonctions, mais la limite à la fonction sélectionnée lors du déclenchement du plugin.
Le renommage d'une variable ciblée utilise la même invite que le renommage de toutes les variables, mais la limite à la fonction sélectionnée lors du déclenchement du plugin.
Les paramètres sont déclenchés au premier appel de toute opération de renommage au premier démarrage de binary ninja, ou en les déclenchant manuellement. Les paramètres appliqués persistent pendant une session binary ninja.
La fenêtre des paramètres vous permet de définir l'IP, le port et le modèle à utiliser dans ollama. Seuls les modèles téléchargés sont sélectionnables.

Quelque chose vous intéresse qui n'est pas inclus ?
Idées :
Ce plugin est publié sous une licence MIT.