Jane Streetのリバースエンジニアリング課題を解く
Original : Solving the Jane Street reverse engineering challenge
Pourquoi c'est important
Ce défi illustre l'intérêt croissant pour le reverse engineering de puces dans la finance algorithmique.
Un ingénieur amateur a relevé le défi de reverse engineering de Jane Street, consistant à analyser un fichier GDS décrivant un ASIC pour comprendre son fonctionnement. La résolution a nécessité un mois de travail intense, combinant rigueur technique et manque de sommeil.
Jane Street, la célèbre firme de trading quantitatif, a publié un défi de reverse engineering portant sur un ASIC (Application-Specific Integrated Circuit). L'objectif : analyser un fichier GDS décrivant une puce électronique et déterminer ce qu'elle fait, en vue de trouver un mot de passe caché.
L'auteur, ingénieur de formation, s'est lancé sans recherche préalable, explorant directement les fichiers. Il y a repéré des éléments familiers : signaux d'horloge (clk), de reset (rst), tensions (VGND, VPWR) et des portes logiques identifiées par le préfixe sky130_fd_sc_hd__. La bibliothèque Python gdstk lui a permis de lire les fichiers GDS : le puzzle d'entraînement contient 27 cellules.
Un fichier VCD accompagnait le puzzle principal. En l'analysant avec un programme C, il a obtenu le message « TRY AGAIN », confirmant que le circuit contient des messages encodés.
Plutôt que d'utiliser des outils existants, l'auteur a développé son propre simulateur de circuit basé sur SQLite3, un parser pour un langage de description matérielle, et un environnement de test — une digression de plusieurs semaines qu'il reconnaît lui-même comme un détour coûteux. Il a finalement utilisé l'outil de visualisation « Surfer » pour analyser les formes d'ondes.