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.

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:
- FreeHDBoot: FreeMCBoot'un bunun yerine sistemin de önyükleme yapmaya çalışacağı HDD'ye yüklenen bir çeşidi.
- ps2sdk ps2dev grubu tarafından : Telif hakkı ihlali riski olmadan PS2 Homebrew yazmak için resmi olmayan SDK. Proje, yalnızca belirli bileşenlere erişmek için gevşek kütüphaneler biçiminde bulunduğu ve zamanla Homebrew geliştiricilerinin yararına tek bir pakette birleştirildiği 2000 yılına dayanmaktadır.
- LaunchELF birden fazla yazar tarafından : Ekstra yardımcı programlara sahip bir dosya yöneticisi. Daha sonra 'uLaunchELF' ve son olarak 'wLaunchELF' olarak devam etti.
- Open USB Loader (OPL) birden fazla yazar tarafından : Disk görüntülerini birden fazla kaynaktan (HDD, USB, i.Link ve hatta Ethernet üzerinden SMB ve NMB) yama yetenekleriyle önyüklemeyi sağlar.
- Ffgriever tarafından ESR: Orijinal adı 'Vast CDVDV' olan bu uygulama, tüm sistemi (DVD sürücüsü de dahil olmak üzere) donanım değişikliği yapmadan bir oyunun yakılmış bir kopyasını çalıştırması için kandıran bir uygulamadır. ESR, yürütmeyi gerçek oyuna yönlendirmek için Emotion Engine ve IOP'nin kontrolünü ele geçirirken, orijinal oyun içeriği kendisini DVD filmi olarak gizlemek için yamalanmalıdır (böylece DVD sürücüsü bunu reddetmez).
İlerleyen yıllarda yeni açıklar da ortaya çıkacaktır:
- Krat0s tarafından Fortuna: 2019'da yayınlanan ve tamamen farklı bir istismara dayanan alternatif bir Homebrew başlatıcısı. Bu kez, kaydetme yöneticisinin simge ayrıştırıcısında (
OSDSYS'nin bir parçası) bir buffer overflow var . Ana avantajı, hariciOSDSYSgüncellemeleri için desteği kaldıran (dolayısıyla FreeMCBoot ile uyumsuz) son PS2 modelleriyle uyumluluktur. - alexparrado tarafından OpenTuna : Fortuna'ya açık kaynaklı bir alternatif, tersine mühendislikten kaynaklandı.
- cturt tarafından FreeDVDBoot : 2020'de yayınlanan yeni bir güvenlik açığı. DVD oynatıcıda rastgele kod yürütme gerçekleştirmek için kullanılabilecek yeni bir buffer overflow'dan oluşur. Kullanıcıların FreeMCBoot yükleyicisi ve hatta ESR dahil olmak üzere istedikleri herhangi bir ikili dosyayı çalıştırmak için FreeDVDBoot ile bir DVD yazmaları yeterlidir (Sony bunun yıllar önce keşfedilmediği için çok şanslıydı! diğerleri gibi değildi).