Lecture d'un fichier quelconque

Signaler
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Bonjour,

J'aimerais savoir si il est possible de lire les données d'un fichier quelconque lorsqu'on ne connait pas le format du fichier d'origine... Je m'explique :
Est-il possible par exemple de savoir par un programme si le premier objet d'un fichier est codé sur 4 octets, le deuxième n'est que sur 2 octets, et le troisième sur 1 octet, et comme ceci sur toute la longueur du fichier, sans qu'il n'y ait de logique dans le codage des objets. Je ne sais pas si vous avez compris, mais par exemple, avec le notepad windows, on lit un fichier octet par octet. Mais si je veux ouvrir un fichier *.raw par exemple, dans lequel j'ai la suite d'objets suivants : "int""char""double""int""float""char""int"float"char"double""double", etc... (sans logique apparente dans l'apparition de l'objet, c'est a dire que je ne sais pas si il va arriver ensuite un int, un char, un short, etc), je ne peux pas le lire avec des caractères affichables.

En fait, j'aimerais pouvoir lire les données (et donc les afficher par des caractères imprimables) de n'importe quel fichier par un programme qui reconnaitrait de lui même si c'est un double, un short, etc....

Est ce possible si vous avez compris ma question?

JB

20 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
N'a aucun sens, tout fichier n'est qu'une suite d'octets, il faut donc connaitre son format avant pour interpreter ces octets.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Oui, mais alors comment fais t'on par exemple pour "decrypter" un fichier avec un logiciel specialisé, le fichier peut bien être écrit sur un octet, puis deux, puis un, puis 7, etc....
Et pourtant je crois que ce genre de "décrypteur" existe, non?

JB
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Necessite d'avoir, avant, une idee de ce que l'on cherche.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
jb60 > quels genre de logiciels tu fais allusion et que font ils concretement ?
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

En fait, je ne pensais pas à un logiciel en particulier, mais je sais qu'il existe des logiciels capables de décrypter des choses, car on peut très bien connaître la "signification" de n'importe quel fichier crypté par n'importe quel cryptage...
Donc imagine un fichier qui soit crypter simplement en changeant le type d'un char en int, puis en short, etc, et de l'inscrire dans un fichier...
Ce type de cryptage serait'il indécryptable?????

Je ne pense pas, donc on doit pouvoir savoir à l'avance si un le premier item d'un fichier est un octet, le deuxième est "4 octets", etc... sans connaitre à l'avance le format du fichier source (puisqu'on essaye de le décrypter, lol)
Mais peut être que ca ne marche pas du tout comme ça, et que c'est en analysant avec plusieurs combinaisons possibles, et que l'on regarde le résultat, si ca ressemble bien a du texte, ou autre...
Mais dans ces cas là, ça doit prendre vachement de temps à le décrypter ce fichier!!!
:-)

JB
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
peut etre avec des model de proba tres complexe et demeurant incertains (tres meme)

si tu en connais pas la structure, ca ne sera jamais qu'une suite de 0 et de 1
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Mais par exemple, si je vous envoie un fichier, vous pourrez peut etre réussir à savoir qu'est ce qu'il y a dedans, car ce sont des fichiers pour mon travail (chimie), ou on trouve simplement la définition d'un graphique (donc des int ou des float je pense) mais avec une entête qui contient des char (définitions des variables à utiliser comme par exemple, la résolution de l'appareil, la longueur d'onde utilisée, etc...
Je voudrais faire moi même la représentation de ce type de fichier, simplement en reliant des points en fonction d'une abscisse...
Il faut peut être que je regarde le fichier petit à petit, avec le notepad par exemple, que je compte à partir de combien d'octets je devrais avoir une donnée qui n'apparait pas sur le notepad car ca doit être codé sur plus d'un octet. Et me faire un programme qui lit ce type d'entête, mais croyez vous que ce soit possible? ou je me lance dans un truc infaisable?

JB
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
tu veux dire un entete auto descriptif ? oui tu peux faire comme ca
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Oulala, ca a l'air bien embrouillé dans ton esprit.
Renseigne toi un peu plus sur les differentes grandes méthodes de cryptage qui existent.

Comme on te l'a déjà dit, sans structure connue, un fichier ne reste qu'un amas de bit. Les cryptages qui sont attacables sont ceux dont l'algo est connu, biensur un cryptage que tu mettrais au point sans en divulger l'algo serait presque indecryptable sans pour autant forcément être solide.

eRoZion
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

En fait, je voudrais faire comme dans les fichiers bitmap par exemple, au debut de l'entête, on a la string "BMP" (ou un truc dans le genre, je ne me rappeles plus, lol), puis l'offset des données, puis si le fichier est codé en stéréo, etc...
Ce qui correspond à l'entête du fichier.

