Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Gepetto — Plugin para IDA que consulta modelos de linguagem para acelerar a engenharia reversa. | Kitploit
Ferramentas/GitHubGitHub/justicerage/gepetto
Análise de CódigoEngenharia ReversaAnálise de BináriosAprendizado de MáquinaEngenharia Reversa Assistida por IA
GitHubjusticerage/gepetto

Gepetto

Plugin para IDA que consulta modelos de linguagem para acelerar a engenharia reversa.

Ver Repositório
3.5k33254há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Gepetto

Gepetto é um plugin Python que utiliza diversos grandes modelos de linguagem para dar significado às funções decompiladas pelo IDA Pro (≥ 7.6). Ele pode aproveitá-los para explicar o que uma função faz e para renomear automaticamente suas variáveis. Aqui está um exemplo simples do que ele pode fornecer em meros segundos:

Configuração

Usando hcli (Recomendado)

A maneira mais fácil de instalar o Gepetto é usando a ferramenta CLI do Hex-Rays (hcli):

pip install ida-hcli
hcli plugin install gepetto

Isso instalará automaticamente o plugin no diretório de usuário do seu IDA.

Instalação Manual

Como alternativa, você pode instalar o plugin manualmente:

  1. Coloque este script (gepetto.py, bem como a pasta gepetto/) na sua pasta de plugins do IDA ($IDAUSR/plugins).
  2. O local do diretório de plugins depende do seu sistema:
    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS: ~/.idapro/plugins/
    • Linux: ~/.idapro/plugins/
  3. Instale os pacotes necessários na instalação do Python do IDA. Descubra qual interpretador o IDA está usando verificando a seguinte chave de registro: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (padrão no Windows: %LOCALAPPDATA%\Programs\Python\Python39).
  4. Com o interpretador correspondente, basta executar:
    [/path/to/python] -m pip install -r requirements.txt
    

Configuração

O Gepetto mantém sua configuração no diretório de usuário do IDA, para que ela sobreviva às atualizações do plugin:

  • Windows: %APPDATA%\Hex-Rays\IDA Pro\cfg\gepetto\config.ini
  • macOS / Linux: ~/.idapro/cfg/gepetto/config.ini

Na primeira vez que o plugin é executado, ele copia gepetto/config.ini para lá e informa o caminho no console. Depois disso, a cópia distribuída com o plugin é apenas um modelo — edite a que está no seu diretório de usuário. Defina GEPETTO_CONFIG_DIR para substituir o local completamente.

Adicione suas chaves de API a esse arquivo, ou forneça-as por meio das variáveis de ambiente nomeadas nele. Para a OpenAI, uma chave pode ser criada nesta página. Observe que as consultas à API geralmente não são gratuitas (embora não sejam muito caras) e você precisará configurar um método de pagamento com o provedor correspondente.

Modelos suportados

  • Anthropic
    • claude-opus-4-7
    • claude-sonnet-4-6
    • claude-haiku-4-5
  • OpenAI
    • gpt-5
    • gpt-5-mini
    • gpt-5-nano
    • gpt-4-turbo
    • gpt-4o
    • o4-mini
    • gpt-4.1
    • o3
    • o3-pro
  • Google Gemini
    • gemini-2.0-flash
    • gemini-2.5-pro
    • gemini-2.5-flash
    • gemini-2.5-flash-lite-preview-06-17
  • Azure OpenAI
    • gpt-35-turbo
    • gpt-35-turbo-1106
    • gpt-35-turbo-16k
    • gpt-4-turbo
    • gpt-4-turbo-2024-0409-gs
  • Ollama
    • Qualquer modelo local exposto pelo Ollama (não aparecerá se o Ollama não estiver em execução)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1 (não suporta renomeação de variáveis)
  • Novita AI
    • deepseek/deepseek-r1
    • deepseek/deepseek-v3
    • meta-llama/llama-3.3-70b-instruct
    • meta-llama/llama-3.1-70b-instruct
    • meta-llama/llama-3.1-405b-instruct
  • Kluster.ai
    • deepseek-ai/DeepSeek-R1
    • deepseek-ai/DeepSeek-V3-0324
    • google/gemma-3-27b-it
    • klusterai/Meta-Llama-3.1-8B-Instruct-Turbo
    • klusterai/Meta-Llama-3.1-405B-Instruct-Turbo
    • klusterai/Meta-Llama-3.3-70B-Instruct-Turbo
    • meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
    • meta-llama/Llama-4-Scout-17B-16E-Instruct
    • Qwen/Qwen2.5-VL-7B-Instruct
  • LM Studio
    • Qualquer modelo local exposto pelo LM Studio (não aparecerá se o servidor LM Studio Developer não estiver em execução)

