
Plugin para o Binary Ninja que integra modelos locais do Ollama para renomear funções e variáveis em código HLIL descompilado, preservando a privacidade ao manter a análise totalmente local e offline.
Autor: Austin Haggard
O Binary Ninja Ollama se integra ao seu próprio servidor ollama hospedado localmente para renomear funções e variáveis com IA
Ollama é uma ferramenta que permite baixar modelos de IA de código aberto e executá-los localmente. Alguns modelos exigem muito poder de processamento, enquanto outros podem ser executados no seu notebook pessoal. Os resultados variam bastante dependendo do modelo que você escolher usar :).
Por que usar isso em vez de sidekick/openai?
Este plugin integra o Ollama ao Binary Ninja e oferece suporte às ações listadas abaixo:
Se você estiver instalando isso como um plugin autônomo, pode colocar (ou criar um sym-link) na pasta de plugins do Binary Ninja. Os caminhos padrão estão detalhados na documentação do Vector 35.
ollama instalado com pip3 install ollamaIsso exige que você tenha acesso a um servidor ollama ou hospede o seu próprio servidor e baixe quaisquer modelos que queira usar.
Siga as instruções em https://ollama.com para configurar seu servidor e baixar quaisquer modelos que queira experimentar. Depois disso, um servidor deve ser iniciado automaticamente e acessado via localhost:11434.
A opção de renomear todas as variáveis de função analisará todas as variáveis dentro de uma função e tentará renomeá-las com base no seguinte 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"
)

A opção de renomear todas as funções percorrerá todas as funções, da menor para a maior, dentro de uma binaryview e as renomeará com base no 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."
)

Renomear uma função alvo usa o mesmo prompt da renomeação de todas as funções, mas limita-o à função selecionada ao acionar o plugin.
Renomear uma variável alvo usa o mesmo prompt da renomeação de todas as variáveis, mas limita-o à função selecionada ao acionar o plugin.
As configurações são acionadas na primeira chamada a qualquer operação de renomeação quando o binary ninja é iniciado pela primeira vez, ou acionando-as manualmente. As configurações aplicadas persistirão durante uma sessão do binary ninja.
A janela de configurações permite definir o IP, a porta e o modelo a serem usados no ollama. Apenas modelos baixados são selecionáveis.

Há algo em que você tenha interesse que não esteja incluído?
Ideias:
Este plugin é lançado sob a licença MIT.