Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Zerodapi — 0dAPI Documentazione Ufficiale | Kitploit
Strumenti/GitHubGitHub/0dai-ml/zerodapi
OSINT (Open Source Intelligence)Scanner di VulnerabilitàFramework di ExploitGenerazione di PayloadSicurezza WebPenetration TestingApprendimento e FormazioneSicurezza dell'IA
GitHub0dai-ml/zerodapi

Zerodapi

0dAPI Documentazione Ufficiale

Vedi Repository
11242 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Documentazione di Zerodai

Inizia!

pip install zerodai==0.0.0.20
export zerodapi_key="TU_API_KEY"

Ottieni la tua api key https://zerodai.com Chat Conversazionale Semplice - Senza memoria


from zerodai import zerodai
import os
zerodai.api_auth(os.getenv("zerodapi_key"))
messages = []
while True:
    prompt = input("> ")
    if prompt == "exit":
        break
    messages.append({"role": "user", "content": prompt})

    messages.append({"role": "system", "content": "Eres 0dAI un asistente de ciberseguridad cuya unica función es..."})
    zerodai.inference(model="0dai70b", messages=messages, temperature=0.7, stream=True)

Zerodai è una libreria di elaborazione del linguaggio naturale orientata alla cybersecurity che mira ad automatizzare parzialmente processi basati sull'elaborazione umana di informazioni, ragionamento, pianificazione ed esecuzione. Cerchiamo di creare un framework di agenti per la cybersecurity con le seguenti capacità:

Capacità

  • Modularità e adattabilità: Vogliamo che questa libreria sia facile da implementare e da integrare con altri componenti software.
  • Semplificazione: Vogliamo semplificare in un formato più umano tutte le informazioni che l'utente riceve al termine di un processo.

Inferenze

È il metodo base di interazione con il modello e dispone dei seguenti parametri. È importante che questi parametri siano appresi e compresi bene, poiché sono la base della libreria.

Parametri

  • model: Il modello linguistico da utilizzare. I modelli disponibili sono:

    • 0dai7b: Modello base con uso illimitato, veloce e perfetto per conversazioni semplici e assistenza nella programmazione. Difende bene in cybersecurity.

      • 16k di contesto
      • 16 bit
      • No function calls
    • 0dai8x7b: Modello flessibile con una finestra di contesto ampia, livello GPT-4 per quanto riguarda il codice, buono per domande e script complessi di cybersecurity.

      • 32k di contesto
      • 8 bit
      • No function calls
    • 0daifn: Modello raccomandato per function calls, il migliore per function calls, molto contesto, più leggero di 0dai70b, inoltre a livello di function calls multi-passo è al livello del miglior gpt

      • 64k di contesto
      • 16 bit
      • Capacità di Function Calls
    • 0dai70b (Raccomandato): Attualmente SOTA in cybersecurity, capace di complessi ragionamenti logici basati su molto contesto e di risolvere prove di pentesting in modo semi-autonomo. Dispone di function calls e può rispondere con messaggi strutturati. È il più lento ma offre un grande salto di qualità.

      • 64k di contesto
      • 16 bit
      • Capacità di function calls
  • messages: I messaggi che verranno inviati al modello. Qui dobbiamo capire 3 ruoli:

    • system: Prompt con istruzioni da seguire.
    • user: Compito o domanda.
    • assistant: Risposta dell'assistente.

    I messaggi devono avere questo formato:

  messages = [
{"role": "system", "content": """Eres 0dAI tu función es..."""},
{"role": "user", "content": "0dAI escribe un exploit en C"},
]
  • functions: Le funzioni che possono essere chiamate durante l'interazione. Entreremo più nel dettaglio sulle funzioni in fn_c. In questo caso, ci restituirà semplicemente il JSON.

    Una funzione si dichiara così:

function_shodan = [ {
    "name": "shodan_dork",
    "description": "This tools is used to generate a shodan query",
    "parameter_definitions": {
      "dork": {
        "type": "string",
        "description": "The shodan dork",
        "required": True
      }
    }
  }, ]
  • temperature: Controlla la casualità delle risposte del modello. A temperatura più alta, più casualità; a temperatura più bassa, meno casualità.

  • stream (bool): Se trasmettere la risposta in tempo reale.

Utilizzo:

from zerodai import zerodai
messages = []
messages.append({"role": "user", "content": prompt})
messages.append({"role": "system", "content": "Eres 0dAI un asistente de ciberseguridad cuya unica función es..."})
zerodai.inference(model="0dai70b", messages=messages, temperature=0.7, stream=True)

Function calls (fn_c)

In base a una funzione o a una lista di funzioni nel parametro function, il Modello sarà in grado di generare una risposta strutturata che possa servirci dopo un'inferenza: Funzione base

function_shodan = [ {
    "name": "shodan_dork",
    "description": "This tools is used to generate a shodan query",
    "parameter_definitions": {
      "dork": {
        "type": "string",
        "description": "The shodan dork",
        "required": True
      }
    }
  }, ]

Risposta del modello in base a questa funzione

[
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "hacked-router-help-sos"
        }
    }
]

Queste funzioni possono essere multi-passo o no, lo definirà il numero di posizioni del JSON, una risposta multi-passo si presenta così

[
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "hacked-router-help-sos"
        }
    },
    {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": "\"smb\" \"authentication: disabled\""
        }
    },
      {
        "tool_name": "shodan_dork",
        "parameters": {
            "dork": ".docuword_exploited.txt"
        }
     }
   ]

Può esistere anche una logica ricorsiva in termini di inferenza - funzione che si retroalimentano, immaginiamo questo caso

Funzione sottodomini

funcion_subdomains = [ {
    "name": "subdominios",
    "description": "This tools is used to collect domains to extract subdomains",
    "parameter_definitions": {
      "domain": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  }, ]

Funzione crawler

crawler_endpoints = [ {
    "name": "crawler",
    "description": "This tools is used to crawle ndpoints for a host",
    "parameter_definitions": {
      "host": {
        "type": "string",
        "description": "The domain",
        "required": True
      }
    }
  }, ]

Input:

Devo ottenere i sottodomini di openai.com e omegaai.io

Output 1. Funzione:

[
    {
        "tool_name": "subdomains",
        "parameters": {
            "domain": "openai.com"
        }
    },
    {
        "tool_name": "subdomains",
        "parameters": {
            "domain": "omegaai.io"
        }
    },
]

Dopo aver estratto i sottodomini dall'input, applichiamo la nostra logica di esecuzione che sarebbe ottenere i sottodomini...

subdomain1.openai.com
subdomain2.openai.com
subdomain3.openai.com
subdomain1.omegaai.io
subdomain2.omegaai.io
subdomain3.omegaai.io

Dopo aver passato questo alla funzione del crawler sarebbe qualcosa come

Output 2. Funzione:

[
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio1.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio1.omegaai.io"
        }
    },
   {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio2.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio2.omegaai.io"
        }
    },
   {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio3.openai.com"
        }
    },
    {
        "tool_name": "crawler",
        "parameters": {
            "domain": "subdominio3.omegaai.io"
        }
    },
]

fn_c Ci permette di raccogliere i parametri e il nome del tool direttamente senza dover passare attraverso quella logica di filtraggio del JSON in sé

Scarica lo strumento