Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
TS_LLMLib — Bibliothèque Python pour l'analyse de sécurité locale assistée par LLM avec analyse binaire Ghidra, scan de vulnérabilités C/C++ et intégration d'outils MCP pour la rétro-ingénierie automatisée et la génération de rapports. | Kitploit
Outils/GitHubGitHub/trustedsec/ts_llmlib
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeExploitationRétro-ingénierieScripting et AutomatisationUtilitaires et FrameworksAnalyse de BinairesApprentissage AutomatiqueSécurité de l'IA
GitHubtrustedsec/ts_llmlib
14il y a 3 moisPas encore vérifié

TS_LLMLib

Bibliothèque Python pour l'analyse de sécurité locale assistée par LLM avec analyse binaire Ghidra, scan de vulnérabilités C/C++ et intégration d'outils MCP pour la rétro-ingénierie automatisée et la génération de rapports.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ts_llmlib - Bibliothèque LLM de TrustedSec

La bibliothèque LLM de TrustedSec est une bibliothèque Python permettant d'interagir avec des LLM locaux prenant en charge l'utilisation d'outils. Elle permet d'exécuter de grands workflows traditionnellement possibles uniquement avec des modèles de pointe en exploitant des points de terminaison LLM locaux et l'intégration MCP (Model Context Protocol).

Fonctionnalités

  • Support LLM local : Connectez-vous à tout point de terminaison d'API compatible OpenAI ou utilisez des serveurs LLM locaux.
  • Intégration MCP : Prise en charge complète du Model Context Protocol pour les protocoles RPC et SSE.
  • Registre d'outils : Outils de gestion de fichiers intégrés avec possibilité d'extension pour des outils personnalisés.
  • Historique des conversations : Maintien du contexte de chat sur plusieurs tours.
  • Limites de temps : Délais d'exécution configurables pour éviter les opérations incontrôlées.
  • Python pur : Aucune dépendance externe en dehors de la bibliothèque standard.

Installation

En tant que package Python

root@kitploit:~
# Clonez ou copiez le dépôt
git clone https://github.com/trustedsec/ts_llmlib.git
cd ts_llmlib

# Installez avec pip
pip install -e .

Installation manuelle

Copiez le répertoire ts_llmlib/ dans votre projet :

root@kitploit:~
cp -rf ts_llmlib /chemin/vers/votre/projet/

Démarrage rapide

Utilisation de base

root@kitploit:~
from ts_llmlib import ChatSession

# Initialisation avec les valeurs par défaut (se connecte à http://localhost:1234/v1/chat/completions)
chat = ChatSession()

# Exécuter une requête
response = chat.run_prompt("Quels fichiers se trouvent dans le répertoire actuel ?")
print(response['content'])

Avec configuration personnalisée

root@kitploit:~
from ts_llmlib import ChatSession

# Configuration avec des paramètres personnalisés
chat = ChatSession(
    system_prompt="Vous êtes un assistant utile qui utilise des outils de fichiers.",
    tool_list=[],  # Vide = utilise les outils de fichiers par défaut
    mcp_servers={
        "default": "http://localhost:3000/mcp"
    },
    llm_endpoint_url="http://localhost:1234/v1/chat/completions",
    model_name="qwen3-coder-next",
    timeout=60,
    max_runtime=300
)

response = chat.run_prompt("Écris 'hello' dans /tmp/greeting.txt")
print(response['content'])

Avec historique des conversations

root@kitploit:~
from ts_llmlib import ChatSession

chat = ChatSession()

history = [
    {"role": "user", "content": "Combien font 2+2 ?"},
    {"role": "assistant", "content": "La réponse est 4."}
]

response = chat.run_prompt("Peux-tu écrire cela dans un fichier ?", history=history)

Outils intégrés

OutilParamètresDescription
read_local_filepath: strLit le contenu d'un fichier local
write_local_filepath: str, content: strÉcrit du contenu dans un fichier local
list_directorypath: strListe les fichiers et répertoires dans un chemin

Intégration MCP

MCP (Model Context Protocol) permet l'intégration avec des outils et services externes. Lorsque des serveurs MCP sont configurés, ts_llmlib :

  1. Initialise les connexions à chaque serveur
  2. Récupère les outils disponibles depuis le serveur
  3. Les fusionne avec les outils intégrés (les outils MCP prennent le pas pour les noms correspondants)
  4. Exécute les appels d'outils en utilisant le serveur approprié

