
Plugin per Binary Ninja che integra modelli Ollama locali per rinominare funzioni e variabili nel codice HLIL decompilato, preservando la privacy mantenendo l'analisi completamente locale e offline.
Autore: Austin Haggard
Binary Ninja Ollama si integra con il tuo server ollama ospitato localmente per rinominare funzioni e variabili con l'AI
Ollama è uno strumento che ti permette di scaricare modelli AI open source ed eseguirli localmente. Alcuni modelli richiedono un'enorme potenza di calcolo, mentre altri possono essere eseguiti sul tuo laptop personale. I risultati variano notevolmente a seconda del modello che scegli di usare :).
Perché usarlo al posto di sidekick/openai?
Questo plugin integra Ollama con Binary Ninja e supporta le azioni elencate di seguito:
Se stai installando questo come plugin autonomo, puoi posizionarlo (o creare un sym-link) nel percorso dei plugin di Binary Ninja. I percorsi predefiniti sono descritti nella documentazione di Vector 35.
ollama installato con pip3 install ollamaQuesto richiede di avere accesso al tuo server ollama o di ospitarne uno, e di scaricare i modelli che vuoi usare.
Segui le istruzioni su https://ollama.com per configurare il server e scaricare i modelli che vuoi provare. Una volta fatto, un server dovrebbe essere avviato automaticamente e accessibile tramite localhost:11434.
L'opzione per rinominare tutte le variabili di funzione analizza tutte le variabili all'interno di una funzione e tenta di rinominarle in base al seguente 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"
)

L'opzione per rinominare tutte le funzioni scorre tutte le funzioni, dalla più piccola alla più grande, all'interno di una binaryview e le rinomina in base al 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."
)

La rinomina di una funzione bersaglio usa lo stesso prompt della rinomina di tutte le funzioni, ma la limita alla funzione selezionata quando si attiva il plugin.
La rinomina di una variabile bersaglio usa lo stesso prompt della rinomina di tutte le variabili, ma la limita alla funzione selezionata quando si attiva il plugin.
Le impostazioni vengono attivate alla prima chiamata di qualsiasi operazione di rinomina all'avvio di Binary Ninja, oppure attivandole manualmente. Le impostazioni applicate persistono per tutta la sessione di Binary Ninja.
La finestra delle impostazioni consente di impostare IP, porta e modello da usare in ollama. Sono selezionabili solo i modelli scaricati.

C'è qualcosa che ti interessa e che non è incluso?
Idee:
Questo plugin è rilasciato sotto licenza MIT.