Skip to main content

Ad Code

REL Dosyası Nasıl Açılır? - Dosya Uzantısı

.rel dosyası nedir?

.rel uzantılı bir dosya çok çeşitli amaçlar için kullanılabilir. Bu nedenle, oyun sınıflandırması açısından, Brawl, Super Smash Bros ve Mario Kart Wii gibi bazı Nintendo Wii oyunları tarafından kullanılan yeri değiştirilebilen bir modül dosyası olarak bilinir. Karakter modelleri ve aşamalar da dahil olmak üzere oynanış verilerini içerir. REL dosyaları, Microsoft Windows tarafından kullanılan .DLL dosyalarına benzer şekilde çalışır.

REL dosya biçimi

Bir REL dosya biçiminde, dosya birkaç bölüme ayrılır, benzer erişime göre gruplanır, örneğin bir bölümdeki salt okunur veriler, tüm yürütülebilir kodlar başka bir bölüme yerleştirilir, vb. Dosya bir başlık bölümüyle başlar ve ardından:

  • Bölüm bilgilerini içeren tablo.
  • Bölüm verileri.
  • Yer değiştirme bilgisi.

Dosya başlığı

Dosya, en fazla 0x4C baytlık bir başlıkla başlar:

OfsetBoyutAlan AdıAçıklama
0x004kimlikKeyfi kimlik numarası. Bir oyun tarafından kullanılan tüm REL’ler arasında benzersiz olmalıdır. 0 olmamalıdır.
0x044sonrakiÇalışma zamanında doldurulmuş bir sonraki modüle işaretçi.
0x084öncekiÇalışma zamanında doldurulmuş, önceki modüle işaretçi.
0x0c4numSectionsDosyadaki bölüm sayısı.
0x104bölümBilgiOffsetKesit tablosunun başlangıcına kaydır.
0x144adOfsetModül adını içeren ASCII dizisine kaydır. NULL olabilir. REL dosyasının başlangıcına göre.
0x184isimBoyutBayt cinsinden modül adının boyutu.
0x1c4sürümREL dosya biçiminin sürüm numarası.
0x204bssBoyut‘.bss’ bölümünün boyutu.
0x244relOffsetYer değiştirme tablosuna ofset.
0x284impOffsetGösterim tablosuna ofset.
0x2c4impSizeGösterim tablosunun bayt cinsinden boyutu.
0x301prologBölümüProlog’un göreli olduğu bölüm tablosuna indeksleyin. Bu alan 0 ise atlayın.
0x311sonsözBölümüEpilogun göreli olduğu bölüm tablosuna dizin. Bu alan 0 ise atlayın.
0x321çözülmemişBölümÇözülmemiş olan bölüm tablosuna endeksleyin. Bu alan 0 ise atlayın.
0x331bssBölümübss’nin göreli olduğu bölüm tablosuna dizin. Çalışma zamanında dolu!
0x344giriş_prolog işlevinin belirtilen bölümüne kaydırma.
0x384epilog_epilog işlevinin belirtilen bölümüne kaydırma.
0x3c4çözülmemiş_unresolved işlevinin belirtilen bölümüne kaydırın.
0x404hizalaYalnızca sürüm ≥ 2. 2’nin kuvveti olarak ifade edilen tüm bölümlerde hizalama kısıtlaması.
0x444bssAlignYalnızca sürüm ≥ 2. Tüm ‘.bss’ bölümlerinde hizalama kısıtlaması, 2’nin kuvveti olarak ifade edilir.
0x484düzeltmeBoyutuYalnızca sürüm ≥ 3. REL, OSLinkFixed ile bağlantılıysa (OSLink yerine), bu adresten sonraki boşluk başka amaçlar için (BSS gibi) kullanılabilir.

Bölüm Bilgi Tablosu

Bölüm bilgi tablosu, her biri 0x8 bayt uzunluğunda numSections girişlerini içerir:

OfsetBoyutAçıklama
0x030 bitREL’in başından bölüme ofset. Bu sıfırsa, bölüm başlatılmamış bir bölümdür (örn. .bss).
0x3.61 bitBilinmeyen.
0x3.71 bitYürütülebilir bayrak; bu 1 ise bölüm yürütülebilir.
0x44Bölümün bayt cinsinden uzunluğu. Bu sıfırsa, bu giriş atlanır.
0x8Sonraki girişSonraki giriş

Yer Değiştirme Verileri

Yer değiştirme verileri, 0x8 bayt yapılarından oluşan bir veya daha fazla listedir. Her listenin sonu özel tip kodu 203 ile işaretlenmiştir:

OfsetİsimBoyutAçıklama
0x0ofset2Bir önceki yer değiştirmeden buna bayt cinsinden ofset. Bu, bölümdeki ilk yer değiştirme ise, bu bölüm başlangıcına göredir.
0x2tür1Yer değiştirme türü. Aşağıda açıklanan.
0x3bölüm1Sembolün yerinin değiştirileceği bölümü. Özel yer değiştirme tipi 202 için bu, bu dosyada aşağıdaki yer değiştirme girişlerinin geçerli olduğu bölümün numarasıdır.
0x4ekle4Bölümün başlangıcına göre yeniden konumlandırılacak sembolün bayt cinsinden ofseti. Bu, main.dol’a karşı yer değiştirmeler yerine mutlak bir adrestir.
0x8Sonraki girişSonraki girişSonraki giriş

 

Yorum Gönder

0 Yorumlar