Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

RAR srm 3.80 - Teknik Bilgi ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AAIDA AIKLANAN ARV BM SADECE 1.

50 SRMNDEN TBAREN GEERLDR ========================================================================== RAR ariv dosyas biimi ========================================================================== Ariv dosyas deiken uzunluk bloklarna dayanr. Bu bloklarn sras deiebilir, fakat birinci blok, ariv stbilgisi blounu takip eden blou iaretlemelidir. Her blok aadaki alanlarla balar: HEAD_CRC HEAD_TYPE HEAD_FLAGS HEAD_SIZE ADD_SIZE 2 1 2 2 4 bayt bayt bayt bayt bayt Tm bloklarn veya blok parasnn CRC'si Blok tr Blok bayraklar Blok boyutu stee bal alan - eklenen blok boyutu

ADD_SIZE alan sadece (HEAD_FLAGS & 0x8000) != 0 ise varolacaktr Toplam blok boyutu HEAD_SIZE eer (HEAD_FLAGS & 0x8000) == 0 ve HEAD_SIZE+ADD_SIZE eer ADD_SIZE mevcutsa -(HEAD_FLAGS & 0x8000) != 0 olduunda. Her blokta, HEAD_FLAGS 'deki bitler ayn anlama sahiptir: 0x4000 - eer ayarlysa, nceki RAR srmleri, ariv, gncellendiinde blou yoksayacak ve silecektir. Eer yoksa, ariv gncellendiinde blok yeni arive kopyalanacaktr. 0x8000 - eer ayarlysa, ADD_SIZE alan mevcut olacak ve tam blok boyutu HEAD_SIZE+ADD_SIZE olacaktr. Bildirilen (declared) blok trleri: HEAD_TYPE=0x72 HEAD_TYPE=0x73 HEAD_TYPE=0x74 HEAD_TYPE=0x75 HEAD_TYPE=0x76 HEAD_TYPE=0x77 HEAD_TYPE=0x78 HEAD_TYPE=0x79 HEAD_TYPE=0x7a iaretleyici blok ariv stbilgisi dosya stbilgisi eski stil aklama stbilgisi eski stil gereklik bilgisi eski stil alt blok eski stil kurtarma kayd gereklik bilgisi alt blok

Aklama blou aslen sadece dier bloklarla ve ayr bulunmayan bloklarla kullanlr. Ariv ileme aadaki yolla yaplr: 1. 2. 3. 4. aret blounu oku ve kontrol et Ariv stbilgisini oku HEAD_SIZE-sizeof(MAIN_HEAD) baytlarn oku veya atla Ariv sonuyla karlalrsa ariv ilemeyi durdur, deilse alanlardan 7 bayt oku: HEAD_CRC, HEAD_TYPE, HEAD_FLAGS,

HEAD_SIZE. 5. HEAD_TYPE kontrol et eer HEAD_TYPE==0x74 dosya stbilgisini oku ( ilk 7 bayt zaten okundu ) HEAD_SIZE-sizeof(FILE_HEAD) baytlarn oku veya atla eer (HEAD_FLAGS & 0x100) HIGH_PACK_SIZE*0x100000000+PACK_SIZE baytlarn oku veya atla aksi takdirde (else) PACK_SIZE baytlarn oku veya atla aksi takdirde (else) uyuan HEAD_TYPE blounu oku: HEAD_SIZE-7 baytlarn oku eer (HEAD_FLAGS & 0x8000) ADD_SIZE baytlarn oku 6. 4'e git. ========================================================================== Blok Biimleri ========================================================================== aretleyici blok ( MARK_HEAD ) HEAD_CRC 2 bayt HEAD_TYPE 1 bayt HEAD_FLAGS 2 bayt HEAD_SIZE 2 bayt Her zaman 0x6152 stbilgi tr: 0x72 Her zaman 0x1a21 Blok boyutu = 0x0007

aretleyici blok, aslen sabit bayt sras olarak saylr: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00

Ariv stbilgisi ( MAIN_HEAD ) HEAD_CRC 2 bayt HEAD_TYPE 1 bayt HEAD_FLAGS 2 bayt HEAD_TYPE to RESERVED2 alanlarnn CRC'si stbilgi tr: 0x73 Bit bayraklar: 0x0001 0x0002 - Cilt znitelii (ariv cildi) - Ariv aklamas varl RAR 3.x ayr bir aklama blou kullanr ve bu bayra ayarlamaz. - Ariv kilidi znitelii - Kat znitelii (kat ariv)

0x0004 0x0008

0x0010 0x0020 0x0040 0x0080 0x0100

- Yeni cilt adlandrma plan ('ciltad.partN.rar') - Gereklik denetleme varl RAR 3.x bu bayra ayarlamaz. - Kurtarma kayd varl - Blok stbilgileri ifrelenmi - lk cilt (sadece RAR 3.0 ve sonras tarafndan ayarlanr)