Exemple avec le serveur Ghidra MCP

root@kitploit:~
from ts_llmlib import ChatSession

chat = ChatSession(
    mcp_servers={
        "ghidraSvr": "http://localhost:8081/sse"
    },
    llm_endpoint_url="http://localhost:1234/v1/chat/completions",
    model_name="qwen3-coder-next"
)

# La session de chat récupérera et intégrera automatiquement les outils Ghidra
# comme list_methods, decompile_function, get_xrefs_to, etc.

Points de terminaison des serveurs MCP

ts_llmlib prend en charge les points de terminaison de style RPC et SSE (Server-Sent Events) :

  • RPC : http://localhost:3000/mcp
  • SSE : http://localhost:3000/sse (converti automatiquement en /mcp pour les appels RPC)

Référence API

Classe ChatSession

root@kitploit:~
ChatSession(
    system_prompt: str | None = None,
    tool_list: list | None = None,
    mcp_servers: dict[str, str] | None = None,
    llm_endpoint_url: str = "http://localhost:1234/v1/chat/completions",
    model_name: str = "default",
    timeout: int = 60,
    max_runtime: int = 300
)

Paramètres :

  • system_prompt (str | None) : Prompt système personnalisé. Par défaut, un prompt d'assistant minimal.
  • tool_list (list | None) : Liste de définitions d'outils personnalisés. Une liste vide utilise les outils intégrés.
  • mcp_servers (dict[str, str] | None) : Dictionnaire associant les noms de serveurs à leurs URL.
  • llm_endpoint_url (str) : URL du point de terminaison de l'API LLM.
  • model_name (str) : Identifiant du modèle pour le point de terminaison LLM.
  • timeout (int) : Délai d'expiration de la requête HTTP en secondes.
  • max_runtime (int) : Temps d'exécution maximal pour une requête en secondes.

Méthode run_prompt

root@kitploit:~
response = chat.run_prompt(
    user_prompt: str,
    conversation_history: list[dict] | None = None,
    disable_tools: list[str] | None = None,
    max_runtime: int | None = None
) -> dict

Paramètres :

  • user_prompt (str) : Le message ou la question de l'utilisateur.
  • conversation_history (list[dict] | None) : Historique de conversation optionnel sous forme de liste de paires rôle/contenu.
  • disable_tools (list[str] | None) : Liste des noms d'outils à désactiver pour cet appel.
  • max_runtime (int | None) : Remplace la durée d'exécution maximale par défaut pour cet appel spécifique.

Retourne :

root@kitploit:~
{
    "content": str,           # Texte de réponse du LLM
    "tool_calls": list,       # Liste des appels d'outils effectués (le cas échéant)
    "usage": dict | None,     # Utilisation des tokens si disponible depuis le LLM
    "error": str | None       # Message d'erreur en cas d'échec
}

Registre d'outils

Le ToolRegistry gère tous les outils disponibles pour la session de chat :

  • Outils intégrés : Opérations sur fichiers (lecture/écriture/listage)
  • Outils MCP : Outils récupérés depuis les serveurs MCP
  • Outils personnalisés : Outils définis par l'utilisateur via le paramètre tool_list

Exemples

Pour remplacer les chemins par défaut, vous pouvez définir les variables suivantes, qui sont vérifiées dans ChatSession.

root@kitploit:~
TS_LLM_MODEL=qwen3-coder-next TS_LLM_ENDPOINT=http://HOSTNAME:1234/v1/chat/completions
# Exemple d'utilisation
export TS_LLM_MODEL=qwen3-coder-next
export TS_LLM_ENDPOINT=http://HOSTNAME:1234/v1/chat/completions
ts_llmlib-redclippy
# OU
TS_LLM_MODEL=qwen3-coder-next TS_LLM_ENDPOINT=http://HOSTNAME:1234/v1/chat/completions ts_llmlib-redclippy

Analyse de code source C/C++

Analyse les fichiers sources C/C++ pour détecter les vulnérabilités de sécurité :

