Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

bbDump - L'alternative moderne à pgAdmin, sauce MCP

pgAdmin, l'outil "officiel" pour administrer vos bases PostgreSQL, c'est le type d'interface qu'on n'a pas vraiment envie d'ouvrir un lundi matin ! C'est lent, c'est cheum de ouf en mode figé dans les années 2000 et ça rame sérieusement dès qu'on tente un export un peu costaud. Alors oui je sais, DBeaver, c'est plus joli, mais faut se coltiner Java et un workspace qui traîne au démarrage.

Du coup quand bbDump est passé sur mon radar, j'ai eu envie de creuser un peu. C'est un gestionnaire PostgreSQL moderne, en Electron + Vue + TypeScript, signé par Poups, un dev indé français. L'outil reprend tout ce que vous faites habituellement en CLI (pg_dump, pg_restore, coups d'œil aux tables, schéma de la DB) et met ça dans une interface vraiment propre.

Le dashboard bbDump, tout de suite plus respirable que pgAdmin

Côté fonctionnalités classiques, vous avez ce qu'on attend d'un client PostgreSQL correct. Gestion multi-bases organisée par projet, backups avec liste, restauration, filtre par base, tailles et dates. De leur côté, les tâches planifiées via expressions cron sont configurables par base, et il y a même une visionneuse de logs en temps réel qui trace chaque opération pg_dump.

Ajoutez à ça un navigateur de tables avec édition inline (avec support complet des types), un constructeur de requêtes SQL visuel en plus de l'éditeur brut, l'export CSV, et un diagramme entité-relation interactif via Vue Flow pour visualiser les tables et les clés étrangères. Grâce à bbDump, plus besoin d'aller chercher un outil externe pour comprendre une base héritée d'un projet qui traîne !!

Le schema visualizer en mode ERD interactif, pratique pour décortiquer une base héritée

Mais le vrai twist, c'est l'intégration du MCP (Model Context Protocol) puisque bbDump expose 31 outils MCP aux agents IA, ce qui veut dire que votre Claude d'amour ou votre LLM peut interroger la DB, regarder un schéma, tester une requête. Et comme les mutations passent par un système de confirmation, pas de DROP TABLE à l'insu de votre plein gré !

Je vous avais déjà parlé de cette approche avec Ghidra MCP côté reverse engineering et BrowserWing côté automatisation navigateur. bbDump rejoint donc la famille côté backend de données.

Autre détail sympa, le dev a pensé à la sécurité puisque les backups sont chiffrés en AES-256-GCM, donc si vous synchronisez vos dumps sur un cloud random, pas de panique sur les données sensibles. Sur macOS, y'a même une mini-app menu bar pour accéder aux bases et aux connexions proxy sans ouvrir l'app complète.

Côté installation, c'est facile :

curl -fsSL https://poups.dev/bbdump.sh | bash

sur macOS et Linux (qui reste en beta). Bien sûr, si balancer un script dans bash direct vous fait tiquer (normal), vous pouvez aussi chopper le DMG ou l'AppImage en release sur GitHub et inspecter avant. Le code est sous licence MIT, avec une doc dédiée et une page Ko-fi si vous voulez soutenir le projet. Par contre, rien pour Windows pour l'instant.

Le projet est encore tout jeune puisque sorti fin mars de cette année donc si vous cherchez un outil ultra-stable pour une prod critique, attendez un peu. Mais pour vos projets perso, votre dev local, ou juste pour arrêter de râler sur pgAdmin, ça vaut clairement le coup d'œil.

Bref, un dev français de talent qui se lance en indé sur un créneau pourri d'outils vieillots, avec une vision cohérente et une intégration MCP propre, moi j'aime bien. Je pense que Poups mérite d'être soutenu sur ce coup-là, d'où mon article !

Un Pokémon piégé depuis 15 ans dans un Pokéwalker, et l’issue est terrible pour la pauvre bête

Un passionné a tenté de récupérer son Pokémon coincé dans un Pokéwalker, ce petit podomètre vendu avec Pokémon HeartGold sur DS en 2009, après avoir perdu la cartouche de jeu.

