
Vibe Reverse Engineer avec IDA Pro : une interface pour IDA en SQL via des tables virtuelles en direct. Ne vous laissez pas tromper par les apparences ! :)
Donnez à n'importe quel agent 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. Elle expose plus de 30 tables virtuelles couvrant les fonctions, les références croisées, les chaînes de caractères, les types, les imports, le désassemblage et la décompilation. Utilisez les compétences /idasql depuis 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 d'IDA et collaborez avec votre agent de codage pour faire de l'ingénierie inverse ensemble. Pas d'IDAPython. Pas de scripting. Juste du SQL.
Pourquoi SQL ? SQL est le langage de requête universel que tout agent IA parle déjà. IDASQL est agnostique vis-à-vis des agents : Claude, ChatGPT, Copilot, Cursor, des 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, la référence croisée et le transfert d'annotations entre une ou plusieurs bases de données en même temps. 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 de caractères, les références croisées, les types, et plus encore. IDASQL mappe ces structures internes vers des tables virtuelles SQL en direct. Il n'y a pas d'étape séparée d'exportation ou d'indexage -- 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, scripting, 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 |
| Flux de travail par compétences | /idasql:connect dans votre CLI de codage | Analyse pilotée par 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
$ 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. Résultats instantanés. Aucun script requis.
Après avoir installé le CLI et le plugin IDASQL, lancez votre agent de codage préféré et commencez l'ingénierie inverse par invite. IDASQL s'exécute entièrement en mode headless -- votre agent orchestre IDA Pro : démarrage, analyse, décompilation, annotation, sauvegarde -- ou hébergé dans l'interface graphique d'IDA où vous collaborez avec votre agent en temps réel.
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, la rétro-ingénierie complètement et l'annote.
Lorsque vous avez terminé, demandez à l'agent d'enregistrer et de s'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. Demandez à 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.
Puis poursuivez :
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 effectuer des références croisées, comparer et transférer des annotations entre elles.
Tout ce qui précède fonctionne de la même manière depuis l'interface graphique d'IDA. Pour connecter votre agent à une session IDA ouverte :
Dans l'invite idasql> d'IDA, tapez :
.http start
Sorties IDA :
IDASQL HTTP server: http://127.0.0.1:8174
Dans votre agent de codage :
/idasql:connect Let's work with this database: http://127.0.0.1:8174
Maintenant IDASQL et votre interface IDA sont connectés et fonctionnent ensemble.
Avec IDA 9.4, les réponses peuvent pointer directement dans IDA. La table deep_links transforme n'importe quelle
fonction, adresse, chaîne ou type en un lien ida:// au format Copy Link d'IDA,
plus un paramètre supplémentaire, idb_path, le chemin complet de la base de données. IDA l'ignore ; le
gestionnaire de clic d'idasql l'utilise pour démarrer IDA sur la bonne base de données. Les liens de fonction ouvrent le
décompilateur (le désassemblage sans celui-ci), les autres liens ouvrent le désassemblage :