« PlayStation 2'nin Mimarisi (index)

PlayStation 2'nin Mimarisi

Chapter 10: Korsanla Mücadele ve Ev Yapımı (Homebrew)


İçindekiler

  1. DVD kopya koruması
  2. Korumaları atlatmak
    1. DVD sürücüsüne saldırma
      1. Modifikasyon Çipleri (Modchips)
      2. Hileler
      3. Disk değiştirme
    2. Modçiplerden ayrılma
    3. Independence overflow
    4. The signature exploit
    5. Evrensel çözüm
  3. Takip eden gelişmeler

Bu alanda konuşulacak çok şey var, hadi DVD okuyucuyla başlayalım, olur mu?

DVD kopya koruması

Bu alan özellikle oyun stüdyoları için endişe vericiydi, çünkü bu konsol oyunları dağıtmak için çok uygun fiyatlı bir disk formatı kullanıyordu. Dolayısıyla korsanlık riski yüksekti.

Image
Bu ekran, sürücü arızalıysa görülebilir... ya da korsan bir kopya takıldıysa.

İşletim sistemi, bir oyunu açma işini DVD okuyucuya özel komutlar göndererek yapar. Özel olarak oyun içeriğini okumak için kullanılan komutlar, standart DVD komutlarından (yani DVD filmi okunmasından) çok farklı davranır. Tescilli oyunların, diskin daha içeri kısımlarında, dosya sisteminin (filesystem) adını, konumunu ve boyutunu işaretleyen ve erişim alanının dışında kalan bir 'yerleştirme dosyası' (map file) bulundurduğu ortaya çıktı. DVD'den bir oyun diskini okuması istendiğinde, diskte her zaman yerleştirme dosyası (map file) yardımıyla yön bulur; bu da demektir ki yerleştirme dosyasını bulundurmayan bir korsan kopyanın okunması imkânsızdır.

Bu, başka bir bölgenin konsolunda çalışan ithal oyunların çalıştırılmasını engelleyen bir bölge kilidi sistemiyle bütünleşmiştir.

Korumaları atlatmak

Bu konsola dair en önemli bölümü açıkladık, şimdi de koruma mekanizmalarını atlatmayı başaran keşfedilmiş birkaç yönteme göz atalım.

DVD sürücüsüne saldırma

PS2 mağazalara ulaşır ulaşmaz, DVD sürücüsünün 'kilidini açma' vaadiyle çok sayıda üçüncü parti ürün ortaya çıktı. Homebrew'u destekleyecek hiçbir işaret olmadığından (Linux çözümü dışında), korsanlık en büyük faydalanıcı oldu.

Modifikasyon Çipleri (Modchips)

Kendi neslinde (ve öncekilerde) disk tabanlı sistemler kullanan diğer konsollardaki gibi, DVD yardımcı sisteminin üçüncü taraf şirketlerce tersine mühendisliğe uğraması an meselesiydi. Buradaki hedef, sürücüyü, erişim alanı dışındaki yerleştirme dosyasını kullanmayı gerektirmeden dosya sisteminde gezinmeye zorlayacak kullanışlı bir açık yakalamaktı.

Sonunda bu, aynı zamanda bölge kilidi kısıtlamalarını da askıya alan modchipler şeklinde gerçekleşti.

Hileler

Takılması için lehim kabiliyeti gerektiren modchiplerin yanı sıra, gayriresmî fakat 'orijinal' diskler pazarda yerini aldı. Bunlar, bölge korumasını kaldırmak ve oyun içi hileleri kullanmak için Çekirdeği yamaladı.

Dahası, 'hile diskleri', konsolun modifiye edilmesini gerektirmeme avantajına da sahipti. Düşünceme göre bu bahse en iyi örnek CodeBreaker'dır.

Disk değiştirme

Son gelişmeler arasında bir hileli teknik daha ortaya çıktı. Bu sefer, okuyucunun hatalı sektörlere müdahale davranışından faydalanılıyor. Swap Magic bir diğer 'orijinal' disk gibi görünüyor ancak içindeki 'oyun' DVD'ye kasten yapılmış bir hatalı sektördeki, aslında var olmayan bir çalıştırılabilir dosyayı okumasını söylüyor, böylece sürücüyü büsbütün donduruyor . Kullanıclar için mevcut diski 'orijinal' olmayan bir diskle değiştirebilecekleri bir fırsat penceresi aralanıyor. Sonrasında, hâlen hafızada bulunan Swap Magic, yeni diskin ana çalıştırılabilir dosyasını önyüklüyor ve sonunda gerçek bir oyun açılıyor. Tüm bunlar, sürücü hâlâ orijinal bir diskin takılı olduğunu zannederken gerçekleşiyor.

