
Vibe Reverse Engineer with IDA SQL : une interface pour IDA en SQL via des tables virtuelles en direct
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.
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.
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.
| Mode | Comment démarrer | Idéal pour |
|---|---|---|
| CLI autonome | idasql -s binary.i64 -i | SQL direct, scripts, pipelines |
| Plugin IDA | Sélectionnez idasql dans le menu déroulant CLI d'IDA | SQL dans l'interface graphique, base de données en direct |
| Workflow de compétence | /idasql:connect dans votre CLI de codage | Analyse pilotée par l'IA -- l'agent émet des requêtes SQL de manière autonome |
| You / Agent --> Natural language or SQL |
|
/idasql skills (LLM translates intent to SQL)
|
IDASQL --> IDA database(s)
|
Results --> LLM summarizes & reasons
> **🔧 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
En coulisses, c'est une collection de scripts simples :
workflow.sh → scripts (trigger, enrich, build, stage-1/2/3, test, release, deploy, close)
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)
*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.
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.
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.
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.
Tout ce qui précède fonctionne également depuis l'interface graphique d'IDA. Pour faire appel à votre agent avec une session IDA ouverte :
idasql> d'IDA, tapez : ```
.http start
Now IDASQL and your IDA UI are connected and working together.