Está en la página 1de 6

k kkkkkkkkkkkkkkkkkkkkRARkversionk3.80k-InformacinkTcnicak kkkkkkkkkkkkkkkkkkkk~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ELkFORMATOkDEkARCHIVOkDESCRITOkAkCONTINUACIONkESkVLIDOkSOLOkPARAkVERSIONES POSTERIORESkAkLAk1.50 k========================================================================== kkkkkkkkkkkkkkkkkkkkkkkkFormatokdekloskficheroskRAR k========================================================================== kkkLoskficheroskestnkconstituidoskporkbloqueskdeklongitudkvariable.kEl ordenkdekestoskbloqueskpuedekvariar,kperokelkprimerkbloquekdebekser siemprekunkbloquekdekidentificacinkseguidokdekunkbloquekdekcabecerakde archivo.

kkkCadakbloquekempiezakconklosksiguienteskcampos: HEAD_CRCkkkkkkk2kbyteskkkkkCRCktotalkokparcialkdelkbloque HEAD_TYPEkkkkkk1kbytekkkkkkTipokdekbloque HEAD_FLAGSkkkkk2kbyteskkkkkIndicacioneskdelkbloque HEAD_SIZEkkkkkk2kbyteskkkkkTamaokdelkbloque ADD_SIZEkkkkkkk4kbyteskkkkkTamaokdelkcampokadicionalk-ktamaokaadidokdelkbloquek kkkElkcampokADD_SIZEkslokestkpresenteksik(HEAD_FLAGSk&k0x8000)k!=k0 kkkElktamaoktotalkdelkbloquekeskHEAD_SIZEksik(HEAD_FLAGSk&k0x8000)k==k0 ykHEAD_SIZE+ADD_SIZEksikelkcampokADD_SIZEkestkpresentek-kcuando (HEAD_FLAGSk&k0x8000)k!=k0. kkkEnkcadakbloqueklosksiguienteskbitskenkHEAD_FLAGSktienenkelkmismo significado: kk0x4000k-kSikestkactivado,kantiguaskversioneskdekRARkignorarnkel kkkbloquekyklokborrarnkcuandokelkarchivokseakactualizado. kkkSikestkakcero,kelkbloquekeskcopiadokalknuevokarchivo kkkcuandokelkarchivokeskactualizado. kk0x8000k-kSikestactivado,kelkcampokADD_SIZEkestpresentekykel kkktamaoktotalkdelkbloquekeskHEAD_SIZE+ADD_SIZE. kkTiposkvlidoskdekbloques: HEAD_TYPE=0x72kkkkkkkkkkbloquekdekidentificacin HEAD_TYPE=0x73kkkkkkkkkkcabecerakdekarchivo HEAD_TYPE=0x74kkkkkkkkkkcabecerakdekfichero HEAD_TYPE=0x75kkkkkkkkkkestilokantiguokcabecerakdekcomentario HEAD_TYPE=0x76kkkkkkkkkkestilokantiguokinformacinkdekautenticidad HEAD_TYPE=0x77kkkkkkkkkkestilokantiguoksub-bloque HEAD_TYPE=0x78kkkkkkkkkkestilokantiguokrecuperacinkdekregistro HEAD_TYPE=0x79kkkkkkkkkkestilokantiguokinformacinkdekautenticidad HEAD_TYPE=0x7akkkkkkkkkksub-bloque kkkElkbloquekdekcomentariokeskusadokactualmentekslokdentrokdekotros bloqueskyknokexistekporkseparado. kkkElkprocesokdelkficheroksekrealizakdeklaksiguientekforma:

