Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lecture de fichier sur un format RAW C++

25 juillet 2019 à 16:26:31

Bonjour,

Depuis quelque temps j'ai un problème avec un disque dur et une clé USB. Ceux-ci sont en format RAW et donc par conséquent, je ne peux pas les lire avec mon ordinateur et donc pas récupérer ce qu'il y a dessus. Alors je me suis dis, au lieu de chercher un programme déjà tout fait qui me permettrait de lire et récupérer les fichiers, je pourrais le faire moi même.

Mais malheureusement, je ne vois pas comment faire. Dans un premier temps pour lire les fichiers qui se trouve dans mon disque dur ou clé USB en format RAW, car je suppose que la méthode est différente d'une lecture classique.

Je viens donc vers vous pour un petit coup de pouce, merci d'avance !

  • Partager sur Facebook
  • Partager sur Twitter
26 juillet 2019 à 18:41:50

Comme ce sont des données brut , tu ne peux pas savoir 'comment les lire' ( si dans ta clé c'est un video , un texte , un pdf , un executable .. tu ne le sais pas ).
Il faut que tu lise les données en binary et que tu tente d'y trouver des informations ( par exemple un entete de fichier ) ..
Au fur et a mesure de l'analyse des données binaires , tu pourra commencer a voir ce qui s'y trouve et les séparer en morceaux ..
A la fin , a force que recuperer chacun des morceau tu pourra : soit deviner le type de fichier que tu tente de lire , et donc adapter ta lecture pour ce type de données , soit voir un shema de données et les lire selon ce shema ..
  • Partager sur Facebook
  • Partager sur Twitter
26 juillet 2019 à 19:28:25

Zérotisme a écrit:

Comme ce sont des données brut , tu ne peux pas savoir 'comment les lire' ( si dans ta clé c'est un video , un texte , un pdf , un executable .. tu ne le sais pas ).
Il faut que tu lise les données en binary et que tu tente d'y trouver des informations ( par exemple un entete de fichier ) ..
Au fur et a mesure de l'analyse des données binaires , tu pourra commencer a voir ce qui s'y trouve et les séparer en morceaux ..
A la fin , a force que recuperer chacun des morceau tu pourra : soit deviner le type de fichier que tu tente de lire , et donc adapter ta lecture pour ce type de données , soit voir un shema de données et les lire selon ce shema ..

Pire que ça, un lecteur est souvent fragmenté, ça veut dire que chaque fichier peut être découpé en morceaux et pas contiguë sur le disque. Si tu perds la table d'allocation (FAT, FAT32 ou NTFS ou autre), c'est très complexe.

Mais tu as des outils comme PC Inspector file recovery par exemple qui essaient de retrouver des fichiers, même après un éventuel formatage ou après avoir effacé des fichiers. Si c'est ça que tu veux reprogrammer, ça me semble complexe (mais intéressant).

Après, en général, ils retrouvent plein de fichiers, mais pas tous, et la probabilité d'en retrouver diminue fortement si d'autres choses ont été réécrites depuis la perte des donnéees.

  • Partager sur Facebook
  • Partager sur Twitter

Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

30 juillet 2019 à 14:29:40

D'accord merci, pas tout à fait comme PC Inspector File Recovery mais ça reste dans l'idée en effet.

Donc il faut que j'arrive à trouver des entêtes dans les différents fichiers ou autre indice ? Parce qu'à la base j'avais pensé simplement chercher avec les extensions des différents fichiers mais du coup je suppose que ça ne fonctionnerait pas ?

Je vais creuser dans ce que vous m'avez dit et voir comment je vais m'y prendre. Merci beaucoup pour cette orientation :)
  • Partager sur Facebook
  • Partager sur Twitter
31 juillet 2019 à 15:32:25

GaelMontmea a écrit:

D'accord merci, pas tout à fait comme PC Inspector File Recovery mais ça reste dans l'idée en effet.

Donc il faut que j'arrive à trouver des entêtes dans les différents fichiers ou autre indice ? Parce qu'à la base j'avais pensé simplement chercher avec les extensions des différents fichiers mais du coup je suppose que ça ne fonctionnerait pas ?

Je vais creuser dans ce que vous m'avez dit et voir comment je vais m'y prendre. Merci beaucoup pour cette orientation :)


Il doit bien y avoir un code d'extension quelque part dans les données. Dans l'entête par exemple. Si tu reussi a trouver cette information rapidement il te sera plus facile par la suite d'analyser le reste des données.
  • Partager sur Facebook
  • Partager sur Twitter
31 juillet 2019 à 17:56:58

D'accord, je pensais simplement avec la lecture du nom du fichier mais bon. Donc je dois convertir mes différents fichiers en binaire et puis trouver à un endroit le type du fichier. Et bien c'est partie alors, je pense que j'ai du pain sur la planche là de toute façon ! ^^