Bu işlem, illâki konsolda bir değişiklik yapılmasını gerektirmez. Fakat modele bağlı olarak, sürücünün disk çıkarma sensörünü bloke edecek şekilde, PS2'nin dış kasasının kurcalanması gerekebilir. Bazı modellerde, pamuk parçalarının belirli yerlere yerleştirilmesi de adım adım ilerlemenin bir parçasıydı.

Modçiplerden ayrılma

Zaman geçtikçe, bu konsol hakkında daha fazla araştırma toplandı ve paylaşıldı. Sonuç olarak, yeni ve daha sofistike keşifler, en azından temel olarak artık harici donanıma dayanmayan yeni bir geliştirme dalgasına yol açtı. Dahası, korsanlık artık ana odak noktası değildi. Bunun yerine, Sony'nin onayı olmadan üçüncü taraf programları çalıştırma yeteneği (Homebrew olarak adlandırılır) hızla hedefler listesinin zirvesine yerleşti.

Independence overflow

PS2, PS1 oyunlarının emülasyonunu optimize ederken kullanılacak bilgileri içeren, TITLE.DB adı verilen bir veri tabanı dosyasını Hafıza Kartında (MemoryCard) saklar . İşletim sistemi, bir PS1 oyunu yerleştirildiğinde veri tabanı dosyasını getirir ve bütün dosyayı hafızadaki sabit bir adrese açar (ihmâl bir). Bilgi derleyici, C'de dizileri (harf ve diğer karakterler zinciri) bir yerden ötekine kopyalamaya yarayan strncpy() fonksiyonu kullanılarak uygulandı.

C'ye aşina olanlarınız, muhtemelen nereye varacağımı tahmin ettiniz. Olay şu ki strncpy(), bir dizi ne kadar uzun bilmiyor, yani (zincirin sonuna \0 yazmak suretiyle) bitirilmediği sürece kopyalama 'sonsuza dek' devam edecek (ve öngörülemeyen sonuçları olacak!). Şanslarına bu fonksiyon, tercihen kullanılabilen, kopyalanacak maksimum byte sayısını belirleyen bir parametre içeriyor ve böylece kopyayı arabellek taşmalarından koruyor. Fakat şu gülünç gelebilir ve öyledir ki Sony, bu parametreyi kullanmadı, hem de her veri tabanı girdisinin 256 byte'lık sabit bir boyuta sahip olmasına rağmen (ihmal iki).

RAM'de daha yakından incelendiğinde, TITLE.DB, yürütülmekte olan mevcut işlev bittikten sonra geri dönülecek adresi belirten kayıtlı bir register olan $ra'nın yanına kopyalanır (üçüncü vuruş), bu da The Independence Exploit'e yol açar: Büyük bir string içeren bir TITLE.DB oluşturun, içine bir çalıştırılabilir dosya yerleştirin ve bu stringi $ra'nın çalıştırılabilir dosyayı gösterecek şekilde geçersiz kılınacağı şekilde tasarlayın. Bu dosyayı Hafıza Kartınıza yüklemeyi başarırsanız (başka bir istismar veya PC USB adaptörü aracılığıyla) kendinize basit bir Homebrew launcher elde etmiş olursunuz.

Bu keşif 2003 yılında yayımlanmıştır. Sonuç olarak, ince revizyonla birlikte Sony, bu açığı yamalayan yeni bir BIOS ROM revizyonu gönderdi. İlginçtir ki bu, acemice kod meydana getiren son falso değildi.

The signature exploit

Kasım 2007'de bir bilgisayar korsanlığı grubu Memor32 adında tipik bir üçüncü taraf Hafıza Kartı satmaya başladı, ancak bu kartta nedense bir FPGA ve bir USB portu bulunuyordu. İnternet forumlarında Memento adlı bir aygıt yazılımı ortaya çıkana kadar Memor32'nin gerçek doğası netleşmedi: Independence istismarında olduğu gibi hafıza kartından yetkisiz çalıştırılabilir dosyalar çalıştırmak.