Entre reverse engineering du protocole infrarouge et manipulation du générateur de nombres aléatoires, la tentative est bien technique. Et le résultat est plutôt cruel, pour une raison que personne n'avait anticipée…

Un Pokémon sans cartouche, un vrai problème

Le Pokéwalker, pour ceux qui ne s'en souviennent pas, c'était ce petit podomètre vendu avec Pokémon HeartGold et SoulSilver sur Nintendo DS en 2009. Le principe était simple : vous transfériez un Pokémon de votre partie vers cet accessoire, vous le glissiez dans votre poche, et chaque pas comptait pour gagner des points et débloquer des objets.

Le tout communiquait avec la cartouche DS par infrarouge. Sauf que voilà, si vous perdez la cartouche (ce qui arrive plus souvent qu'on ne le croit après 15 ans), votre Pokémon reste coincé dans le Pokéwalker. Pas de cartouche, pas de transfert retour. C'est exactement le problème auquel s'est retrouvé confronté Etchy, un créateur de contenu spécialisé dans Pokémon Gen 4.

Du reverse engineering à l'ancienne

Le travail de fond, c'est Dmitry qui l'avait fait il y a quelques années en décortiquant complètement le Pokéwalker. A l'intérieur : un microcontrôleur Renesas H8, une EEPROM de 64 Ko, un accéléromètre Bosch et un émetteur infrarouge générique. La communication entre la cartouche et le Pokéwalker passe par un protocole IR à 115 200 bauds, et chaque octet est simplement XOR avec 0xAA avant envoi.

Dmitry avait même réussi à exécuter du code arbitraire sur l'appareil en exploitant un débordement de buffer dans la décompression. Etchy s'est appuyé sur tout ce travail pour tenter sa mission de sauvetage. Son idée : créer une nouvelle sauvegarde avec les bons identifiants pour tromper le Pokéwalker.

Le dispositif ne vérifie que la version du jeu (HeartGold ou SoulSilver), la région et les identifiants du dresseur. En manipulant le générateur de nombres aléatoires du jeu, Etchy a réussi à générer une sauvegarde avec des IDs correspondants.

Le fantôme dans la machine

Et ça a marché. En partie. Le Pokéwalker a accepté la connexion et transféré les données du Pokémon. Sauf que le vrai identifiant unique du Pokémon, son PID, celui qui définit ses stats, sa nature, son apparence, n'existe que sur la cartouche d'origine.

Le Pokéwalker ne stocke qu'une version allégée des données : l'espèce, les attaques, l'objet tenu, le genre. Le PID, lui, restait sur la cartouche perdue. Du coup, le Pokémon récupéré n'est qu'une copie incomplète. Ca ressemble à votre Typhlosion, ça porte son nom, mais ce n'est pas vraiment lui. Comme le résume Etchy dans sa vidéo : il n'y a pas de moyen de sauver un Pokémon piégé dans un Pokéwalker.

C'est le genre d'histoire qui parle à tous ceux qui ont grandi avec une DS dans la poche. On a tous eu ce moment où un accessoire, une sauvegarde ou un périphérique finissait au fond d'un tiroir, avec des données qu'on pensait sans importance.

Etchy et Dmitry montrent qu'il y a une vraie communauté prête à passer des heures sur du reverse engineering pour trois octets de données. C'est beau et un peu absurde en même temps. Le plus cruel dans l'histoire, c'est que Nintendo n'avait visiblement pas prévu qu'on puisse perdre sa cartouche tout en gardant le Pokéwalker. Bref quinze ans plus tard, votre Typhlosion attend toujours dans son petit boîtier, et personne ne viendra le chercher.

Source : Hackaday

La Xbox One enfin hackée après 12 ans d'invincibilité

La Xbox One n'a jamais été hackée ! Eh oui, depuis 2013, la console de Microsoft narguait la communauté du reverse engineering pendant que les PlayStation, les Switch et autres 3DS tombaient les unes après les autres. Microsoft la décrivait même comme "le produit le plus sécurisé jamais créé" mdrrrr.

Bon bah c'est fini comme vous vous en doutez car à la conférence RE//verse 2026 à Orlando, Markus "doom" Gaasedelen a réussi à exécuter du code arbitraire sur le boot ROM de la console, autrement dit c'est un hack hardware impossible à corriger.

Du coup, comment on casse un truc réputé incassable ?

Eh bien toute la sécurité de la Xbox One repose sur un minuscule processeur ARM Cortex R4, le Platform Security Processor (PSP), planqué dans un coin du SoC AMD.

Ce PSP contient un boot ROM gravé directement dans le silicium... et c'est le seul composant que Microsoft ne peut pas mettre à jour. L'architecte de la sécu Xbox, Tony Chen, l'avait dit lui-même en 2019 : "le seul bug logiciel dont on ne peut pas se remettre, c'est un bug dans le boot ROM".

Le die shot du SoC Xbox One. Le PSP est planqué tout en bas à droite.

Sauf que Markus n'a pas cherché de bug logiciel, parce y'en a pas. Le code du boot ROM est linéaire, hyper audité, sans la moindre faille. Du coup, il est passé par le hardware avec du voltage glitching.

Le principe c'est de faire s'effondrer brièvement le rail d'alimentation du processeur (en gros, on colle un MOSFET sur le rail et on tire la tension vers le bas pendant 100 à 200 nanosecondes) pour corrompre l'exécution d'une instruction. Et Microsoft avait quand même blindé le truc en prenant soin de ne pas mettre de pin reset accessible, pas d'UART, pas de JTAG, pas de post codes de diagnostic (désactivés par des fusibles), et surtout 37 stalls randomisés qui décalent le timing du boot à chaque démarrage. En gros, c'est comme essayer de crocheter une serrure dans le noir, avec des moufles, et la serrure qui change de position toutes les 2 secondes.

D'ailleurs, c'était la première fois que Markus faisait du glitching de sa vie. Au début, il a galéré sur le mauvais rail d'alimentation (la tension 1.8V, finalement un cul-de-sac) avant de trouver le bon (le North Bridge core). Et là, en balançant ses impulsions de voltage au bon moment, il a réussi à activer les post codes que Microsoft avait désactivés par fusibles. Premier signe que la bête était vulnérable !!!!

Le setup de glitching : oscilloscope, carte mère Xbox One et fils partout.

Ensuite, il a ciblé les opérations memcopy du boot ROM, là où les données contrôlées par l'attaquant transitent dans les registres du processeur. Un glitch bien placé pendant un memcopy, et hop, le pointeur d'instruction du processeur part n'importe où. Résultat : 0x41414141 qui sort sur le bus I2C, la preuve qu'on contrôle l'exécution du boot ROM !

Bon par contre, il était enfermé dans un "user jail", une sandbox ARM avec seulement quelques Ko de code accessible. Et c'est pas si simple d'en sortir.

0x41414141 sur le bus I2C. ROP'd OUT MY POST CODE !

Et là, coup de génie du mec : un double glitch sur le même boot.

Le premier casse la boucle d'initialisation du MPU (la protection mémoire ARM, les 12 régions qui créent les jails), le second hijack le pointeur d'instruction pendant le memcopy.

Combiner les deux sur un seul démarrage, c'est du genre 1 chance sur 100 par glitch, soit environ 1 sur 10 000 pour le combo donc autant dire qu'il faut laisser tourner la machine des centaines de milliers de fois. Mais ça marche !! Avec le MPU désactivé et le pointeur d'instruction sous son contrôle, Markus obtient alors l'exécution de code en mode superviseur, avant même que le boot ROM n'ait vérifié les signatures ou déchiffré quoi que ce soit.

Bingo !! Et les conséquences sont radicales puisque grâce à ce hack, il peut maintenant déchiffrer tous les jeux, les firmwares et les mises à jour passés, présents et futurs.

Il peut aussi dé-pairer les NAND et lecteurs optiques pour la réparation. Et comme c'est gravé dans le silicium, c'est impatchable, comme le Reset Glitch Hack de la 360 à l'époque. Pour l'instant, ça concerne uniquement le modèle Xbox One Fat de 2013.

Ah et petit détail croustillant.... Microsoft avait prévu des moniteurs anti-glitch dans le SoC pour détecter les perturbations de voltage, mais sur les premières révisions ils n'arrivaient pas à les stabiliser, du coup ils les ont désactivés par fusibles. Pas de bol. Après sur les modèles suivants (One S, One X) ils sont activés, mais Markus pense que ses techniques pourraient quand même être adaptées.

Le boot flow du PSP. Le hijack se produit à l'étape 4, avant toute vérification crypto.

Le plus dingue c'est que le hack en version finale ne nécessite que 3 fils soudés sur la carte mère ! Tout le reste, les dizaines de sondes à crochet, l'oscilloscope 4 voies, l'analyseur logique branché sur le bus I2C et les GPIO, c'était juste pour comprendre ce qui se passait.

Et le fait qu'il ait construit un émulateur du boot ROM avec l'aide de l'IA pour étudier le comportement du processeur, je trouve ça encore plus incroyable !

Bref, je vous laisse avec la conf en intégralité pour les plus motivés :

Et voilà comment 12 ans de "IMPOSSIBLE À PIRATER" se termine avec 3 fils soudés et 2 glitches bien placés. Pas mal !

Bravo Markus !

Un moddeur fait tourner GTA 5 en ray tracing sur une PS5 sous Linux

Andy Nguyen, chercheur en sécurité informatique, a réussi à installer Linux sur une PlayStation 5 et à faire tourner GTA 5 Enhanced Edition en 1440p à 60 images par seconde, ray tracing activé. La console se transforme alors en une sorte de « Steam Machine ». Mais l'exploit ne fonctionne que sur les toutes premières PS5, celles qui n'ont jamais été mises à jour depuis leur achat.

GTA 5 Enhanced en 1440p à 60 FPS

Le résultat est assez bluffant. Andy Nguyen, connu sous le pseudo theflow0, a partagé une vidéo montrant GTA 5 Enhanced Edition qui tourne à 60 images par seconde en 1440p avec le ray tracing activé, le tout sur une PS5 standard, pas la Pro. Le processeur tourne à 3,2 GHz et le GPU à 2,0 GHz, des fréquences volontairement bridées parce que la console commence à surchauffer au-delà. En théorie, le CPU pourrait monter à 3,5 GHz et le GPU à 2,23 GHz, mais le système de refroidissement ne suit pas. La sortie vidéo 4K en HDMI fonctionne, le son aussi, et tous les ports USB sont opérationnels. Pour les pilotes graphiques, Nguyen a travaillé avec le projet open source Mesa pour ajouter le support du GPU de la PS5.

Post X (Twitter)
En cliquant sur "Charger le post", vous acceptez que X (Twitter) puisse déposer des cookies et collecter des données.

Un exploit réservé aux premières PS5

Pour faire tourner Linux sur la console, il faut passer par un exploit appelé Byepervisor, développé par la communauté PS5Dev. Ce hack contourne l'hyperviseur de Sony, la couche de sécurité qui empêche l'exécution de code non autorisé sur la console. Sauf que l'exploit ne marche que sur les firmwares 1.xx à 2.xx, les tout premiers sortis au lancement de la console fin 2020. Si vous avez connecté votre PS5 à Internet ne serait-ce qu'une fois, il y a de grandes chances que le firmware ait été mis à jour automatiquement. On parle donc clairement de consoles qui n'ont pas bougé de leur boîte depuis plus de cinq ans.

La PS5 transformée en Steam Machine

Nguyen a promis de publier les instructions « avant la sortie de GTA 6 ». Le projet transforme la PS5 en ce qu'il appelle une « Steam Machine », un clin d'œil aux consoles de Valve qui avaient tenté de combiner PC et salon en 2015. Et il y a un argument qui tient la route : avec le prix actuel de la RAM, une PS5 d'occasion toujours équipée de l'ancien firmware pourrait coûter moins cher qu'un PC à performances équivalentes pour jouer sous Linux. Mais bon, encore faut-il trouver une PS5 qui n'a jamais vu la couleur d'une mise à jour, et ce n'est pas exactement le genre de chose qu'on déniche facilement. Si vous en avez une qui traîne, il y a peut-être moyen de vous faire un peu de sous avec !

Quoi qu'il en soit, c'est du beau boulot. On est là sur de l'ingénierie de haut vol, même si on est hélas quand même loin de la bidouille grand public.

Source : XDA Developers

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 !

LibrePods - Le hack qui libère vos AirPods de la prison Apple

Vous avez des AirPods Pro que vous avez payés 300 balles et quand vous les branchez sur votre téléphone Android ou votre PC Linux, la moitié des fonctionnalités disparaissent. C'est pas parce que le matériel ne peut pas les faire mais juste parce qu'Apple a décidé que vous n'aviez pas le droit de les utiliser si vous n'êtes pas dans leur écosystème. Snif !

Et là, LibrePods débarque et règle ce problème. Ils s'agit d'un projet open source qui déverrouille toutes les fonctionnalités exclusives des AirPods sur les appareils non-Apple, et c'est compatible avec les AirPods Pro 2, AirPods Pro 3 (sauf le monitoring cardiaque), les AirPods 4, et même les AirPods Max en mode complet. Les autres modèles AirPods ont également un support basique (batterie et détection d'oreilles).