1.kLeerkykcomprobarkbloquekdekidentificacin 2.kLeerkcabecerakdekarchivo 3.kLeerkukomitirkHEAD_SIZE-ktamaokde(MAIN_HEAD)kbytes 4.kSiksekllegkalkfinalkdelkarchivokentonceskacabarkelkproceso kkkdelkarchivo,ksino,kleerk7kbyteskenkloskcamposkHEAD_CRC, kkkHEAD_TYPE,kHEAD_FLAGS,kHEAD_SIZE. 5.kComprobarkHEAD_TYPE. kkk ksikHEAD_TYPE==0x74 kkkleerkcabecerakdekficherok(loskprimerosk7kbyteskyakhanksidokledos) kkkleerkukomitirkHEAD_SIZE-ktamaokde(FILE_HEAD)kbytes kkkkkkkkkkksik(HEAD_FLAGSk&k0x100) kkkleerkukomitirkHIGH_PACK_SIZE*0x100000000+PACK_SIZEkbytes ksino kkkkkkkkkkkleerkukomitirkPACK_SIZEkbytes kkkkkkkkksino kkkleerkelkcorrespondientekbloquekHEAD_TYPE: kkkkkleerkHEAD_SIZE-7kbytes kkkkksik(HEAD_FLAGSk&k0x8000) kkkkkkkleerkADD_SIZEkbytes 6.kirkalkpuntok4. k========================================================================== kkkkkkkkkkkkkkkkkkkkkkkkkFormatokdekloskbloques k========================================================================== kkkBloquekdekidentificacink(kMARK_HEADk) HEAD_CRCkkkkkkkkSiemprek0x6152 2kbytes HEAD_TYPEkkkkkkkTipokdekbloque:k0x72 1kbyte HEAD_FLAGSkkkkkkSiemprek0x1a21 2kbytes HEAD_SIZEkkkkkkkTamaokdelkbloquek=k0x0007 2kbytes kkkElkbloquekdekidentificacinkeskactualmentekconsideradokcomokuna secuenciakfijakdekbytes:k0x52k0x61k0x72k0x21k0x1ak0x07k0x00

kkkCabecerakdekarchivok(kMAIN_HEADk) HEAD_CRCkkkkkkkkCRCkdekloskcamposkHEAD_TYPEkakRESERVED2 2kbytes HEAD_TYPEkkkkkkkTipokdekbloque:k0x73 1kbyte HEAD_FLAGSkkkkkkPequeaskindicaciones: 2kbytes 0x0001kkkk-kAtributokdekarchivokmulti-volumen 0x0002kkkk-kComentariokdekarchivokpresente kkkkkkkkkkkkkkkkkkkkkkkkkkkkRARk3.xkusakelkbloqueokseparadokdelkcomentario kkkkkkkkkkkkkkkkkkkkkkkkkkkkyknokestablecekestakindicacin.kk

kkkkkkkkkkkkkkkkkkkkkkkkkkk 0x0004kkkk-kAtributokdekbloqueokdelkarchivo 0x0008kkkk-kAtributokdekarchivokslido 0x0010kkkk-kNombrarknuevokesquemakdekvolumenk('volname.partN.rar ') 0x0020kkkk-kInformacinkdekautenticidadkpresente kkkkkkkkkkkkkkkkkkkkkkkkkkkkRARk3.xknokestablecekestakindicacin. kkkkkkkkkkkkkkkk0x0040kkkk-kRegistrokdekrecuperacinkpresentekkkk kkkkkkkkkkkkkkkk0x0080kkkk-kCabeceraskdekbloqueksonkcodificadas kkkkkkkkkkkkkkkk0x0100kkkk-kPrimerkvolumenk(slokestablecidokenkRARk3.0kykposterio res) kkkkkkkkkkkkkkkkloskdemskbitskdekHEAD_FLAGSkestnkreservadoskparakusokinterno. HEAD_SIZEkkkkkkkTamaoktotalkdeklakcabecerakdelkbloquekincluyendokcomentarioskdel 2kbyteskkkkkkkkkarchivo RESERVED1kkkkkkkReservado 2kbytes RESERVED2kkkkkkkReservado 4kbytes

