Factorio'nun rastgele sayı üreteci tersine mühendislikle çözüldü
Öne çıkanlar
- Factorio'nun rastgele sayı üretimi için üç adet LFSR içeren taus88 algoritmasını kullandığı kanıtlandı.
- GF(2) cismi üzerindeki durum matrislerinin tersi alınarak üretecin iç durumu geriye dönük hesaplandı.
- Oyun içi şans mekaniklerini tahmin eden bu açık Factorio 2.1 sürümünde kapatıldı.
Factorio oyununun simülasyonunda kullanılan sözde rastgele sayı üreteci (PRNG) tersine mühendislik yöntemleriyle incelendi ve gelecekteki çıktıların matematiksel olarak tahmin edilebileceği ortaya kondu. Space-Age genişleme paketiyle oyuna eklenen nesne kalitesi mekaniği rastgele şans dağılımlarına dayanıyordu. Oyun ikili dosyaları ve hata ayıklama sembolleri üzerinden yapılan inceleme, sistemin Boost kütüphanesindeki taus88 algoritmasını kullandığını doğruladı.
Araştırmada taus88 algoritmasının üç ayrı doğrusal geri beslemeli kaydırma yazmacının (LFSR) XOR işlemiyle birleşiminden oluştuğu belirlendi. LFSR yapılarının GF(2) Galois cismi üzerinde doğrusal cebir matrisleriyle modellenebildiği aktarıldı. Bu doğrusallık sayesinde durum geçiş matrislerinin tersi Gauss eleme yöntemiyle hesaplanarak yazmaçların önceki ve sonraki tüm adımlarının izlenebildiği açıklandı.
İç durumun gözlemlenen çıktılardan yeniden kurulabilmesi, oyun içindeki nesne kalitesi artışları gibi rastgele görünen olayların önceden bilinmesini mümkün kıldı. Bu durumun Factorio 2.0 sürümünde oyun içi uygulamalarla suiistimal edilebildiği kaydedildi. Geliştirici ekibin ise Factorio 2.1 sürümünde rastgele sayı üretecinin kullanım biçimini değiştirerek söz konusu yöntemleri geçersiz kıldığı bildirildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.