Aller au contenu
La Lettre IT
Retour aux synthèses
3 min de lecture

Prédire les événements « aléatoires » dans Factorio en inversant son générateur pseudo-aléatoire

En bref

  • Factorio utilise l'algorithme taus88 pour générer ses événements apparemment aléatoires, mais cet algorithme est entièrement déterministe et peut être inversé.
  • Un développeur a documenté comment récupérer l'état interne du générateur et prédire les futurs événements, comme la qualité des objets craftés.
  • Cette connaissance permet même de reproduire l'algorithme avec des réseaux de combinateurs in-game pour exploiter la prévisibilité du système.

Ce que dit la source

L'article inverse l'algorithme taus88 utilisé par Factorio depuis ses débuts. En inspectant le binaire décompilé avec Ghidra et Binary Ninja, l'auteur a confirmé qu'une ancienne déclaration du développeur Cube (datant de 2014) était exacte : Factorio choisit taus88 principalement pour sa vitesse. Connaître l'état interne et l'algorithme permet de calculer exactement les prochains « événements aléatoires » du jeu, notamment les augmentations de qualité des objets introduites avec la DLC Space-Age. La démonstration couvre la théorie, l'implémentation pratique et son exploitation in-game via les combinateurs.

  • L'algorithme taus88 combine trois registres à rétroaction linéaire (LFSR) dont les sorties sont XORées ensemble, créant une séquence très rapide mais mathématiquement prévisible.
  • Une fois l'état interne du générateur connu (notamment les trois seeds), il suffit de simuler l'algorithme en parallèle avec le jeu pour anticiper les résultats futurs.
  • La Space-Age DLC a introduit des qualités d'objet contrôlées par tirage au sort ; cette mécanique devient alors totalement maîtrisable si on connaît la graine de départ.
  • L'article note que Factorio 2.1 a modifié l'utilisation du RNG, invalidant les implémentations in-game développées pour la version 2.0, bien que les principes théoriques demeurent.
  • Plusieurs commentateurs soulignent que l'exploit est poussé jusqu'à reproduire l'algorithme taus88 directement avec les réseaux de combinateurs disponibles in-game, transformant une analyse théorique en outil d'optimisation pratique.

Dans les commentaires

Débat enthousiaste et technique, peu de contestation : les commentateurs apprécient la qualité de la reverse engineering et le détail de l'exploitation in-game. Quelques remarques adjacentes (comparaisons avec Stardew Valley et Minecraft, critique de Boost pour sa syntaxe) mais pas de désaccord substantiel.

  • Un commentateur soulève que taus88 date de 1996 et que des alternatives modernes offriraient meilleure qualité crypto et meilleure performance, bien que Boost en propose maintenant ; la riposte implicite est que le coût de migration justifiait mal ce changement pour Factorio.
  • Un autre note que les jeux multijoueurs, en particulier Minecraft, auraient dû utiliser des fonctions de hachage ou des CSPRNG pour éviter exactement ce type de reverse engineering des coordonnées ; ce critique pointe une faille de conception générale, pas un problème du code Factorio lui-même.
  • L'incompatibilité introduite en Factorio 2.1 est rapidement mentionnée par l'auteur comme une limite connue, sans vraie controverse.

Notre lecture

Article de reverse engineering pur, exemplaire sur le plan technique et pédagogique : il documente une vulnérabilité théorique (non critique, puisque le jeu est mono ou coopératif non-adversarial) tout en transformant une analyse académique en exploit ludique fonctionnel. Pour l'audience dev/DSI, c'est une étude de cas solide sur pourquoi les PRNG légers ne doivent jamais sécuriser des systèmes sensibles, leçon bien au-delà de Factorio. Le travail de décompilation, documentation et implémentation in-game mérite l'attention : c'est du contraire-ingénierie de qualité publication, pas du bricolage. À lire pour comprendre les fondamentaux des LFSR et les limites des algorithmes déterministes dès que l'adversaire en connaît l'état. Aucune action immédiate requise hors contexte ludique.

Le brief, dans votre boîte mail

Recevez chaque jour la sélection et l'analyse La Lettre IT, sans avoir à repasser sur le site.

  • Un email par jour, synthèse de ce qui compte réellement sur Hacker News
  • Le débat technique décrypté, pas juste résumé, et ce que La Lettre IT en pense
  • Zéro spam, désabonnement en un clic sur chaque email