Vue lecture

Ghidra MCP - Quand l'IA fait le reverse engineering à votre place

Ghidra, le framework de reverse engineering open source de la NSA, est un outil que tous les analystes sécu utilisent au quotidien pour démonter des binaires. Sauf que voilà... quand vous passez des heures à renommer des fonctions, documenter des structures et tracer des cross-references à la main, ça finit par devenir un poil répétitif.

Du coup, un développeur a eu l'idée de coller un serveur MCP (Model Context Protocol) directement sur Ghidra. "Encore un wrapper IA bidon ??"... mais non les amis car Ghidra MCP Server est un bridge Python + plugin Java qui expose pas moins de 110 outils d'analyse via le protocole MCP. Rien que ça.

Concrètement, ça veut dire que vous pouvez brancher Claude, ou n'importe quel outil compatible MCP, directement sur votre session Ghidra et lui demander de décompiler des fonctions, tracer des call graphs, renommer des variables en batch ou même créer des structures de données automatiquement.

Au niveau architecture, un plugin Java tourne dans Ghidra et expose une API REST sur localhost:8089, puis un bridge Python fait la traduction entre le protocole MCP et ces endpoints HTTP. Vous lancez Ghidra, vous activez le serveur via Tools > GhidraMCP > Start MCP Server, et hop, votre IA peut causer directement avec le décompileur.