Mais moi, je ne connais pas l'entête de mon fichier (je pense bien entendu qu'il y en a une pour le type de fichier que je cherche à lire). Donc il va falloir que j'y aille par tatonnement... Mais je me demande si ça va me prendre 5 minutes, ou si ca va me prendre deux ans, lol. Dans ce cas, ce ne serait pas la peine...
Voilà en fait mon problème...
Je ne sais même pas si les données de mon fichier (les points) sont des int, des float, des unsigned, etc... (voir meme autre chose, du genre un entier sur 64 bits ou 128 bits si je cherche la petite bête, lol).
Donc il va vraiment falloir que j'y aille à taton, et je ne sais même pas si je vais réussir.

JB
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

OK eRoZion.
Donc en fait ce que vous me dites, c'est que je ne pourrais jamais retrouver les données qui ont été entrées dans le fichier par un appareillage/programme quelconque sans en connaitre la structure...
C'est pas une bonne nouvelle pour moi, lol, mais je m'en doutait.

Mais donc pour toi eRoZion, donc un cryptage dans le style de ce que j'ai décrit, par exemple, avec une chaine de caractère dont je coderais le premier caractère sur 2 octets, puis le second sur 4, puis le troisième sur 1, etc... serait un cryptage pratiquement indécryptable si je l'utilise a petite échelle (du genre un cryptage entre moi et mon pere, lol) sans divulguer la structure du fichier créé...
Ca par contre, c'est une bonne nouvelle!


JB
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Là t'as pas le choix.

Soit tu trouves la définition de l'entete et l'organisation des octets pour le type de fichier qui t'intéresse...
Soit tu cherche avec un editeur hexadecimal et ta logique.

eRoZion
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Pour ton idée de cryptage, c'est nul.

Un qword ne pourra pas se stoquer sur moins de 64 bits, un dword sur moins de 32, etc... Donc tu perds des données.
Et si tu stoque un char sur un dword, tu aura au moins 75% de 0 et le dword aura la valeur de ton char.

Enfin t'es à côté là question cryptage.
Quite à faire un truc ultra simple, fais un truc genre operateur binaire auto-reversible, le XOR (ou exclusif par exemple).

eRoZion
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Désolé, je te complique la recherche en ne m'appliquant pas.
Je parlais du XOR ("ou exclusif") par exemple.

eRoZion
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Oui, merci, j'avais compris eRoZion,
Je connaissais le XOR, mais en fait, le cryptage ne m'intéresse pas plus que ça en ce moment...
Mais merci quand même à tous pour toutes ces précisions.
@+

JB
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009

Bah c'est quoi ton fichier un ".???"
Puis peut être que sur le net il existe un descriptif de la structure de ton fichier.
Ce fichier c'est toi qui l'invente ou il vient d'une autre application?
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

elipnet,
C'est un fichier qui vient d'un appareil de mesure de diffraction des rayons X, avec sa propre interface le reliant au PC (je ne sais pas quel type de carte est utilisé, mais je pense que ça n'a pas grande importance)...
Puis les données lues par l'ordinateur son entrées dans le fichier que je cherche à lire.
Mais je ne connais donc pas comment ces données sont entrées dans l'ordinateur, dans le fichier.
Voilà, je pense t'avoir donné les précisions que tu cherchais, mais ça ne doit pas beaucoup t' (nous) aider...
Car je ne sais toujours pas comment sont entrées les données, mais peut être que comme tu dis, je pourrais connaître l'architecture du fichier simplement en cherchant une description sur le site de l'éditeur de l'appareil de diffraction des rayons X, mais je ne pense pas que tout soit décrit, car les logiciels de l'éditeur doivent être utilisés. Ils ne pensent certainement pas aux développeurs, et préfèrent certainement vendre leurs propres logiciels.
Mais j'essayerais peut être de trouver des infos sur le net!

JB
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ils ont quoi comme extensions ces fichiers ? ouvre en un avec un hediteur hexa pour voir si il y a d'eventuels flags (au debut), c'est peut etre un format de stockage de données connu
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Bein en fait, ce que je voudrais faire comme petit programme, c'est un éditeur hexadecimal (ou un début d'éditeur hexadecimal, plutot, lol).
Il existe peut être des sources déjà faites mais je voulais essayer tout seul, comme un grand, mdr. Et c'est pas gagné, on dirait...
Je crois que je m'inspirerais peut être un peu d'une source (si il en existe, car j'ai pas encore cherché).

L'extension de mon fichier est .dat

Voilà.
Mais je ne pense ps que ce soit un .dat connu!!!

@+

JB
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
un editeur hexa c'est pas complique a faire, c'est un peu un editeur de texte pour fichier binaire

mais sinon si tu veux extraire correctement les données de ces fichiers, renseigne toi sur le site ( on sai jamais ) pour connaitre la structure