kkkCabecerakdekficherok(Ficherokenkelkarchivo) HEAD_CRCkkkkkkkkCRCkdekloskcamposkdesdekHEAD_TYPEkakFILEATTR 2kbyteskkkkkkkkkykelknombrekdelkfichero HEAD_TYPEkkkkkkkTipokdekbloque:k0x74 1kbyte HEAD_FLAGSkkkkkkPequeaskindicaciones: 2kbytes 0x01k-kElkficherokcontinakdelkvolumenkanterior 0x02k-kElkficherokcontinakenkelksiguientekvolumen 0x04k-kFicherokprotegidokconkcontrasea 0x08k-kComentariokdekficherokpresente kkkkkkkkkkkkkkkkkkkkkkkRARk3.xkusakelkbloqueokseparadokdelkcomentario kkkkkkkkkkkkkkkkkkkkkkkyknokestablecekestakindicacin.kk 0x10k-kSekusakinformacinkdelkficherokanterior kkkkkkk(indicadorkdekarchivokslido),kparakRAR kkkkkkk2.00kykposteriores Bitsk7k6k5k(RARk2.0kykposteriores) kkkkk0k0k0kk-kdiccionariokdekkk64kKb kkkkk0k0k1kk-kdiccionariokdekk128kKb kkkkk0k1k0kk-kdiccionariokdekk256kKb kkkkk0k1k1kk-kdiccionariokdekk512kKb kkkkk1k0k0kk-kdiccionariokdek1024kKb kkkkk1k0k1kk-kdiccionariokdek2048kKB kkkkk1k1k0kk-kdiccionariokdek4096kKB kkkkk1k1k1kk-kelkficherokeskunkdirectorio

kkkkkkkkkkkkkkk0x100k-kCamposkHIGH_PACK_SIZEkykHIGH_UNP_SIZE kkkkkkkkkkkkkkkkkkkkkkkestnkpresentes.kEstoskcamposksonkslokusadoskporkelk kkkkkkkkkkkkkkkkkkkkkkkarchivokparakficheroskenormesk(mskgrandeskdek2Gb), kkkkkkkkkkkkkkkkkkkkkkkparakficheroskpequeoskestoskcamposkestnkausentes. kkkkkkkkkkkkkkk0x200k-kFILE_NAMEkcontienekambosknombres,kelkUnicodekhabitualk kkkkkkkkkkkkkkkkkkkkkkkykelkcodificado,kseparadoskporkunkcero.kEnkestekcasoksi kkkkkkkkkkkkkkkkkkkkkkkelkcampokNAME_SIZEkeskigualkaklaklongitudkhabitualkel kkkkkkkkkkkkkkkkkkkkkkknombrekmskelknombrekcodificadokUnicodekmsk1 kkkkkkkkkkkkkkkkkkkkkkkSikestakindicacinkestkpresente,kperokFILE_NAMEk kkkkkkkkkkkkkkkkkkkkkkkdifierekdekcerokbytes,kQuierekdecirkquekelknombrek kkkkkkkkkkkkkkkkkkkkkkkdelkficherokestkcodificadokusandokUTF-8. kkkkkkkkkkkkkkk0x400k-kLakcabecerakcontienek8kbyteskadicionaleskdespuskdel kkkkkkkkkkkkkkkkkkkkkkknombrekdelkfichero,kcuandokeskrequeridokparakincrementar kkkkkkkkkkkkkkkkkkkkkkklakseguridadkdekcodificacink(tambinkllamadok'salt'). kkkkkkkkkkkkkkk0x800k-kIndicacinkdekversin.kSikeskficherokdekunakantiguakversin, kkkkkkkkkkkkkkkkkkkkkkksekaadekalkficherokunknmerokdekversinkllamadok';n'. kkkkkkkkkkkkkk0x1000k-kcampokdekextensinkdektiempokpresente. kkkkkkkkkkkkkk0x8000k-kestekbitksiemprekeskdeterminado,kdebidokakquekelktamao kkkkkkktotalkdelkbloquekeskHEAD_SIZEk+kPACK_SIZE kkkkkkkkkkkkkkkkkkkkkkk(ykmskHIGH_PACK_SIZE,ksikbitk0x100kestkdeterminado)kkkk HEAD_SIZEkkkkkkkTamaoktotalkdelkbloquekincluyendokelknombrekdel 2kbyteskkkkkkkkkficherokykcomentarios. PACK_SIZEkkkkkkkTamaokdelkficherokcomprimido 4kbytes UNP_SIZEkkkkkkkkTamaokdelkficheroksinkcomprimir 4kbytes HOST_OSkkkkkkkkkSistemakoperativokusadokparakcomprimirkelkarchivo 1kbytekkkkkkkkkkkkkkkk0k-kMSkDOS kkkkkk1k-kOS/2 kkkkkk2k-kWin32 kkkkkk3k-kUnix kkkkkkkkkkkkkkkkkkkkkk4k-kMackOS kkkkkkkkkkkkkkkkkkkkkk5k-kBeOS FILE_CRCkkkkkkkkCRCkdelkfichero 4kbytes FTIMEkkkkkkkkkkkFechakykhorakenkformatokestndarkMSkDOS 4kbytes Bits 0-4 5-10 11-15 16-20 21-24 25-31 Descripcin Segundoskdivididoskpork2 Minutosk(0-59) Horak(0-23) Diakdelkmesk(1-31) Mesk(1=Enero,k...) Aosktranscurridoskdesdek1980

