Jump to content

[LOGICIEL] Fichier rar : extraire fragment d'un fichier


Yangzebul

Recommended Posts

Voilà, je vous explique théorise le problème.

Je possède un fichier rar de disons 2 Go, qui contient un seul et même fichier.

Ce rar est incomplet, il lui manque une vingtaine de Mo vers la moitié. Il m'est donc impossible d'extraire plus de la moitié du fichier.

Hors j'ai réussi à obtenir les fragment manquants du fichier non compressé via une autre source.

La question à cent millions de smileys est donc comment forcer l'extraction complète du fichier sans qu'il s'arrête aux blocs manquants pour ensuite reconstituer l'intéralité de celui-ci via un éditeur hexa.

Si quelqu'un pouvait m'aider... :transpi:

PS: la récompense de cent millions de smileys peut être retiré au choix en " :smack:" ou en " :D " selon vos préférences.

Link to comment
Share on other sites

On peu prendre le problème par l'autre bout:

- Je commence l'extraction jusqu'au secteur manquant

- Arrivé là, je colle la partie manquante que j'ai en version non compressé

Et là la question devient: "Comment reprendre l'extraction à un point X ?"

sans indiscretion, c'est quoi ce fichier rar de 2go ?

C'est juste un exemple théorique :yes:

Tu as juste les fragments manquants ou alors tu sais que les fragments manquants sont dans ce que tu as reçu ?

Sinon, essaie de recompresser ce que tu peux extraire + les bouts manquants et compare à ton archive incomplète ...

J'ai une archive compressé avec des secteurs manquant (dont je connais l'offset de départ et la taille précise) et ces même secteurs précis décompressé.

Sinon j'ai pensé bien pensé à recompresser les secteurs que j'ai en non compressé pour les réinjecter dans l'archive mais il me semble que les archiver rar tout comme les zip sont basés sur un algorythme de type huffman qui crée un arbre selon les combinaisons qui reviennent le plus souvent dans les données à compresser. Donc je ne pourrais jamais obtenir le même résultat à partir d'un fragment isolé... enfin je pense. :transpi:

Link to comment
Share on other sites

:francais::ouioui::roll:

J'ai trouvé !!! C'est graçe à toi fabien29200 !

Il ne me semble pas qu'il soit possible de réintroduire des secteurs que j'aurai compressé indépendement, mais à tout hasard j'ai quand même fait quelques tests avec un fichier de 1 Mo à différents taux de compression que j'ai compéré avec un éditeur hexa. Et bien quand on choisis le taux de compression "archivage" les données ne sont pas compressées, on leur rajoute juste un header de fichier rar et quelques métadonnées.

Hors l'archive que je dois récuperer à bien été compressée au taux "archivage" ! Je peux donc réinjecter les données dans l'archive de départ.

Choisit ta récompense: " :yes: " ou " :francais: " à moins que tu ne préferes " :yes: " ?

Link to comment
Share on other sites

et tu as reussi a bien decompresser ton fichier en entier ?

Pour l'instant j'ai un peu de mal car ma dernière archive est dans un cache crypté et ça bloque toujours au même endroit (et oui je fais pas les choses simplement). Mais sinon ça marche !

Pour ceux que ça intéresse voici les données de la fin d'un rar multipart si jamais vous en avez un à reconstituer un jour:

XXXX 7B0F 4014 00YY YYYY YY00 0000 0000 0000 0000

où XXXX est: totalement inconnu, ce n'a pas l'air d'avoir un rapport avec le nom de fichier, la taille, la date de création, le nombre de part ou la version du logiciel de compression... Je cherche encore, mais de toute facon cela n'a pas d'incidence sur la décompression.

YY YYYY YY est: le crc32 du header + du fichier codé en Little Endian, si vous devez reconstituez la fin du fichier corrigez bien cette partie sinon l'archive se diagnostiquera comme corrompue et ne se décompressera pas !!!

Si vous avez une quelconque idée de ce que pourrait être XXXX je suis preneur.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...