Detection fichier binaire néfaste

Fermé
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 5 août 2009 à 08:39
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 5 août 2009 à 15:39
Bonjour,
voilà, je suis sous Redhat, et j'ai un jolie fichier texte (toto.cc) et kate me le détecte en, fichier binaire.
Pourtant c'est un bon fichier source tout ce qu'il y a de plus classique.
Comment changer ce type de détection ?
merci pour l'aide.
A voir également:

14 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 08:47
Salut,

Je ne connais pas Kate, mais peut être qu'il ne reconnaît pas l'extension .cc.
Si tu mets .c, ça donne quoi?
Et même s'il le decte comme binaire, il l'ouvre quand même?!!
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 août 2009 à 08:52
Non, ce n'est pas ça, car j'ouvre sans souci les autres fichier .cc.
même file me sort comme type "data" alors qu'il sort un type correct pour les autres .cc.
Le problème c'est qu'il l'ouvre mais qu'il ne veux pas que je l'enregistre, car sinon ça ferai un fichier corrompu pattati pattata.
Merci, de ta réponse, mais ce n'est malheureusement pas aussi simple.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 août 2009 à 08:56
Salut,

Est-ce qu'avec un :
cat toto.cc
l'affichage est correct ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 09:09
Re,

Que te dit la commande?
file toto.cc
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 août 2009 à 09:10
Salut,

Extrait du #2 :
même file me sort comme type "data" alors qu'il sort un type correct pour les autres .cc.

;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
5 août 2009 à 09:12
Salut,

Je n'ai pas vu celui là ;-), j'ai vu ta réponse seulement ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 09:13
Re,

Tu pourras affiche le contenu.
Peut être qu'à cause d'un caractère au début de fichier le fichier n'est pas reconnu correctement.

Peut être un cat -A sur le fichier.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 août 2009 à 09:41
Merci, mais non, pas de problème en début de fichier...
dans le cat -A, j'ai vu de "^I" qui doivent correspondre au tabulations et de $ qui correspondent aux fin de ligne.
quelques "^@" que j'ai alors supprimé.
Le fichier faisant pas loin de 1000 lignes, il n'est pas facile de détecter des erreurs.
Néanmoins, le souci semblait bien venir de ces "^@". C'est caractère sont apparau à la place de "é" ou de "à" dans le texte.
Il n'y a pas un petit programme qui pourrai nétoyé tout ça ?
Merci.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 09:45
Salut,

Ben, je pense que tu peux déjà depister le code des caractères et faire le néttoyage soir avec sed soit avec perl
Normalement il suffira une ligne de commande.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 09:49
Re,

Prends juste quelques lignes de ton fichier et exécute cette commande
perl -ne 's/(.)/ord($1)/eg;print "$_\n"' quelque_lignes.cc

0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
5 août 2009 à 09:51
hello
file ne teste que le début du fichier selon /etc/magic ou /usr/share/file/magic
que dit
od -c toto.cc|head
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 10:01
Salut,

file ne teste que le début du fichier selon /etc/magic ou /usr/share/file/magic
Justement, le fait d'voir "data" comme résultat m'a fait penser qu'il y a un problème au début de fichier (voir message 7 ;-)
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 août 2009 à 10:18
étonnement les caractères qui posaient problème n'étaient pas au début mais assez loin.
od affiche des caractères classiques.
Merci pour la commande perl, mais à part afficher un grand nombre de caractère, ça fait quoi ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 10:23
Re,

Ben, en fait le fichier sera transformer en code ASCII
C'est une commande d'analyse et pas de modification.
Faire la commande sur une ligne qui contient les caractères bizarre, nous permettra de depister la(les) séquences de codes (à savoir que tu dois normalement avoir le caractère sur au moins 2 octets)

Une fois le code depister on pourra efectuer un s/// en utilisant des caractères en hexa
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 août 2009 à 10:47
la séquence qui pose problème semble être plein de 0 (3 en hexadécimal, soit trois caractère à 0).
j'ai repéré avec hexdump. Le code perl donne pareil.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 août 2009 à 14:20
Re-

Extrait du man file :
       -r, --raw
               Don't  translate  unprintable  characters to \ooo.
               Normally file translates unprintable characters to
               their octal representation.
A suivre...
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
5 août 2009 à 15:20
Ok, mais je n'ai pas utilisé file...
maintenant, il faut trouver comment virer ces trucs.PS : je ne connais file que depuis aujourd'hui, et je m'en sert juste en tant qu'affichage. Pour une fois je trouve que le man est mal fait.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023
5 août 2009 à 15:22
Re,

Ben, laissons la théorie et passons à la pratique ;-)
Si ton fichier n'est pas confidentiel, compresse le et mets le sur cjoint, je vais regarder ce soir quand j'arrive à la maison si entre temps tu n'auras pas une solution.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
5 août 2009 à 15:32
Ba en fait, la solution pour ce fichier là, je l'ai trouvé : supprimer à la main les caractères à la con (il y avai 3 séquences dans tout le fichier). Ensuite, le fichier est plutôt confidentiel :-(.
En fait, ce que je cherchais, c'est un automatisme pour traiter l'ensemble des fichiers du programme (1500) afin que le problème se reproduise le moins possible.
Et il risque de se reproduire, car les fichiers sont transporté de windows à linux par ftp et http, et éditer avec pleins d'éditeurs différents. Même si la consigne de ne plus mettre de caractères accentués dans les sources, il en reste toujours, c'est si vite fait d'en mettre un en tapant les commentaires... (même s'il est vrai qu'il faudrait passer aussi à l'anglais)
Merci de ta proposition en tout cas, c'est très sympa de ta part.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
5 août 2009 à 15:39
Re,

D'accord pour le confidentiel.

supprimer à la main les caractères à la con (il y avai 3 séquences dans tout le fichier).

En revanche tu ne peux pas produire un exemple de fichier avec ces séquences pour pouvoir tester dans le même environnment?

Tu peux mettre le lien en MP.

P.S. J'ai déjà traité des données confidentielle, réçu par des gens sur CCM ;-)), mais je ne peux pas te dire de la part de qui et quoi j'ai traité ;-)
0