root@kitploit:~
ts_llmlib-cpp-analyze <dossier_source> <dossier_sortie>

Analyse binaire Ghidra

Analyse de rétro-ingénierie binaire avec intégration Ghidra :

root@kitploit:~
# Analyse de base
ts_llmlib-ghidra-analyze <dossier_sortie>

# Mode uniquement renommage (première passe)
ts_llmlib-ghidra-analyze --rename_only <dossier_sortie>

# Traiter uniquement les fonctions précédemment sans nom
ts_llmlib-ghidra-analyze --process_unnamed_only <dossier_sortie>

# Analyse groupée pour le regroupement par relations d'appel
ts_llmlib-ghidra-analyze --grouped <dossier_sortie>

Une fois terminé (sans --rename_only), vous pouvez nettoyer la structure en exécutant :

root@kitploit:~
ts_llmlib-ghidra-cleanup <dossier_entree> <dossier_sortie>

Génération de rapport de vulnérabilités

Générer des rapports de vulnérabilités formatés à partir de fichiers JSON de revue :

root@kitploit:~
ts_llmlib-ghidra-report <dossier_revue>

Application de chat graphique

Lancer l'interface de chat Qt RedClippy (cet exemple nécessite pyside6) :

root@kitploit:~
ts_llmlib-redclippy

Options de configuration

Configuration du point de terminaison LLM

ts_llmlib se connecte à tout point de terminaison d'API compatible OpenAI. Serveurs LLM locaux courants :

ServeurURL par défaut
Ollamahttp://localhost:11434/v1/chat/completions
LM Studiohttp://localhost:1234/v1/chat/completions
vLLMhttp://localhost:8000/v1/chat/completions

Limites de temps

Deux paramètres de délai contrôlent l'exécution :

  • Délai HTTP (timeout) : Temps maximum pour une seule requête API
  • Temps d'exécution maximum (max_runtime) : Temps total autorisé pour le traitement d'une requête (y compris les appels d'outils)

Si l'une ou l'autre limite est dépassée, la réponse contiendra un message d'erreur.

Gestion des erreurs

Toutes les erreurs sont retournées dans le dictionnaire de réponse :

root@kitploit:~
response = chat.run_prompt("Une requête")

if response.get('error'):
    print(f"Erreur : {response['error']}")
else:
    print(response['content'])

Erreurs courantes

  • Erreurs HTTP : Connexion refusée, délai d'expiration, clé API invalide
  • Erreurs d'analyse JSON : Arguments d'outils invalides ou réponses mal formatées
  • Erreurs d'exécution d'outils : Fichiers manquants, problèmes de permissions, paramètres invalides
  • Erreurs de délai : Opération ayant dépassé la limite max_runtime

Structure du projet

root@kitploit:~
ts_llmlib/
├── __init__.py          # Initialisation du package, exporte ChatSession
├── client.py            # LLMClient pour les requêtes HTTP vers les points de terminaison LLM
├── chat.py              # Classe ChatSession (API principale)
├── mcp.py               # MCPClient pour l'intégration du Model Context Protocol
├── tools.py             # ToolRegistry pour la gestion des outils
├── HOW_TO_TS_LLMLIB.md  # Documentation originale
└── examples/            # Scripts d'exemple
    ├── c_cpp_analyze.py     # Script d'analyse de vulnérabilités C/C++
    ├── redclippy.py         # Application de chat graphique basée sur Qt
    ├── ghidra_analyze.py    # Analyse binaire Ghidra avec intégration MCP
    ├── ghidra_vuln_report.py  # Générateur de rapports de vulnérabilités
    ├── ghidra_cleanup.py    # Utilitaire de réorganisation des fichiers de sortie
    └── example_ts_llmlib.py # Script d'exemple montrant l'utilisation de la bibliothèque

pyproject.toml         # Configuration moderne du package Python (scripts définis ici)
LICENSE.txt            # Licence BSD-3-Clause
README.md              # Ce fichier

Licence

Licence BSD-3-Clause - Voir le fichier LICENSE.txt pour plus de détails.

Contribuer

Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.

  1. Forkez le dépôt
  2. Créez votre branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Commitez vos changements (git commit -m 'Ajout d'une fonctionnalité incroyable')
  4. Poussez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request
Télécharger l’outil