Memento'nun uygulanması DVD oynatıcının imzasının kontrol edilme şeklindeki bir kusura dayanıyordu. İkililerin Sony'nin anahtarları kullanılarak imzalanması gerekirken ikilinin bütünlüğünün kontrol edilmediği keşfedildi. Dolayısıyla, herhangi biri çalıştırılabilir kodu başka bir şeyle (hala aynı alana sığan) değiştirebilir ve işletim sistemi memnuniyetle çalıştıracaktır. Memento aygıt yazılımı bu istismarı kullanarak yükünü DVD oynatıcı içinde gizlemiş ve kullanıcıların oyunları (disk sürücüsünden ya da HDD'den) yüklemelerine olanak tanıyan birkaç yardımcı program eklemiştir.

Ancak Memor32 ve Memento'nun popülerliği, ücretsiz (ve başlangıçta açık kaynaklı olan) bir alternatifin ortaya çıkmasıyla kısa sürede yer değiştirdi: FreeMCBoot.

Evrensel çözüm

Memento'nun ters mühendisliği yapıldıktan sonra, Memor32 gerektirmeyen bir alternatif internette ortaya çıktı. FreeMCBoot, herhangi bir MagicGate Hafıza Kartına yüklenebilmesi dışında aynı güvenlik açığından yararlanmıştır. Tek dezavantajı, yükleyiciyi başlatmak için hala başka bir açık (örneğin disk değiştirme) gerekmesiydi.

İlginçtir ki, FreeMCBoot'un kullanıcı arayüzü OSDSYS'den varlıkları ödünç alır, böylece diğer Homebrew'u başlatmak için tanıdık bir menü sağlar. Ayrıca, USB 1.1 bağlantı noktalarındaki yığın depolama aygıtlarına erişmek için API'ler eklemek üzere çekirdeğe yama yapar; bu, birçok homebrew uygulamasının ek dosyaları bulmak için güvendiği bir şeydir.

Ek olarak, yükleyici iki seçenek sunar: yalnızca mevcut konsol için gereken dosyaları yüklemek veya tüm PS2 varyantları için genel bir kurulum yüklemek. İlginçtir ki, ikinci seçeneği gerçekleştirmek oldukça zordu . Başlangıçta, yükleyici, alanın tükenmesini önlemek için Hafıza Kartının bölümleme tablosuyla oynayacaktı, bu özellikle güvenli olmayan bir şeydi.

Şans eseri 2011 yılında PlayStation 3'ün güvenlik sistemi ele geçirildi ve içinde saklı birçok sır açığa çıktı. Diğerlerinin yanı sıra, PS2 geri uyumluluğu için global olarak kullanılan MagicGate anahtarları koleksiyonu bulunmaktadır. O andan itibaren, PS2 çalıştırılabilir dosyaları oluşturmak için sınırlı DVD ikili imza hilesine başvurmak artık gerekli değildi. Ve böylece, 1.8b sürümünden bu yana FreeMCBoot, PlayStation 2'de her türlü Homebrew'u çalıştırmak için en güvenli ve en popüler yöntem olarak konumunu korumuştur.

Takip eden gelişmeler

Homebrew'u çalıştırma yolu daha erişilebilir hale geldiğinde, ilerleme önceki açıkların parlatılması ve Homebrew uygulamalarının geliştirilmesi şeklinde devam etti. Sonunculardan bazıları nihayetinde korsanlıkla ilgili işlevselliği kolaylaştırdı, ancak aynı zamanda işletim sisteminin sınırlı yeteneklerini de genişlettiler (örneğin, oyunlara yamalar sağlayarak), sanırım sonuçta kullanıcılarının niyetlerine bağlıydı.

Homebrew ile ilgili gelişmelerden birkaç önemli örnek vermek gerekirse:

İlerleyen yıllarda yeni açıklar da ortaya çıkacaktır:


Previous: 9. Oyunlar

Next: 11. Hepsi bu kadar


Rodrigo Copetti © 2026 RSS Feed

Modern baskıya geçin

Ana sayfa · Yazılar · Destek · Yazar hakkında · Web sitesini hakkında