IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Comment lire un binaire en format texte?


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut Comment lire un binaire en format texte?
    Bonjour,

    Je suis sous HP-UX version 11.0.
    Quand je vais dans les binaires d'une appli (/bin) je n'arrive pas à lire et donc encore moins éditer ce fichier.....Connaitriez vous la le moyen?

    Merci d'avance,

    Ludo.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 403
    Points
    28 403
    Par défaut
    Les lire... pour quoi faire ?
    De quel type de fichier s'agit-il ? Des exécutables compilés ou des bibliothèques ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    Bonjour et merci de ta réponse!
    J'ai besoin de les lire car j'ai besoin de connaitre ce qu'il y a à l'intérieur afin de m'en servir dans un script.
    Malheureusement je ne serais répondre à ta question....est ce qu'il y a un façon de les reconnaitre?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    C'est des binaires qui servent à une appli qui envoie ou recoit des fichiers cryptés...un des binaire de cette appli a été lu et transformé par je ne sais qui et de ce fait j'ai pu voir que ces binaires attendent certains parametres node du serveur distant, nom du fichier etc etc et donc sans ces infos je suis bloqué!

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    Ce que j'ai pu voir dans des fichiers transformés c'est que c'est un scripts shell...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    Je viens d'avoir la réponse c'est bien du compilé...
    Une idée?
    Merci d'avance.

  7. #7
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 501
    Points : 11 242
    Points
    11 242
    Par défaut
    Citation Envoyé par rouget Voir le message
    Je suis sous HP-UX version 11.0.
    Quand je vais dans les binaires d'une appli (/bin) je n'arrive pas à lire et donc encore moins éditer ce fichier.....Connaitriez vous la le moyen?
    Je fais suite au commentaire de al1_24, essaies la commande file sur les binaires et ensuite (voir le man associé) les commandes od, vi en mode lecture et si disponible sous HP-UX, hexdump, comme dans ce post :
    http://www.developpez.net/forums/d96...e-binaire-hexa
    lecture d'un fichier en mode binaire ou hexa [Résolu]
    Nota: pas de HP-UX sous la main ...

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Il y a plus simple, la commande suivante doit extraire toutes les chaines de caractères d'un exécutable:

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2009
    Messages : 66
    Points : 36
    Points
    36
    Par défaut
    Bonsoir et merci de vos réponses!
    Dans toutes les commandes cités, strings donne le meilleur résulat
    Merci! simple et efficace, j'adore.
    Comment modifier le contenu de se binaire donc avant tout comment le changer en un fichier texte? le man de strings ne dit sur la modification de ce fichier!
    Le post cité ci-dessous
    http://www.developpez.net/forums/d96...e-binaire-hexa
    Parle de vi fichier puis de :%!xxd mais cela ne donne rien de mon coté.....
    l+4m+LPo▒,\p+lq+▒`q▒,]s+▒`s▒,^▒u+▒`u▒,_|▒,a0|▒,bP}▒,e▒+▒▒+▒P▒▒,l▒,
    ▒,8`▒▒,m▒,T`▒▒,n▒▒,\`▒▒,o▒▒ ,q0▒▒,rP▒▒,u▒,t▒,▒P▒▒,|▒,▒▒,▒`▒▒,}▒,▒`▒▒,~▒▒,▒`▒▒,▒▒,▒0▒▒,▒P▒▒,▒▒-▒-,P▒▒,▒▒-L▒-x`▒▒,▒▒-▒`,▒▒▒ -▒`Ā,▒ʀ,▒0ʀ,▒Pˀ,▒▒-▒▒-▒P؀,▒▒-▒▒.`ڀ,▒▒.4`܀,▒▒▒.<`ހ,▒`߀,▒hsend.c<<<NULL_SYMBOL>>>int8_tuint8_tin t16_tuint16_tint32_tuint32_tintfast_tuintfast_tintmax_tuintmax_tintptr_tuintptr_tint_least8_t uint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_l east32_tuint_least32_tint_fast32_tuint_fast32_tptr32_tmqd_tdev_tino32_tino_tmode_tnlink_tfpos Voila à quoi ressemble mon binaire si je l'ouvre via un cat...
    Bon dimanche à vous!

  10. #10
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par rouget Voir le message
    Comment modifier le contenu de se binaire donc avant tout comment le changer en un fichier texte?
    Avec quel objectif ?

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 851
    Points
    5 851
    Par défaut
    Citation Envoyé par rouget Voir le message
    Dans toutes les commandes cités, strings donne le meilleur résulat
    Effectivement, la commande strings permet d'extraire pour lecture les chaines de caractères d'un binaire.

    le man de strings ne dit sur la modification de ce fichier!
    Normal, car la commande strings extrait pour lecture les chaines de caractères d'un binaire mais ne donne aucune possibilité de modifier le fichier lui-même (heureusement d'ailleurs, car modifier un binaire n'est pas une action à prendre à la légère).

    Comment modifier le contenu de se binaire donc avant tout comment le changer en un fichier texte?
    Changer un fichier binaire en fichier texte n'a pas de sens (je parle au nom de la (probablement) grande majorité des développeurs).

    La nature d'un fichier dépend grandement de l'oeil qui le regarde.
    Pour faire simple, en très très gros, si l'on constate qu'il ne contient que des caractères ascii (lettres, chiffres, ponctuation et quelques autres) alors il est considéré par les humains (et par la commande file) comme un fichier texte.
    S'il contient du binaire (ou s'il commence par un magic number approprié), c'est un fichier binaire.
    Il n'existe pas d'opération magique permettant de changer un fichier binaire en fichier texte.

    En revanche, il est tout à fait possible d'éditer un fichier binaire pour en modifier le contenu!


    Cependant, la méthode "normale" est de:
    - trouver les sources qui ont permis de le générer
    - modifier les sources
    - recompiler les sources (commande make ou commande interne d'un IDE)


    Si tu soupçonnes que le binaire en question a été modifié par un script shell ou par une commande, le plus simple et le plus raisonnable serait de le réinstaller (soit à partir de l'original, soit à partir d'une sauvegarde).

    Sinon, si tu peux nous fournir la commande qui l'a modifié (par exemple, un sed -i malheureux), il est possible que nous puissions te donner la commande "inverse" qui permettrait de restaurer le binaire dans l'état précédent.


    La méthode "manuelle brute" est possible aussi, mais elle demande de savoir précisément ce que l'on fait!
    Par exemple, au sein d'une chaîne de caractères repérée dans le binaire, remplacer un caractère par un autre devrait "marcher" sans trop de problème.
    En revanche, supprimer un caractère ou en ajouter un sont des opérations beaucoup plus dangereuses qui risquent de "casser" le binaire et le rendre au mieux inutilisable, au pire, dangereux.

    Ceci dit, il existe divers outils pour éditer un binaire.
    L'un des plus simples à utiliser est àmha emacs.
    Mais il faut vraiment savoir très précisément ce que l'on fait (ce qui, manifestement (ou plutôt d'après l'avis que je me fais à partir de ce que je peux lire de ce que tu as écrit), n'est PAS le cas!).

    Pour poster un lien, il faut mettre le "vrai" lien, avec le chemin complet et non la "version abrégée" qui contient des points de suspension!

    Une petite recherche indique que le lien que tu voulais insérer est probablement celui-ci (lecture-d-fichier-mode-binaire-hexa)

    Parle de vi fichier puis de :%!xxd mais cela ne donne rien de mon coté.....
    Je ne connais pas suffisamment la commande vi pour dire pourquoi "cela ne donne rien".

    Si tu commences à éditer le binaire avec la commande vi sans comprendre ce que tu fais, tu t'exposes à de gros risques... (voir plus haut)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    l+4m+LPo▒,\p+lq+▒`q▒,]s+▒`s▒,^▒u+▒`u▒,_|▒,a0|▒,bP}▒,e▒+▒▒+▒P▒▒,l▒,
                                                                      ▒,8`▒▒,m▒,T`▒▒,n▒▒,\`▒▒,o▒▒                                      ,q0▒▒,rP▒▒,u▒,t▒,▒P▒▒,|▒,▒▒,▒`▒▒,}▒,▒`▒▒,~▒▒,▒`▒▒,▒▒,▒0▒▒,▒P▒▒,▒▒-▒-,P▒▒,▒▒-L▒-x`▒▒,▒▒-▒`,▒▒▒                                      -▒`Ā,▒ʀ,▒0ʀ,▒Pˀ,▒▒-▒▒-▒P؀,▒▒-▒▒.`ڀ,▒▒.4`܀,▒▒▒.<`ހ,▒`߀,▒hsend.c<<<NULL_SYMBOL>>>int8_tuint8_tin                                      t16_tuint16_tint32_tuint32_tintfast_tuintfast_tintmax_tuintmax_tintptr_tuintptr_tint_least8_t                                      uint_least8_tint_fast8_tuint_fast8_tint_least16_tuint_least16_tint_fast16_tuint_fast16_tint_l                                      east32_tuint_least32_tint_fast32_tuint_fast32_tptr32_tmqd_tdev_tino32_tino_tmode_tnlink_tfpos
    Je vois que tu as essayé d'utiliser la balise "CODE": il faut mettre le code entre les balises "CODE" et "/CODE", et non pas après la balise fermante.

    Voila à quoi ressemble mon binaire si je l'ouvre via un cat...
    On dit plutôt que la commande cat affiche le contenu du binaire. On réserve généralement le verbe "ouvrir" aux éditeurs (comme emacs ou vi).

Discussions similaires

  1. Comment lire un disc dur formaté mac sous windows
    Par doncamelo dans le forum Composants
    Réponses: 3
    Dernier message: 01/03/2012, 16h22
  2. [Débutant] Lire une fonction sous format texte
    Par Onimaru dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/12/2011, 23h04
  3. Comment exporter un hyperlien en format texte?
    Par COOL_DEV dans le forum iReport
    Réponses: 0
    Dernier message: 02/09/2008, 16h13
  4. Lire un BLOB en format texte
    Par Contrec dans le forum C#
    Réponses: 4
    Dernier message: 30/08/2007, 13h42
  5. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo