Ana içeriğe geç
Programlama

Eski Macromedia Director oyunlarının kopya korumaları tersine mühendislikle aşıldı

Öne çıkanlar

  • Macromedia Director yürütülebilir dosyaları, PE yapısının sonuna eklenmiş Lingo betikleri içeriyor.
  • ProjectorRays aracına gömülü dosya ofsetlerini destekleyen yeni bir parametre eklendi.
  • Donanım denetimi yapan optgraph.dll kütüphanesi Ghidra üzerinden bayt yamasıyla geçildi.

Bir yazılım geliştiricisi, 2000'li yılların başından kalan ve Macromedia Director motoruyla geliştirilen çocukluk oyunlarını modern sistemlerde çalıştırmak için uyguladığı tersine mühendislik adımlarını paylaştı. Geliştirici, Archive.org üzerinden temin ettiği disk kalıplarında sahte dosya boyutları içeren bozuk dizin yapıları ve optik sürücü zorunluluğu gibi çok katmanlı eski kopya koruma yöntemleriyle karşılaştı.

İncelemeler sırasında oyunların, PE dosya yapısının sonuna eklenmiş .dxr uzantılı Macromedia Director betikleri barındırdığı belirlendi. Açık kaynaklı ProjectorRays aracını geliştirerek bu gömülü Lingo kodlarını ayrıştıran araştırmacı, sürücü yollarını denetleyen kontrol fonksiyonlarını tespit etti. İlgili atlama komutları bayt seviyesinde doğrudan hex düzenleyiciyle yamalanarak CD kontrolü devre dışı bırakıldı.

Son aşamada ise oyunun, donanım düzeyinde sürücü komutları yürüten harici bir dinamik kütüphaneyi doğruladığı görüldü. Ghidra kullanılarak optgraph.dll içindeki initdisplay fonksiyonu sahte bir başarılı dönüş değeri verecek şekilde düzenlendi ve oyun modern donanımlarda tamamen oynanabilir hale getirildi. Süreci otomatikleştirmek amacıyla benzer oyunlara da uyarlanabilen bir Python yamalama betiği yayımlandı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.