HEAD_FLAGS'deki dier bitler dahili kullanm iin ayrlmtr HEAD_SIZE 2 bayt RESERVED1 2 bayt RESERVED2 4 bayt Ariv stbilgisi toplam boyutu, ariv aklamalar dahil Ayrlm Ayrlm

Aklama blou (HEAD_FLAGS & 0x02) != 0 ise mevcuttur

Dosya stbilgisi (Ariv iindeki dosya) HEAD_CRC 2 bayt HEAD_TYPE 1 bayt HEAD_FLAGS 2 bayt HEAD_TYPE to FILEATTR CRC alanlar ve dosya ad stbilgi tr: 0x74 Bit bayraklar: 0x01 - dosya nceki ciltten devam ediyor 0x02 - dosya sonraki ciltte devam ediyor 0x04 - dosya parola ile ifrelenmi 0x08 - dosya aklamas mevcut RAR 3.x ayr bir aklama blou kullanr ve bu bayra ayarlamaz. 0x10 - nce kullanlan dosyalar hakknda bilgi (kat bayra) (RAR 2.0 ve sonras iin) bit 7 6 5 (RAR 2.0 ve sonras iin) 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 szlk boyutu 64 szlk boyutu 128 szlk boyutu 256 szlk boyutu 512 szlk boyutu 1024 szlk boyutu 2048 szlk boyutu 4096 dosya bir dizin KB KB KB KB KB KB KB

0x100 - HIGH_PACK_SIZE ve HIGH_UNP_SIZE alanlar

mevcut. Bu alanlar ok byk (2 gb'den byk) dosyalar arivlemek iin kullanlr, kk dosyalarda bu alanlar yoktur. 0x200 - FILE_NAME allm ve kodlanm Unicode adnn ikisini birden ierir ve sfr ile ayrlmtr. Bu durumda NAME_SIZE alan allm isim art kodlanm Unicode art 1'e eittir. Bu bayrak mevcutsa, FILE_NAME sfr baytlarn iermez. Bu, dosya adnn UTF-8 ile kodland anlamna gelir. 0x400 - stbilgi, dosya adndan sonra ek olarak 8 bayt ierir, bunlar ifreleme gvenlii iin gereklidir (bu sebeple 'salt' diye adlandrlr). 0x800 - Bu eski dosya srmdr, srm numaras dosya adna ';n' eklinde eklenir. 0x1000 - Uzatlm zaman alan varl. 0x8000 - bu bit her zaman ayarldr, btn blok boyutu HEAD_SIZE + PACK_SIZE (ve eer 0x100 biti ayarlysa, art HIGH_PACK_SIZE) HEAD_SIZE 2 bayt PACK_SIZE 4 bayt UNP_SIZE 4 bayt HOST_OS 1 bayt Dosya ad ve aklamas dahil dosya stbilgisi tam boyutu Sktrlm dosya boyutu Sktrlmam dosya boyutu Arivleme iin kullanlan iletim sistemi 0 - MS DOS 1 - OS/2 2 - Win32 3 - Unix 4 - Mac OS 5 - BeOS Dosya CRC'si Standart MS-DOS biiminde tarih ve saat Dosyay kartmak iin gereken RAR srm Srm numaras 10 * Byk srm + kk srm olarak kodlanr. METHOD 1 bayt Paketleme yntemi 0x30 0x31 0x32 0x33 depola en hzl sktrma hzl sktrma normal sktrma

FILE_CRC 4 bayt FTIME 4 bayt UNP_VER 1 bayt

0x34 - iyi sktrma 0x35 - en iyi sktrma NAME_SIZE 2 bayt ATTR 4 bayt Dosya ad boyutu Dosya znitelikleri

HIGH_PACK_SIZE 64 bit deerli sktrlm dosya boyutunun 4 bayt yksek 4 bayt. stee bal deer, sadece HEAD_FLAGS biti 0x100 ise mevcut. HIGH_UNP_SIZE 4 bayt FILE_NAME SALT 8 bayt 64 bit deerli sktrlmam dosya boyutunun yksek 4 bayt. stee bal deer, sadece HEAD_FLAGS biti 0x100 ise mevcut. Dosya ad - string of NAME_SIZE bayt boyut (HEAD_FLAGS & 0x400) != 0 ise mevcuttur.

EXT_TIME (HEAD_FLAGS & 0x1000) != 0 ise mevcuttur. deiken boyut dier yeni alanlar burada grnebilir. ========================================================================== Uygulama notlar ========================================================================== 1. SFX arivi ilemek iin, ariv iinde iaretleyici blou aramay atlamalsnz. SFX modllerinde iaretleyici blok sras (0x52 0x61 0x72 0x21 0x1a 0x07 0x00) bulunmaz. 2. CRC, standart polinom 0xEDB88320 kullanlarak hesaplanr. CRC'nin 4 bayttan az olduu durumlarda, sadece dk sra baytlar kullanlr.

You might also like