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
idasql — Vibe Reverse Engineer with IDA SQL : une interface pour IDA en SQL via des tables virtuelles en direct | Kitploit
Outils/GitHubGitHub/allthingsida/idasql
Analyse StatiqueRétro-ingénierieDébogueursAnalyse de MalwareAnalyse de BinairesRétro-Ingénierie Assistée par IAAnalyse de Micrologiciel
GitHuballthingsida/idasql

idasql

Vibe Reverse Engineer with IDA SQL : une interface pour IDA en SQL via des tables virtuelles en direct

Voir le dépôt
36320il y a 25 joursVérifié par Kitploit

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

IDASQL

Donnez à n'importe quel agent d'IA la capacité de comprendre les binaires compilés.

IDASQL est une interface SQL pour les bases de données IDA Pro, créée par Elias Bachaalany. Il expose plus de 30 tables virtuelles couvrant les fonctions, les références croisées, les chaînes, les types, les importations, le désassemblage et la décompilation. Utilisez les compétences /idasql de votre agent de codage pour travailler entièrement en mode headless -- l'agent exécute IDA en arrière-plan pour vous -- ou ouvrez l'interface utilisateur d'IDA et collaborez avec votre agent de codage pour faire de la rétro-ingénierie ensemble. Pas d'IDAPython. Pas de script. Juste du SQL.

Pourquoi SQL ? SQL est le langage de requête universel que chaque agent d'IA parle déjà. IDASQL est indépendant de l'agent : Claude, ChatGPT, Copilot, Cursor, agents personnalisés, ou aucun agent du tout. Tout outil capable d'émettre une requête SQL peut analyser un binaire.

  • Aucun index requis. IDA a déjà tout indexé. Les requêtes s'exécutent instantanément sur la base de données en direct.
  • Aucun script nécessaire. Plus de 30 tables SQL remplacent des centaines de lignes d'IDAPython.
  • Headless, GUI, ou les deux. Fonctionnez entièrement en mode headless, dans l'interface utilisateur d'IDA, ou connectez plusieurs bases de données simultanément.
  • Lecture et écriture. IDASQL n'est pas seulement un outil de requête. Il permet de lire et d'écrire les aspects les plus importants d'une base de données IDA : commentaires de décompilation, récupération de types, application de types (décalages de structures et d'unions), détection de conversions de types, et devinette et mise à jour automatiques du prototype correct.

IDASQL prend en charge l'analyse, les références croisées et le transfert d'annotations entre une ou plusieurs bases de données à la fois. Ce que vous pouvez faire n'est limité que par votre imagination et la puissance du modèle que vous utilisez.

Comment ça marche

IDA Pro possède déjà son propre format de base de données décrivant les fonctions, les chaînes, les références croisées, les types, etc. IDASQL mappe ces structures internes vers des tables virtuelles SQL en direct. Il n'y a aucune étape d'exportation ou d'indexation séparée -- les requêtes s'exécutent directement sur la base de données d'IDA et les modifications sont reflétées en direct.

root@kitploit:~
                    |
              /idasql skills (LLM translates intent to SQL)
                    |
                 IDASQL  -->  IDA database(s)
                    |
                 Results  -->  LLM summarizes & reasons
root@kitploit:~
> **🔧 Créez facilement des outils personnalisés** avec seulement quelques lignes de YAML et une approche pilotée par un système de tickets.

#### 🧠 Fonctionnalités

- **Multiples environnements** : Kubernetes (Helm + Krew), Docker, VM, AWS, et output
- **Création facile d'outils** : Utilisez de simples modèles YAML
- **Système de tickets** : Traitez, suivez et rejouez les tickets
- **Piloté par CI** : Surveillez les dépôts GitHub, les tags ou les releases
- **Graphe de dépendances** : Construisez les outils par étapes

#### ⚙️ Comment ça fonctionne

Trickest Workflow est construit comme une chaîne de montage d'usine - chaque ticket passe par des étapes prédéfinies :

Trigger → Enrich → Build → Test → Release → Deploy → Close

root@kitploit:~

En coulisses, c'est une collection de scripts simples :

workflow.sh → scripts (trigger, enrich, build, stage-1/2/3, test, release, deploy, close)

root@kitploit:~