Faut juste que je trouve s'il n'y a pas répertorié quelque part sur internet les différents entête que je pourrais éventuellement rencontrer.
  • Partager sur Facebook
  • Partager sur Twitter
31 juillet 2019 à 19:11:09

Je ne suis pas sur de pouvoir t'aider, déjà je ne comprends pas bien ton problème !

GaelMontmea a écrit:

...Depuis quelque temps j'ai un problème avec un disque dur et une clé USB. Ceux-ci sont en format RAW et donc par conséquent, je ne peux pas les lire avec mon ordinateur et donc pas récupérer ce qu'il y a dessus. ...

Que veux-tu dire par un "DD au format RAW " ? Ce sont les fichiers dessus qui ont une extension RAW, ou alors c'est la partition de ton DD qui est cassée ?

Si c'est la partition qu'est cassée, il faut voir si tu trouve un utilitaire de réparation (C'est quoi ton OS ?) Et si ce sont des fichiers photo qui sont au format RAW, il doit bien y avoir un utilitaire de développement (Darktable, RawTherapee, ...) pour les mettre en PDF ?

Enfin, je suis peut-être à coté de la plaque .... mais j'espère faire avancer le schmilblick ...

  • Partager sur Facebook
  • Partager sur Twitter
1 août 2019 à 9:36:22

Dedeun a écrit:

Je ne suis pas sur de pouvoir t'aider, déjà je ne comprends pas bien ton problème !

GaelMontmea a écrit:

...Depuis quelque temps j'ai un problème avec un disque dur et une clé USB. Ceux-ci sont en format RAW et donc par conséquent, je ne peux pas les lire avec mon ordinateur et donc pas récupérer ce qu'il y a dessus. ...

Que veux-tu dire par un "DD au format RAW " ? Ce sont les fichiers dessus qui ont une extension RAW, ou alors c'est la partition de ton DD qui est cassée ?

Si c'est la partition qu'est cassée, il faut voir si tu trouve un utilitaire de réparation (C'est quoi ton OS ?) Et si ce sont des fichiers photo qui sont au format RAW, il doit bien y avoir un utilitaire de développement (Darktable, RawTherapee, ...) pour les mettre en PDF ?

Enfin, je suis peut-être à coté de la plaque .... mais j'espère faire avancer le schmilblick ...


Bonjour, alors quand dis "DD au format RAW" je parle bien de mon disque dur en lui même. Windows m'interdit de le lire car celui-ci est en format RAW. Les fichiers je ne pense pas qu'ils aient changés (Mais je n'ai pas pu vérifier car je n'y ai pas accès).

Mon OS c'est W8 ou W10 (ce n'est pas sur mon ordi donc je ne sais pas trop) mais normalement ce n'ai pas censé influé.

Après mon but en faite c'est d'analyser tout le disque dur et de le copier coller sur le PC pour récupérer les données et puis le formater par la suite pour rendre le DD de nouveau utilisable. En espérant que mon problème soit plus clair du coup ^^
  • Partager sur Facebook
  • Partager sur Twitter
1 août 2019 à 19:59:29

Bonjour GaelMontmea,

Je comprends de ta réponse que c'est la format de ton disque dur qui est corrompue (ce que je traduits par "la partition de ton DD qui est cassé").

Comme tu le sais peut-être, un disque dure est une succession de secteur, les un à la suite des autres. Il faut lui donné une structure pour pouvoir dire que certaines données appartiennent à un fichier, de donner un nom à ce fichier, de mettre ce fichier dans une arborescence, tout en permettant de pouvoir lire, écrire (augmenter sa taille), ... Ce format/structure de donnée, c'est ce que j'appelle le "File System type". Il est courant sur un MS Windows, d'avoir des DD au format NTFS, et des clef USB au format FAT32 (Mais bien sûr il y a d'autre format). Ces formats permettent en enchaînant les données/pointeurs/descripteurs de décrire des fichiers, des arborescences et des données dans les fichiers.

Je comprends de ce que tu me décrits, que sur ton DD ou ta clef USB cette structure n'est plus intègre, donc ton ordinateur ne retrouve plus ses petits !

Il doit y avoir des utilitaires qui te permette de deviner la structure du DD/Clef USB et te proposer de les réparer ( des truc du style "SOSDiskDur" ou équivalent!, je n'ai pas cherché, je te laisse faire, ici ont parle développement, pas maintenance de PC ! et comme je n'y connaît rien!)

Maintenant, bien sûr, tu peux te faire un logiciel qui fasse la même chose ... Mais c'est pas simple ! Un logiciel qui lit le format brut d'un disque dur, et fournit les fichiers ça d’appel un "File System". Dans une vie antérieure (Il y a longtemps, bien longtemps, quand j’étais encore un jeune développeur, plein de fouge, près à tout, ...) nous avons développé au boulot un "file system" compatible FAT16 (le petit frère de FAT32) pour de l'embarqué. On y avait passé plusieurs mois à deux (3? 4 mois ? Plus ?) pour avoir quelque chose de fiable et robuste ...

