
Plugin para Binary Ninja que integra modelos locales de Ollama para renombrar funciones y variables en código HLIL descompilado, preservando la privacidad al mantener el análisis completamente local y sin conexión.
Autor: Austin Haggard
Binary Ninja Ollama se integra con tu propio servidor ollama alojado localmente para renombrar funciones y variables con IA
Ollama es una herramienta que te permite descargar modelos de IA de código abierto y ejecutarlos localmente. Algunos modelos requieren una gran potencia de cálculo, mientras que otros pueden ejecutarse en tu portátil personal. Los resultados variarán enormemente dependiendo del modelo que elijas usar :).
¿Por qué usar esto en lugar de sidekick/openai?
Este plugin integra Ollama con Binary Ninja y soporta las siguientes acciones:
Si estás instalando esto como un plugin independiente, puedes colocar (o enlazar simbólicamente) esto en la ruta de plugins de Binary Ninja. Las rutas predeterminadas se detallan en la documentación de Vector 35.
ollama instalado con pip3 install ollamaEsto requiere que tengas acceso a tu propio servidor ollama o lo hospedes, y que descargues los modelos que quieras usar.
Sigue las instrucciones en https://ollama.com para configurar tu servidor y descargar los modelos que quieras probar. Una vez hecho esto, un servidor debería iniciarse automáticamente y podrá accederse a través de localhost:11434.
La opción de renombrar todas las variables de una función analizará todas las variables dentro de una función e intentará renombrarlas según el siguiente prompt:
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"
)

La opción de renombrar todas las funciones recorrerá todas las funciones, de menor a mayor, dentro de una binaryview y las renombrará según el prompt:
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."
)

Renombrar una función específica usa el mismo prompt que renombrar todas las funciones, pero se limita a la función seleccionada al activar el plugin.
Renombrar una variable específica usa el mismo prompt que renombrar todas las variables, pero se limita a la función seleccionada al activar el plugin.
La configuración se activa en la primera llamada a cualquier operación de renombrado cuando Binary Ninja se inicia por primera vez, o al activarla manualmente. La configuración aplicada persistirá dentro de una sesión de Binary Ninja.
La ventana de configuración te permite establecer la IP, el puerto y el modelo a usar dentro de ollama. Solo los modelos descargados son seleccionables.

¿Algo que te interese y no esté incluido?
Ideas:
Este plugin se publica bajo una licencia MIT.