Как я взломал генератор случайных чисел в Factorio
Reversing Factorio's RNG
В Factorio качество предметов зависит от псевдослучайного генератора taus88, состоящего из трёх линейных регистров сдвига с обратной связью. Автор декомпилирует игру с помощью Ghidra и доказывает эквивалентность реализации, после чего показывает, как, зная состояние генератора, можно предсказывать выпадение предметов высокого качества. Теоретическая часть про LFSR изложена с минимальными требованиями — достаточно базовой линейной алгебры.
Что произойдёт, если мы знаем точный алгоритм и его внутреннее состояние? Тогда мы могли бы просто запустить тот же алгоритм на этом состоянии и получить те же выходные данные, которые увидит и сама игра.