Mais bien sûr, ce n'est que mon expérience ... Je te laisse te renseigner ... et décider.
  • Partager sur Facebook
  • Partager sur Twitter
2 août 2019 à 9:18:48

Oui c'est totalement ça, c'est la partition de mon DD qui est cassé.

Je vais voir du côté de SOSDiskdur, voir un petit peu ce que ça fait car je ne connais pas. Je vais chercher oui :)

Ha oui, donc si je comprend bien, j'en ai pour un petit moment à refaire un file system ^^' après je ne suis pas pressé pour refaire ça de toute façon. Mais ça m'a l'air très intéressant !

Après je pense les récupérer les données avec un autre logiciel dans un premier temps, puis je ferais mon propre programme.

En tout cas merci, j'ai plusieurs choses à creuser, entre les file system ou bien comme on m'a dit au début, convertir les fichier en binaire pour trouver leur format et les traiter pour les récupérer. J'ai du boulot là ! :)

  • Partager sur Facebook
  • Partager sur Twitter
2 août 2019 à 10:02:17

Salut,

Il me reste un point d'ombre sur ton topic.

Ta motivation c'est de récupérer des données que tu as perdu ? Et les logiciels comme FileSystem ou Recovery ou autre ne te donnent pas satisfaction donc tu penses qu'en programmant toi même ce sera mieux ?

Ou bien c'est juste pour le fun, juste pour décoder toi même le système de partition ? 

Si c'est le cas 1, tu ne feras probablement pas mieux que les logiciels pro. Si ces logiciels ne te retrouvent pas tes données, tu peux oublier tes fichiers, fait ton deuil.

Si c'est le cas 2, je ne te conseille pas de partir d'un disque qui a déjà plein de plein de choses dessus, surement déjà très fragmenté. Prend toi une clé usb, formate la, copie un fichier simple dessus (ou tu sais exactement ce qu'il y a dedans), efface le fichier, et tente de lire en RAW : tu sais ainsi ce que tu cherches, tu avanceras mieux avec un exemple simple.

Dans mon métier, je lis ou j'écris des fichiers 3D dans différents formats... Quand je débute un nouveau format, je commence toujours par un fichier très simple, jamais par un gros truc complexe. C'est comme ça qu'on avance.

-
Edité par Fvirtman 2 août 2019 à 10:03:36

  • Partager sur Facebook
  • Partager sur Twitter

Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

2 août 2019 à 10:41:27

Bonjour,

Oui je veux récupérer les différents fichiers qui se trouvent dans mon DD.

Oula non, je n'ai pas la prétention de faire mieux loin de là ^^ je veux simplement découvrir comment faire, et réussir un faire un programme, pas aussi propre que les deux cités, mais qui néanmoins fonctionne pour récupérer des données.

Oui, avant de me lancer dans plus gros, j'ai justement formater ma clé USB en RAW. Donc je peux tester sans prendre de risque.

  • Partager sur Facebook
  • Partager sur Twitter
2 août 2019 à 18:29:34

Oups!

GaelMontmea a écrit:

... Je vais voir du côté de SOSDiskdur, voir un petit peu ce que ça fait car je ne connais pas. ...

Le nom est fantaisiste ... Je voulais dire "un logiciel de récupération de disque dur, qu'on utilise quand ça fait X mois qu'on n'a pas fait de sauvegarde, que le disque viens de crashé et que l'on se précipite sur internet pour trouver le soft miracle qui va tout récupérer en théorie, mais en pratique qui ne fonctionne pas". Je ne fait pas de maintenance sur PC, c'est pas mon monde, je ne connais pas d'utilitaire ...

Fvirtman te parle de "Recovery", "FileSystem" ... qui eux sont eux des utilitaire réels. Cherche plutôt de ce coté là. ...

Désolé de t'avoir laissé croire que "Super SOSDisqueDur double Plus" était la solution à ton problème .  :)

edit: Re Oups!

Ce nom existe bien! C'est une société de récupération de disque dur cassé (ouverture en salle blanche, ...) ! Mais ça n'a rien à voir avec le pb !

Désoler pour l’embrouille ! :o

-
Edité par Dedeun 2 août 2019 à 18:56:41

  • Partager sur Facebook
  • Partager sur Twitter
5 août 2019 à 9:32:19

Haha, oui j'avoue que j'y ai cru, le nom paraissait totalement probable ^^

Mais donc oui je vais voir plutôt du côté de Recovery et FileSystem.

Haha oui j'ai vu l'entreprise sur internet mais en effet, pas vraiment en lien avec mon problème :)

Mais donc merci pour l'aide, maintenant il va falloir que je passe au moment où il faut coder la chose :)

  • Partager sur Facebook
  • Partager sur Twitter