ELF ve SELF yükleme
Yükleyici şifresi çözülmüş PS5 SELF ve çıplak ELF64 modüllerini eşler, yer değiştirmeleri uygular ve içe aktarmaları HLE kaydına göre çözer. Oyun ardından kendisi başlattığı modüller için kararlı tanıtıcılar alır.
10 Ekim 2026 tarihine kadarki depo notları
Görüntüler
Bir PlayStation 5 yürütülebilir dosyası genellikle bir ELF64 görüntüsünü saran bir SELF kapsayıcısıdır. PS5PCEM hem kapsayıcıyı hem çıplak bir ELF'i okur. Okuyucu içe aktarmaları toplar, segmentleri ayrılmış misafir adres alanına eşler ve yer değiştirmeleri uygular. TLS görüntüleri onları çalıştıracak iş parçacıklarıyla kaydedilir.
Araçlar oyunu başlatmadan bir modülü inceleyebilir, yer değiştirilmiş bir bağımlılık grafiğini dökebilir veya bir shader'ı ayrıştırabilir. game-run; yükleyen, HLE'yi başlatan ve misafire giren yoldur. Şifresi çözülmüş eboot.bin kurulumdan ayrı duruyorsa --app0 salt okunur bağlamayı içerik dizinine yönlendirir.
Oyunun sonradan başlattığı modüller
Çalışma zamanı, misafir kodu çalışmadan önce ulaşılabilir bağımlılık grafiğini ve PS5_PRELOAD'da adı geçen her şeyi eşler. sceKernelLoadStartModule ardından bu kümedeki bir modül için kararlı bir tanıtıcı döndürür. Onu yeniden yüklemek ikinci bir yer değiştirilmiş kopya oluşturmaz. sceKernelDlsym oyunun verdiği adı özetler ve yalnızca tanıtıcının seçtiği modülde arar; böylece aynı geri çağırmayı dışa aktaran iki eklenti birbirine karışmaz.
Yol eşleştirmesi eğik çizgi yönünü ve büyük/küçük harfi yok sayar. Gözlenen bir oyun Il2CppUserAssemblies.prx ister ve Il2cppUserAssemblies.prx ile gelir. Tam eşleşme, oyunun kurduğu bir dosyayı reddederdi. Göreli yol çıplak dosya adından önce denenir; böylece dosya adı aynı olan iki modül ayrı kalır. Yayımlanan kümede olmayan bir modül ENOENT döndürür. Misafir iş parçacıkları zaten çalışırken eşlenmez.
Unity eklentileri
Unity eklentileri yapıcıları ertelenerek eşlenebilir. sceKernelLoadStartModule onları bu yapıcıları grafik başlatması sırasında çalıştırmak yerine oyunun gerçek bağımsız değişken bloğuyla bir kez başlatır. Bu sıralama, bağımsız değişkenlerini gören bir eklenti ile çok erken başlayan bir eklenti arasındaki farktır.
Yükleyici perakende bir SELF'in şifresini çözmez. Girdi, kullanıcının yüklemeye hakkı olan şifresi çözülmüş bir görüntüdür. Şifreli paketler PKG aracının konusudur ve perakende şifreleme o aracın da dışındadır.
Uygulananlar
- ELF64 ve şifresi çözülmüş SELF eşleme, yer değiştirme, içe aktarmalar ve TLS.
- Önceden yüklenmiş bir bağımlılık grafiği ve kararlı sceKernelLoadStartModule tanıtıcıları.
- Büyük/küçük harfe duyarsız yol eşleştirmesiyle seçilen modülle sınırlı Dlsym.
- Gerçek bağımsız değişkenlerle başlasınlar diye Unity eklentileri için ertelenmiş yapıcılar.
Hâlâ eksik olanlar
- Yalnızca açılıştan sonra ortaya çıkan ve önceden yüklenmemiş bir modül ENOENT döndürür.
- Şifreli perakende SELF görüntülerinin şifresi çözülmez.
- İnceleme sürümleri, Windows dışı ana sistemlerde yüklenen görüntüyü yürütmez.
İlgili mekanizmalar
Bu sayfalar nedir