Mais alors qu'est-ce que vous récupérez avec LibrePods ?

Hé bien tout ce qu'Apple vous a vendu mais que vous ne pouviez pas utiliser ailleurs que sous iOS. Par exemple, le contrôle du bruit actif et la transparence adaptative, la détection d'oreille qui met en pause quand vous retirez un écouteur, les gestes de la tête pour répondre aux appels, le statut de batterie précis, les paramètres d'aide auditive complets, la connexion à deux appareils simultanés, et la reconnaissance de conversation qui baisse automatiquement le volume.

La dernière version (v0.2.0-alpha) a ajouté pas mal de trucs sympas comme la possibilité de voir la batterie de vos AirPods même quand ils ne sont pas connectés à votre téléphone, la connexion automatique quand vous recevez un appel ou lancez de la musique, et la personnalisation complète du mode transparence (amplification, balance, tonalité, réduction du bruit ambiant).

Techniquement, LibrePods fonctionne en utilisant un hook sur le Bluetooth Device Identification. Ce DID Bluetooth, c'est ce qui permet aux appareils de s'identifier entre eux et Apple utilise ce système pour vérifier si l'appareil connecté est un produit Apple. Si oui, les fonctionnalités se débloquent, si non, elles restent cachées. LibrePods se fait donc passer pour un appareil Apple à ce niveau, du coup, les AirPods croient qu'ils sont connectés à un iPhone ou un Mac. Et là, hop, tout se débloque ! Chouette non ?