Adicionando seu próprio provedor

O Gepetto carrega provedores de três locais, cada um substituindo o anterior em caso de colisão de nome de menu: os módulos distribuídos em gepetto/models/, depois qualquer arquivo .py em $IDAUSR/cfg/gepetto/providers/, e depois qualquer distribuição instalada que anuncie um entry point gepetto.providers. As substituições são anunciadas no console, para que você possa substituir um provedor integrado sem fazer fork do plugin.

Um provedor drop-in usa exatamente o mesmo contrato que um integrado. Para um endpoint compatível com OpenAI, o arquivo inteiro é:

import openai
import gepetto.config
import gepetto.models.model_manager
from gepetto.models.openai import GPT


class MyProvider(GPT):
    @staticmethod
    def get_menu_name() -> str:
        return "MyProvider"

    @staticmethod
    def supported_models():
        return ["my-model-v1"]

    @staticmethod
    def is_configured_properly() -> bool:
        return bool(gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"))

    def __init__(self, model):
        try:
            super().__init__(model)
        except ValueError:
            pass  # No OpenAI key needed for this provider.
        self.model = model
        self.client = openai.OpenAI(
            api_key=gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"),
            base_url="https://api.example.com/v1",
        )


gepetto.models.model_manager.register_model(MyProvider)

Adicione uma seção [MyProvider] correspondente ao seu config.ini e reinicie o IDA: os provedores são registrados no momento do carregamento, portanto, uma nova chave ou um novo arquivo exige uma reinicialização antes de aparecer no menu.

Para distribuir um como pacote, exponha a classe ou um register(register_model) chamável:

[project.entry-points."gepetto.providers"]
myprovider = "myprovider:MyProvider"

Arquivos em providers/ executam Python arbitrário quando o IDA inicia. Esse é o mesmo nível de confiança de qualquer plugin do IDA, mas instale apenas provedores em que você confia.

Uso

Depois que o plugin estiver instalado corretamente, você deverá conseguir invocá-lo a partir do menu de contexto da janela de pseudocódigo do IDA, como mostrado na captura de tela abaixo:

Alterne entre os modelos suportados pelo Gepetto no menu Edit > Gepetto:

O Gepetto também fornece uma interface de linha de comando (CLI) que você pode usar para fazer perguntas ao LLM diretamente do IDA. Certifique-se de selecionar Gepetto na barra de entrada:

Atalhos de teclado

Os seguintes atalhos de teclado estão disponíveis:

  • Pedir ao modelo para explicar a função: Ctrl + Alt + G
  • Pedir ao modelo para adicionar comentários ao código: Ctrl + Alt + K
  • Solicitar melhores nomes para as variáveis da função: Ctrl + Alt + R

Testes iniciais mostram que pedir melhores nomes funciona melhor se você pedir uma explicação da função primeiro – eu suponho que seja porque o modelo então usa seu próprio comentário para fazer sugestões mais precisas. Há um elemento de aleatoriedade nas respostas da IA. Se por algum motivo a resposta inicial que você receber não lhe agradar, você sempre pode executar o comando novamente.

Limitações

  • O plugin requer acesso ao descompilador HexRays para funcionar.
  • Todos os LLMs suportados são de uso geral e podem muito bem errar! Seja sempre crítico em relação aos resultados retornados!
Baixar ferramenta