UNP_VERkkkkkkkkkVersinkdekRARknecesariakparakextraerkelkfichero 1kbyte kkkkkkkkkkkkkkkkLakversinknecesariakparaklakextraccinkestcodificada kkkkkkkkkkkkkkkkcomok10k*kversinkmayork+kversinkmenor. METHODkkkkkkkkkkMtodokdekcompresin 1kbyte kkkkkkkkkkkkkkkk0x30k-ksinkcomprimir kkkkkkkkkkkkkkkk0x31k-kcompresinkmuykrpida kkkkkkkkkkkkkkkk0x32k-kcompresinkrpida kkkkkkkkkkkkkkkk0x33k-kcompresinknormal kkkkkkkkkkkkkkkk0x34k-kbuenakcompresin kkkkkkkkkkkkkkkk0x35k-klakmejorkcompresin NAME_SIZEkkkkkkkTamaokdelknombrekdekfichero 2kbytes ATTRkkkkkkkkkkkkAtributoskdelkfichero 4kbytes HIGH_PACK_SIZEkkValorkdektamaok64kbitskparakficherokcomprimidokmayorkdek4kbytes. 4kbyteskkkkkkkkkValorkopcional,kpresenteksloksikbitk0x100kenkHEAD_FLAGSkest kkkkkkkkkkkkkkkkdeterminado. HIGH_UNP_SIZEkkkValorkdektamaok64kbitskparakficherokdescomprimidokmayorkdek4kbyte s. 4kbyteskkkkkkkkkValorkopcional,kpresenteksloksikbitk0x100kenkHEAD_FLAGSkest kkkkkkkkkkkkkkkkdeterminado. FILE_NAMEkkkkkkkNombrekdelkficherok-kcadenakdeklongitudkNAME_SIZEkbytes SALTkkkkkkkkkkkkpresenteksik(HEAD_FLAGSk&k0x400)k!=k0 8kbyteskkkkkkkkk EXT_TIMEkkkkkkkkpresenteksik(HEAD_FLAGSk&k0x1000)k!=k0 tamaokvariable kkotrosknuevoskcamposksekpuedenkaadirkaqu. k========================================================================== kkkkkkkkkkkkkkkkkkkkkkkkNotaskparakaplicaciones k========================================================================== kk kkk1.kParakprocesarkarchivoskSFXkesknecesariokomitirkelkmdulokSFX, kkkkkkbuscandokelkbloquekdekidentificacinkenkelkarchivo.kNokhaykninguna kkkkkksecuenciakdekidentificacink(0x52k0x61k0x72k0x21k0x1ak0x07k0x00)ken kkkkkkelkmdulokSFX. kkk2.kElkCRCksekcalculakusandokelkpolinomiokestndark0xEDB88320.kEnkel kkkkkkcasokdekquekelktamaokdelkCRCkseakmenorkdek4kbytes,kslokloskbytes kkkkkkdekordenkmskbajoksernkusados.kk kk

También podría gustarte