Как я взломал генератор случайных чисел в Factorio

Reversing Factorio's RNG

Как я взломал генератор случайных чисел в Factorio

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

Что произойдёт, если мы знаем точный алгоритм и его внутреннее состояние? Тогда мы могли бы просто запустить тот же алгоритм на этом состоянии и получить те же выходные данные, которые увидит и сама игра.

Ещё за этот день

2026-09-16