Et c'est pas un hack compliqué... Ça consiste juste à enlever un filtre logiciel qu'Apple a mis volontairement pour vous forcer à rester dans leur écosystème.

LibrePods fonctionne sur Android et Linux. Notez que pour Android, vous devez avoir un appareil rooté avec Xposed installé à cause d'un bug dans la stack Bluetooth d'Android. Par contre, bonne nouvelle si vous êtes sur un OnePlus ou un Oppo avec ColorOS ou OxygenOS 16, vous pouvez utiliser l'app sans root pour les fonctions de base comme l'ANC, la reconnaissance de conversation et la détection d'oreilles !

Sur Linux, une nouvelle version est en développement actif et promet d'apporter encore plus de fonctionnalités mais en attendant, l'ancienne version permet déjà de contrôler les modes de bruit, les paramètres d'aide auditive, et d'autres fonctions.

D'autres applis existent pour gérer les AirPods sur Android comme CAPod, AirPodsDesktop, MagicPods, EarX mais elles ne proposent pas grand chose par rapport à LibrePods.

C'est vrai que l'Union Européenne force les fabricants à déverrouiller le firmware de certains appareils pour permettre la réparation et l'interopérabilité sauf que les écouteurs Bluetooth ne sont pas couverts par ces lois, ce qui fait qu'Apple peut continuer à brider des fonctionnalités matérielles avec du logiciel sans aucun problème légal.

LibrePods prouve donc qu'on n'a pas besoin d'attendre des lois. Faut juste des hackers qui en ont marre de se faire entuber et un peu de code !

Voilà, si vous avez des AirPods et que vous utilisez Android ou Linux, franchement, allez voir. Y'a tout sur le repo GitHub : le code source, les instructions d'installation, la doc technique...etc

Merci à Kiyoshi pour l'info !

❌