Et c'est pas juste de la décompilation basique. Y'a de l'analyse de structures, de l'extraction de strings, du mapping mémoire complet, de la gestion de scripts Ghidra (plus de 70 scripts d'automatisation livrés avec le projet !) et même un système de documentation cross-binaire.

En gros, vous analysez un malware, vous documentez toutes les fonctions, et si vous tombez sur une variante plus tard, l'outil transfère automatiquement votre doc via un système de hash SHA-256 sur les opcodes. Plutôt chouette ! En revanche, ça marche pas si le code est fortement obfusqué... logique.

Bon, pour ceux qui connaissent déjà OGhidra (qui fait tourner des LLM en local dans Ghidra), Ghidra MCP Server c'est l'approche inverse. Au lieu d'embarquer l'IA dans Ghidra, c'est Ghidra qui s'ouvre à l'IA via un protocole standardisé. Du coup vous n'êtes pas limité à un seul modèle... Claude, GPT, Gemini, n'importe quel client MCP fait l'affaire.

Côté prérequis, faut Java 21, Maven 3.9+, Python 3.10+ et évidemment Ghidra 12.0.2. L'install se fait en quelques étapes : cloner le repo, pip install, copier les libs Ghidra dans lib/, compiler avec Maven et déployer le zip dans les extensions. Rien de bien sorcier si vous êtes déjà dans l'écosystème... sauf si vous êtes sous Windows, là faudra peut-être un peu galérer avec Maven.

Les opérations batch sont par exemple très intéressantes... Avec cette fonctionnalité, vous pouvez renommer 50 variables d'un coup, poser des commentaires sur toutes les fonctions d'un module, typer des paramètres en série.

Bref, si vous faites de l'analyse de binaires et que vous voulez arrêter de tout vous taper à la main, c'est le genre de combo reverse engineering + IA qui va vous faire gagner pas mal de temps !

  •  

apk.sh - Le couteau suisse qui simplifie le reverse engineering Android

L'autre jour, je m'amusais à regarder ce qu'une petite application Android que j'avais installée envoyait comme infos à ses serveurs , et j'ai encore galéré avec une tripotée d'outils différents. Entre ADB pour récupérer le fichier, Apktool pour le désassembler, Jadx pour lire le code et les scripts de signature à rallonge, y'a de quoi se taper la tête contre les murs. On est en 2026, et le reverse engineering Android ressemble encore parfois à de la spéléologie sans lumière dans une grotte remplie de goudron.

Puis c'est là que je suis tombé sur apk.sh, et ça m'a sauvé ma soirée. C'est un script Bash tout simple, mais qui joue le petit chef d'orchestre pour automatiser toutes les tâches les plus chiantes : le pull, le décodage, la reconstruction, le patching et le renommage d'APK. Ça vous mâche le travail sur toute la partie technique pour que vous n'ayez plus qu'à faire un petit adb install à la fin... et voilà ! (Sans les "Trenti anni di qualità", évidemment ^^)

Le truc cool, c'est qu'il ne se contente pas de faire du "pull" et du "decode". Il gère également nativement l'injection de gadgets Frida pour faire de l'instrumentation dynamique, et ça, c'est vraiment le pied pour ceux qui veulent voir ce qui se passe en mémoire sans s'arracher les cheveux. Il peut même patcher automatiquement la configuration de sécurité réseau pour vous permettre d'intercepter le trafic HTTPS plus facilement. Par contre attention, si l'appli utilise du certificate pinning bien costaud, ça servira à QUE DALLE.

Si vous avez déjà essayé de décompiler un APK et de le recompiler , vous savez que la moindre erreur de signature ou d'alignement et c'est le drame. Ici, l'outil s'occupe de tout avec apksigner et zipalign de manière transparente. Et pour les plus barbus d'entre vous, il permet même de modifier directement le bytecode DEX via les fichiers smali pour éviter les bugs de décompilation Java qui font parfois pleurer un admin sys.

Pas besoin d'être root pour la plupart des fonctions, et il gère même les fameux bundles (AAB) que Google Play impose désormais et qui se transforment en "split APKs" une fois sur votre téléphone. En gros, vous faites un pull pour récupérer et fusionner tout ça en un seul APK, puis un decode pour obtenir un dossier tout prêt à être exploré.

C'est typiquement le genre d'outil que j'aurais aimé avoir à l'époque où je vous parlais d'Androguard pour analyser des malwares Android . On gagne un temps de fou malade et on peut se concentrer sur ce qui nous intéresse vraiment dans la vie, c'est à dire le fromage à raclette et la sieste comprendre comment ces applis nous pompent nos données ou juste changer la couleur d'un bouton pour le plaisir (ou des trucs qui vous enverront en zonzon ^^).

Bref, si vous aimez mettre les mains dans le cambouis Android, allez jeter un œil à ce projet pour vos prochaines sessions de reverse.

A découvrir ici

  •  

Top Gun NES - Le mystère de l'atterrissage sur porte-avions enfin résolu

Vous vous souvenez de Top Gun sur NES ? Ce jeu culte des années 80 où vous incarniez Maverick dans des combats aériens endiablés ? Hé bien si vous y avez joué, vous avez forcément vécu LE traumatisme du jeu : l'atterrissage sur le porte-avions.

Je ne sais pas combien de manettes ont été explosées à cause de cette séquence de torture, mais ça doit se compter en millions. Vous avez beau suivre les instructions à l'écran "Alt. 200 / Speed 288", faire exactement ce qu'on vous dit, et PAF... crash. Retour à la case départ.

Toutefois, c'était sans compter sur ce développeur qui a eu la bonne idée de faire du reverse engineering sur le code assembleur du jeu pour comprendre ce qui se passait vraiment derrière cette mécanique diabolique.

Et en fouillant dans les entrailles du code NES, il a découvert que pour réussir l'atterrissage, il fallait respecter 3 critères simultanément. D'après l'analyse du code, l'altitude doit être entre 100 et 299 (une plage plutôt large, ouf), la vitesse entre 238 et 337 (déjà plus serré), et surtout l'alignement latéral avec le porte-avions qui est lui ultra strict. Et c'est là que ça devient chaud, parce que ce dernier paramètre, on ne le voit pas à l'écran. Vous pouvez avoir l'altitude parfaite et la vitesse au poil, si vous êtes décalé de quelques pixels à gauche ou à droite, c'est muerto pépito.

La direction est stockée en mémoire comme un entier signé allant de -32 à +32, puis convertie en une plage de 0 à 7. Autant dire que la marge d'erreur est ridicule...

Le plus intéressant dans son reverse, c'est de voir comment le code vérifie tout ça. La fonction "landing_skill_check" fait des vérifications séquentielles super basiques avec des codes d'erreur du genre : Altitude hors limites ? Code d'erreur 2. Vitesse hors limites ? Code 4. Direction hors limites ? Code 8.

Et ces codes d'erreur déterminent même l'animation de crash que vous allez voir. Du coup, si vous crashez souvent de la même façon, c'est probablement toujours le même paramètre qui foire.

Les valeurs sont stockées en BCD (Binary Coded Decimal) pour faciliter l'affichage à l'écran, et on peut les trouver aux adresses $40-$41 pour la vitesse, $3D-$3E pour l'altitude, et $FD pour la direction. Le résultat de la vérification se retrouve à l'adresse $9E. Voilà, maintenant vous savez où regarder si vous voulez tricher avec un émulateur .

D'ailleurs, en parlant de triche, l'auteur de cette analyse a même créé un code Game Genie spécifique pour contourner toute cette galère : AEPETA. Tapez ça et vous atterrirez à tous les coups, peu importe à quel point vous pilotez comme un manche.

Bref, voilà un mystère de 35 ans enfin résolu grâce au reverse engineering. Et si vous voulez vous replonger dans cette torture en connaissance de cause, vous savez maintenant que c'est probablement l'alignement qui vous a eu, pas votre skill.

Source

  •  

En finir avec l'enshittification en légalisant le reverse-engineering

Bon, je vais être direct : le reverse-engineering devrait être légal, point barre. Et tant mieux si quelqu'un d'aussi influent que Cory Doctorow le gueule dans le Guardian !

Pour ceux qui débarquent, le reverse-engineering c'est le fait de désosser un logiciel ou un appareil pour comprendre comment il fonctionne. Pas pour le pirater, hein, mais pour réparer, améliorer ou simplement vérifier qu'on ne se fait pas arnaquer. Et c'est là que ça devient un peu compliqué, parce que dans plein de pays, c'est illégal.

Doctorow rattache ça au phénomène d'"enshittification" (oui, le terme est volontairement moche... On pourrait traduire ça par "l'emmerdification"). C'est ce phénomène bien pénible où les entreprises dégradent progressivement leurs produits pour vous forcer à payer plus ou à racheter du neuf. Votre imprimante qui refuse les cartouches compatibles ? Enshittification. Votre tracteur John Deere qui vous interdit de le réparer vous-même ? Enshittification. Les onduleurs solaires chinois avec des kill switches à distance ? Enshittification + un peu de parano ^^.

Le truc, c'est que les lois anti-contournement comme le DMCA américain protègent ces pratiques. Du coup, même si vous avez acheté un machin, vous n'avez pas vraiment le droit de regarder sous le capot.

Mais bonne nouvelle pour nous autres Européens, l'article 6 de la directive européenne sur les logiciels autorise la décompilation pour assurer l'interopérabilité. Si ça c'est pas une nouvelle preuve que l'Europe est supérieure aux Etats-Unis, j'sais pas ce que c'est ^^.

En France par exemple, l'article L. 122-6-1 du Code de la propriété intellectuelle va même plus loin puisqu'il est impossible pour un éditeur d'interdire contractuellement ce droit. Autrement dit, même si c'est écrit dans les CGU, c'est nul et non avenu.

Par contre, le Royaume-Uni post-Brexit, c'est une autre histoire mais Doctorow y voit plutôt une opportunité. En effet, comme le Royaume-Uni est libéré des contraintes de l'harmonisation européenne, le pays pourrait assouplir ses lois plus rapidement que l'UE et devenir un hub du reverse-engineering légal. À condition évidemment de ne pas céder aux lobbys tech américains qui poussent dans l'autre sens.

Alors certains d'entre vous pourraient se demander : Ça sert à quoi de pouvoir reverse-engineerer ses appareils ?

Hé bien, ça sert par exemple à découvrir que votre thermostat "intelligent" envoie vos données à des serveurs douteux. Ou à réparer votre tracteur sans attendre 3 semaines un technicien agréé qui vous fera payer une fortune un truc dérisoire. Ou encore à vérifier que l'onduleur solaire sur votre toit n'a pas une backdoor exploitable par n'importe qui. De plus, des outils comme ReverserAI rendent ce genre d'analyse de plus en plus accessible, même sans être un expert en assembleur. Et ça c'est cool !

Le combat de Doctorow, c'est donc de faire sauter ces verrous juridiques qui protègent l'obsolescence programmée au détriment des consommateurs. Et franchement, quand on voit l'état du marché tech actuel, c'est pas du luxe, je trouve.

Bref, si vous voulez comprendre pourquoi votre grille-pain connecté vous espionne, au moins en Europe, vous avez théoriquement le droit de le découvrir. C'est déjà ça. Force à nos amis anglais et américains qui sont encore plus maltraités par les sociétés qui verrouillent leurs appareils, que nous.

  •  
❌