Et pour accélérer les choses (beaucoup !), [GNU Parallel](https://www.gnu.org/software/parallel/) est utilisé.

#### 🧰 Créer des outils

Un outil n'est rien de plus que quelques lignes de YAML.

```yaml
name: tool-name  # directory name (only lowercase, numbers, hyphens) 
repo: github.com/org/repo  # GitHub repository (other forges might be added in the future) 
labels: [recon, discovery, windows]  # choose from .github/labels.yml 
type: [docker, kubernetes, vm, aws]  # choose from .github/tool-types.yml 
script: |  # script that installs the tool
  apt-get update
  apt-get install -y tool-name
  echo "TIP: use echo to print tool version!"
  tool-name --version

$ idasql -s WerFaultTool.exe.i64 -q "SELECT * FROM funcs LIMIT 5" Opening: WerFaultTool.exe.i64... Database opened successfully.

+------+-------------------------------------------------+------+----------+-------+ | addr | name | size | end_addr | flags | +------+-------------------------------------------------+------+----------+-------+ | 16 | WerFaultTool.AboutForm::.ctor | 13 | 29 | 4096 | | 32 | WerFaultTool.AboutForm::Dispose | 30 | 62 | 4096 | | 64 | WerFaultTool.AboutForm::InitializeComponent | 295 | 359 | 4096 | | 400 | WerFaultTool.WerFaultGUI::.ctor | 936 | 1336 | 4096 | | 1344 | WerFaultTool.WerFaultGUI::CreateDynamicControls | 231 | 1575 | 4096 | +------+-------------------------------------------------+------+----------+-------+ 5 row(s)

root@kitploit:~
*Une seule commande. Des résultats instantanés. Aucun script requis.*

## Démarrage rapide

Après [installation](#installation) du CLI et du plugin IDASQL, lancez votre agent de codage préféré et commencez la rétro-ingénierie par invites. IDASQL fonctionne entièrement en mode headless -- votre agent orchestre IDA Pro : démarrage, analyse, décompilation, annotation, sauvegarde -- ou est hébergé dans l'interface graphique d'IDA, où vous collaborez avec votre agent en temps réel.

### Pour commencer

Ouvrez votre agent de codage préféré (par exemple Claude Code) et tapez :```
/idasql:connect Please open sample_malware.exe in the background and let's analyze it together.

L'agent démarre IDASQL en arrière-plan, sans interface graphique. À partir de ce moment, discutez naturellement avec la base de données. Par exemple :``` /idasql:annotations Fully annotate the function I'm looking at, also use the decompiler skill.

root@kitploit:~
Le modèle raisonne de manière autonome sur la meilleure approche pour comprendre la fonction, en fait la rétro-ingénierie complète et l'annote.

Une fois terminé, demandez à l'agent d'enregistrer et d'arrêter :```
/idasql:connect Please save all databases and shut down IDASQL.

Travailler avec plusieurs bases de données

Vous pouvez travailler avec deux bases de données ou plus simultanément. Invitez votre agent :``` /idasql:connect In this folder, there are many *.exe files. Please use parallel agents to open IDASQL in the background and report how many functions each has.

root@kitploit:~
Ensuite, suivez :```
Tell me, how many strings all these databases have in common?

L'agent travaille avec toutes les bases de données en même temps. Vous pouvez les recouper, les comparer et transférer des annotations entre elles.

Travailler avec l'interface graphique d'IDA

Tout ce qui précède fonctionne également depuis l'interface graphique d'IDA. Pour faire appel à votre agent avec une session IDA ouverte :

  1. Dans l'invite idasql> d'IDA, tapez : ``` .http start
    root@kitploit:~
  2. Sorties IDA : ``` IDASQL HTTP server: http://127.0.0.1:8174
    root@kitploit:~
  3. Dans votre agent de codage : ``` /idasql:connect Let's work with this database: http://127.0.0.1:8174
    root@kitploit:~

Now IDASQL and your IDA UI are connected and working together.

Installation

Plugins d'agent de codage

Les compétences IDASQL donnent à votre agent de codage un contrôle total sur les bases de données IDA via le langage naturel.

  • Claude Code -- plugin complet avec 15 compétences thématiques, installé depuis la marketplace allthingsida/idasql-skills.
  • GitHub Copilot CLI -- prend également en charge les compétences IDASQL via le même plugin.
  • Codex (OpenAI) -- prend en charge les compétences via le même packaging de plugin. Voir le dépôt idasql-skills pour les étapes d'installation de Codex.

Prérequis

  1. IDA Pro installé avec son répertoire dans votre PATH (ida.exe sur Windows, ida sur macOS/Linux)
  2. idasql téléchargé depuis Releases et placé à côté du binaire IDA
  3. Vérifier la configuration : idasql --version doit fonctionner depuis la ligne de commande

Installation (Claude Code)

Dans Claude Code, exécutez :```text /plugin marketplace add allthingsida/idasql-skills

root@kitploit:~
puis installez le plugin `idasql` depuis ce marketplace. Consultez le [README d'idasql-skills](https://github.com/allthingsida/idasql-skills#installation) pour Codex et les autres chemins d'installation.

#### Compétences

| Compétence | Description |
|-------|-------------|
| `connect` | Se connecter aux bases IDA : CLI, serveur HTTP, amorçage de session, routage des compétences, contrats globaux. |
| `disassembly` | Interroger le désassemblage IDA : fonctions, segments, instructions, blocs, opérandes, graphes. |
| `data` | Interroger les chaînes, octets et données binaires IDA : recherche, reconstruction, motifs d'octets. |
| `xrefs` | Analyser les références croisées IDA : appelants, appelés, imports, références de données, recherche grep. |
| `decompiler` | Décompiler les fonctions IDA : pseudocode, arbre ctree, variables locales, étiquettes. |
| `annotations` | Modifier les bases IDA : commentaires, renommages, types, signets, rendu des énumérations/structures. |
| `types` | Système de types IDA : créer/modifier/appliquer des structures, unions, énumérations, typedefs, parse_decls. |
| `debugger` | Débogueur IDA : points d'arrêt, correction d'octets, conditions, inventaire des correctifs. |
| `storage` | Stockage persistant clé-valeur dans les bases IDA via netnode_kv. |
| `idapython` | Exécuter IDAPython via idasql : extraits, bac à sable, capture de sortie. |
| `functions` | Catalogue de référence complet des fonctions SQL d'idasql. |
| `analysis` | Analyser les binaires IDA : triage, audit de sécurité, détection crypto/réseau, requêtes multi-tables. |
| `resource` | Re-sourcer les binaires IDA : annotation récursive, récupération de structures, reconstruction de types. |
| `ui-context` | Capturer le contexte d'interface IDA en direct : écran, sélection, focus des widgets, ancres d'adresses. |

#### Exemples de requêtes

puis installez le plugin `idasql` depuis ce marketplace. Consultez le [README d'idasql-skills](https://github.com/allthingsida/idasql-skills#installation) pour Codex et les autres chemins d'installation.

#### Compétences

| Compétence | Description |
|-------|-------------|
| `connect` | Se connecter aux bases IDA : CLI, serveur HTTP, amorçage de session, routage des compétences, contrats globaux. |
| `disassembly` | Interroger le désassemblage IDA : fonctions, segments, instructions, blocs, opérandes, graphes. |
| `data` | Interroger les chaînes, octets et données binaires IDA : recherche, reconstruction, motifs d'octets. |
| `xrefs` | Analyser les références croisées IDA : appelants, appelés, imports, références de données, recherche grep. |
| `decompiler` | Décompiler les fonctions IDA : pseudocode, arbre ctree, variables locales, étiquettes. |
| `annotations` | Modifier les bases IDA : commentaires, renommages, types, signets, rendu des énumérations/structures. |
| `types` | Système de types IDA : créer/modifier/appliquer des structures, unions, énumérations, typedefs, parse_decls. |
| `debugger` | Débogueur IDA : points d'arrêt, correction d'octets, conditions, inventaire des correctifs. |
| `storage` | Stockage persistant clé-valeur dans les bases IDA via netnode_kv. |
| `idapython` | Exécuter IDAPython via idasql : extraits, bac à sable, capture de sortie. |
| `functions` | Catalogue de référence complet des fonctions SQL d'idasql. |
| `analysis` | Analyser les binaires IDA : triage, audit de sécurité, détection crypto/réseau, requêtes multi-tables. |
| `resource` | Re-sourcer les binaires IDA : annotation récursive, récupération de structures, reconstruction de types. |
| `ui-context` | Capturer le contexte d'interface IDA en direct : écran, sélection, focus des widgets, ancres d'adresses. |

#### Exemples de requêtes```
/idasql:analysis analyze this binary; tell me the most called functions.
/idasql:data find functions that reference "password" strings and rank by xrefs.
/idasql:xrefs show callers of CreateFileW and summarize error handling.
/idasql:data identify suspicious hardcoded URLs and the functions that reference them.

Les skills /idasql pilotent l'analyse depuis votre CLI de codage -- aucun script IDAPython requis.

Aide CLI``` $ idasql Error: Database path required (-s)

idasql v0.0.18 - SQL interface to IDA databases

Usage: idasql -s [-q ] [-f ] [-i] [--export ]

Options: -s IDA database (.idb/.i64) OR raw binary (.exe/.dll/firmware/etc.) — raw binaries trigger fresh idalib analysis and string-list rebuild — legacy 32-bit .idb files upgrade to .i64 and require an explicit reopen --token Auth token for HTTP/MCP server mode (if server requires it) -q Execute SQL query or semicolon-separated script -f Execute SQL from file -i Interactive REPL mode -w, --write Save database on exit (persist changes) --export Export tables to SQL file (local mode only) --export-tables=X Tables to export: * (all, default) or table1,table2,... --http [port] Start HTTP REST server (default: 8080, local mode only) --bind Bind address for HTTP/MCP server (default: 127.0.0.1) --mcp [port] Start MCP server (default: random port, use in -i mode) Or use .mcp start in interactive mode -h, --help Show this help --version Show version

Examples: idasql -s test.i64 -q "SELECT name, size FROM funcs LIMIT 10" idasql -s test.i64 -q "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;" idasql -s test.i64 -f queries.sql idasql -s test.i64 -i idasql -s test.i64 --export dump.sql idasql -s test.i64 --http 8080 idasql -s sample.exe --http # raw PE: idalib auto-analyzes, then serves SQL (default port 8080) idasql -s firmware.bin -q "SELECT * FROM binary" idasql -s test.i64 --mcp 9000

Thank you for using IDA. Have a nice day!

root@kitploit:~
Les anciennes entrées `.idb` 32 bits sont mises à niveau par idalib vers un `.i64` voisin. Lorsque cela
se produit, idasql se termine avant de servir le SQL, renvoie le code de sortie `3`, et imprime un
objet JSON sur stdout avec `status:"upgraded"` et `reopen_with`. Répétez la même
opération avec `-s <reopen_with>`.

</details>

### Compilation depuis les sources

#### Prérequis

- CMake 3.20+
- compilateur C++20
- IDA SDK 9.0+ (définissez la variable d'environnement `IDASDK`)```bash
cmake -S . -B build -DIDASQL_WITH_MCP=ON -DIDASQL_BUILD_EXAMPLES=OFF
cmake --build build --config Release

Options CMake utiles :

Télécharger l’outil
ModeComment démarrerIdéal pour
CLI autonomeidasql -s binary.i64 -iSQL direct, scripts, pipelines
Plugin IDASélectionnez idasql dans le menu déroulant CLI d'IDASQL dans l'interface graphique, base de données en direct
Workflow de compétence/idasql:connect dans votre CLI de codageAnalyse pilotée par l'IA -- l'agent émet des requêtes SQL de manière autonome
You / Agent --> Natural language or SQL
OptionDéfautDescription
IDASQL_WITH_MCPONConstruit la prise en charge du serveur MCP via fastmcpp. Désactivez pour une compilation plus légère/hors ligne ou lorsque vous n'avez pas besoin de --mcp / .mcp.
IDASQL_BUILD_CLIONConstruit l'outil en ligne de commande autonome idasql.
IDASQL_BUILD_PLUGINONConstruit le plugin IDA.
IDASQL_BUILD_EXAMPLESONConstruit les programmes d'exemple situés dans examples/.

Notes :

  • La prise en charge d'Hex-Rays est toujours compilée et détectée au moment de l'exécution. Si Hex-Rays n'est pas disponible, les tables/fonctions adossées au décompilateur ne sont simplement pas enregistrées.
  • La prise en charge REST HTTP est toujours compilée ; utilisez --http depuis l'interface CLI ou .http start depuis la CLI du REPL/plugin.
  • L'exécution SQL IDAPython est compilée mais désactivée par défaut au moment de l'exécution. Activez-la par session avec PRAGMA idasql.enable_idapython = 1;.
  • IDASQL_WITH_MCP=ON récupère fastmcpp ; OFF supprime la prise en charge de MCP et les commandes --mcp / .mcp.
  • XSQL_WITH_THINCLIENT est forcé à ON, et HTTPLIB_USE_OPENSSL_IF_AVAILABLE est forcé à OFF car IDASQL utilise du HTTP simple local.

Tables disponibles

30+ tables virtuelles couvrant les fonctions, chaînes, types, références croisées, désassemblage, décompilation, et plus encore.

Base

TableDescription
funcsFonctions - nom, addr, taille, adresse de fin, flags (INSERT/UPDATE/DELETE)
segmentsSegments - nom, adresse de début/fin, permissions, classe (INSERT/UPDATE/DELETE)
namesEmplacements nommés - addr, nom, flags (INSERT/UPDATE/DELETE)
entriesPoints d'entrée - callbacks export/programme/tls (ordinal, addr, nom)
importsImports - module, nom, addr, ordinal
xrefsRéférences croisées - adresse de départ/d'arrivée, type, is_code
blocksBlocs de base - adresse de début/fin, func_addr, taille
fchunksChunks de fonction - chunks split/tail avec propriétaire
instructionsDésassemblage - addr, mnémonique, opérandes, itype, func_addr (UPDATE operand format_spec / DELETE)
instruction_operandsOpérandes d'instruction normalisés - opnum, texte, type, valeur ; optimisés par addr et func_addr
headsTous les éléments head (code + données) - recherche d'adresse/navigation par plage optimisées

Chaînes et octets

TableDescription
stringsChaînes - addr, contenu, longueur, type
bytesOctets bruts - value/word/dword/qword modifiables (UPDATE patch, DELETE rétablit), original_value, is_patched (énumération rapide des patchs via WHERE is_patched = 1)

Décompilateur

TableDescription
pseudocodePseudo-code décompilé via Hex-Rays
ctreeNœuds de l'AST ctree d'Hex-Rays
ctree_lvarsVariables locales issues de la décompilation Hex-Rays
ctree_call_argsDétails des arguments d'appel Hex-Rays par site d'appel
ctree_labelsÉtiquettes ctree Hex-Rays (cibles de goto)

Types

TableDescription
typesBibliothèque de types - structures, unions, énumérations avec membres (INSERT/UPDATE/DELETE)
types_membersDétails des membres de structure/union (INSERT/UPDATE/DELETE)
types_enum_valuesValeurs des membres d'énumération (INSERT/UPDATE/DELETE)
types_func_argsDétails des arguments de types de fonction
local_typesEntrées de la bibliothèque de types locale

Annotations

TableDescription
commentsCommentaires - addr, commentaires normaux et répétables (INSERT/UPDATE/DELETE)
bookmarksSignets - emplacement, addr, description (INSERT/UPDATE/DELETE)
breakpointsPoints d'arrêt - addr, type, activé, condition (CRUD complet)
hidden_rangesPlages réduites/masquées - début/fin, description, en-tête, pied de page

Recherche

TableDescription
grepTable unifiée de recherche d'entités (pattern, name, kind, addr, ordinal, parent_name, full_name)

Informations sur la base de données

TableDescription
binaryRésumé/vue d'ensemble de la base - processeur, bitness, plage d'adresses, compteurs
db_infoPaires clé-valeur de métadonnées de la base de données
ida_infoPaires clé-valeur des informations d'analyse IDA
problemsProblèmes/avertissements de l'analyse IDA
signaturesÉtat des signatures FLIRT
fixupsEntrées de fixup/relocalisation
mappingsMappages d'espaces d'adressage

Stockage

TableDescription
netnode_kvStockage persistant clé-valeur (netnode)

Analyse

TableDescription
disasm_callsGraphe d'appels - paires appelant/appelé par fonction
disasm_loopsDétection de boucles - blocs d'en-tête et arêtes de retour

Fonctions SQL

FonctionDescription
decompile(addr)Décompile la fonction à l'adresse (renvoie le pseudo-code)
disasm_at(addr)Listing de désassemblage canonique à l'adresse
get_ui_context_json()JSON du contexte UI — actif dans le plugin GUI ; un stub "non applicable" sous CLI/idalib

Recherche unifiée d'entités

Utilisez la table grep pour des recherches SQL composables sur les fonctions nommées, les étiquettes, les segments, les types et les membres.```sql -- Search anything starting with "Create" SELECT name, kind, printf('0x%X', addr) as addr FROM grep WHERE pattern = 'Create%' LIMIT 20;

-- Search anywhere in name (plain text performs a contains search) SELECT name, kind, full_name FROM grep WHERE pattern = 'File' AND kind IN ('function', 'import') LIMIT 20;

-- Find struct members SELECT name, parent_name, full_name FROM grep WHERE pattern = 'dw%' AND kind = 'member';

-- Pagination SELECT name, kind, full_name FROM grep WHERE pattern = 'Create%' ORDER BY kind, name LIMIT 20 OFFSET 20;

root@kitploit:~
## Intégration

### HTTP REST API

Serveur HTTP sans état pour une intégration simple. Aucune surcharge de protocole.```bash
idasql -s database.i64 --http 8080

The input chunk is empty — no source text was provided to translate. Please resend chunk 33 with the actual Markdown content.```bash curl http://localhost:8080/status curl -X POST http://localhost:8080/query -d "SELECT name FROM funcs LIMIT 5" curl -X POST http://localhost:8080/query -d "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;"

root@kitploit:~
Toutes les réponses `/query` utilisent l'enveloppe de script canonique — une seule instruction = tableau d'une entrée :```
{
  "success": true,
  "statement_count": <N>,
  "results": [
    { "statement_index": 0, "success": true, "columns": [...], "rows": [...], "row_count": <N>, "elapsed_ms": <ms>, "error": null },
    ...
  ],
  "row_count_total": <N>,
  "elapsed_ms_total": <ms>,
  "first_error_index": null
}

Fail-fast est le comportement par défaut; passez continue_on_error=true (par ex. ?continue_on_error=1) pour exécuter chaque instruction indépendamment des échecs antérieurs. Chaque results[i].error est canonique pour les échecs par instruction; first_error_index pointe vers le premier échec ou est null. En cas d'échec du séparateur (par ex. une citation non terminée), la réponse est success:false, statement_count:0, results:[], plus un parse_error de premier niveau.

Pour plusieurs bases de données, exécutez des instances séparées :```bash idasql -s malware.i64 --http 8080 idasql -s kernel.i64 --http 8082

root@kitploit:~
Points de terminaison : `/status`, `/help`, `/query`, `/shutdown`

#### Serveur HTTP depuis le REPL

Démarrez un serveur HTTP de manière interactive depuis le REPL ou la CLI du plugin IDA :```
idasql -s database.i64 -i
idasql> .http start
HTTP server started on port 8142
URL: http://127.0.0.1:8142
...
Press Ctrl+C to stop and return to REPL.

Dans le plugin IDA (non bloquant):``` idasql> .http start HTTP server started on port 8142 idasql> .http stop HTTP server stopped

root@kitploit:~
Le serveur utilise un port aléatoire (8100-8199) pour éviter les conflits avec `--http`.

### Démarrage automatique (Épinglage)

`.pin` persiste une préférence de serveur dans l'IDB (netnode `$ idasql config`) afin que le **plugin IDA démarre automatiquement** un serveur HTTP ou MCP chaque fois que cette base de données est ouverte — pratique pour les configurations multi-instances où chaque base de données conserve un port stable et connu.```
idasql> .pin set http 8080        # pin HTTP at 127.0.0.1:8080 (autostart on)
idasql> .pin set mcp 0.0.0.0 9500 # bind override + port (port optional; omit or 0 = fresh random port each launch)
idasql> .pin list                 # show pinned config
idasql> .pin off http             # disable autostart but keep host/port
idasql> .pin clear all            # remove all pins

Après l'épinglage, la réouverture de la base de données démarre automatiquement le serveur — vous verrez cela dans la fenêtre de sortie d'IDA au chargement :``` IDASQL v0.0.18: Query engine initialized IDASQL CLI: Installed IDASQL: autostart -> IDASQL HTTP server: http://127.0.0.1:8099 Type '.http stop' to stop the server.

root@kitploit:~
`.pin` (ou `.pin list`) affiche la configuration actuelle pour les deux services:```
idasql> .pin
Autostart pins:
  http 127.0.0.1:8099  (autostart: on)
  mcp  (not set)
  • Le démarrage automatique au chargement ne se produit que dans le plugin IDA. La commande .pin elle-même fonctionne à la fois dans le CLI et le plugin (le CLI se contente de lire/écrire le pin).
  • .http start / .mcp start sans port explicite réutilisent l'hôte/port épinglé.
  • Depuis le CLI, les modifications .pin ne persistent que lorsqu'il est démarré avec -w/--write (comme toute autre modification IDB).

Serveur MCP

Pour les clients compatibles MCP (Model Context Protocol, un standard pour l'intégration d'outils d'IA) :

--mcp et .mcp sont disponibles lors de la compilation avec -DIDASQL_WITH_MCP=ON, qui est la valeur par défaut. Compilez avec -DIDASQL_WITH_MCP=OFF pour omettre le support MCP.```bash

Standalone mode

idasql -s database.i64 --mcp idasql -s database.i64 --mcp 9500 # specific port

Or in interactive mode

idasql -s database.i64 -i .mcp start

root@kitploit:~
Configurez votre client MCP :```json
{
  "mcpServers": {
    "idasql": { "url": "http://127.0.0.1:<port>/sse" }
  }
}

Outils : idasql_query (requête SQL directe ou script séparé par des points-virgules)

La famille xsql

IDASQL fait partie d'une famille d'outils qui exposent différentes plateformes d'analyse binaire et d'informations de débogage à travers la même interface SQL, tous construits sur le framework de tables virtuelles partagé libxsql. Une requête que vous apprenez sur un outil se transpose en grande partie aux autres — par ex. la même SELECT name, size FROM funcs ORDER BY size DESC LIMIT 10 s'exécute partout.

Plateformes de rétro-ingénierie

  • bnsql — Bases de données Binary Ninja en SQL.
  • ghidrasql — Bases de données Ghidra en SQL.

Informations de débogage et données du compilateur

  • pdbsql — Fichiers de symboles PDB Windows en SQL.
  • dwarfsql — Informations de débogage DWARF en SQL.
  • clangsql — AST Clang en SQL.

Noyau

  • libxsql — le framework C++ de tables virtuelles SQLite sur lequel chaque outil ci-dessus est construit.

Construit avec

  • libxsql - Bibliothèque C++17 header-only pour exposer des structures de données C++ comme tables virtuelles SQLite. Fournit l'API de construction fluide pour définir des tables, le pushdown de contraintes, et le support de client léger HTTP.

  • fastmcpp - Implémentation facultative de serveur MCP utilisée lors de la compilation avec -DIDASQL_WITH_MCP=ON.

Licence et conditions d'utilisation

En bref : vous pouvez lire, compiler, évaluer, benchmarker, empaqueter et utiliser idasql non modifié, y compris commercialement, si vous conservez les mentions et respectez les termes de la licence. Vous pouvez le forker ou le patcher pour préparer des corrections de bugs, des optimisations, des fonctionnalités, des tests ou des améliorations de documentation pour une contribution en retour, dans le cadre des règles de la licence relatives à l'objectif de contribution.

Vous ne pouvez pas maintenir un fork privé divergent, un port, un rebranding, un clone, un remplacement compatible API, une implémentation concurrente, ni utiliser idasql comme entrée d'IA pour recréer ou améliorer une implémentation dérivée sans l'autorisation écrite préalable d'Elias Bachaalany. Les implémentations indépendantes qui ne sont pas copiées, dérivées matériellement ou substantiellement informées par idasql au sens défini par la licence ne sont pas interdites.

Demandes d'autorisation : ouvrez une issue GitHub sur allthingsida/idasql/issues.

Si idasql informe matériellement un projet distribué, préservez l'origine humaine : créditez idasql et Elias Bachaalany visiblement dans votre README/docs et dans l'interface À propos/credits le cas échéant. La licence inclut une section exemples/FAQ pour les utilisations courantes autorisées et celles nécessitant une autorisation. Les dépendances tierces (libxsql, l'IDA SDK et leurs dépendances transitives) restent sous leurs propres licences.

Voir la Human-Origin Source License v1.0 complète.