2009-11-25 6 views
3

Je cherche un moyen facile de convertir un simple fichier binaire en une représentation textuelle de son binaire, où le codage n'a pas d'importance. Je sais que la solution programmatique est simple, mais je pense qu'il doit y avoir une chaîne de commande unix arcane pour accomplir cela.Unix wizardry pour obtenir le contenu binaire d'un fichier en tant que texte?

Suis-je hors de la base? Y a-t-il une solution plus simple que le programmatique?

Répondre

6

par exemple, pour afficher un fichier binaire comme une séquence de codes hexadécimaux:

od -t x1 file|cut -c8- 
7

Utilisez od. Par exemple:

$ od -t x1 -An /bin/ls | head 
7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
02 00 3e 00 01 00 00 00 e0 26 40 00 00 00 00 00 
40 00 00 00 00 00 00 00 30 b6 01 00 00 00 00 00 
00 00 00 00 40 00 38 00 09 00 40 00 1d 00 1c 00 
06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00 
40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00 
f8 01 00 00 00 00 00 00 f8 01 00 00 00 00 00 00 
08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 
38 02 00 00 00 00 00 00 38 02 40 00 00 00 00 00 
38 02 40 00 00 00 00 00 1c 00 00 00 00 00 00 00 
+0

Y a-t-il un moyen de se débarrasser de cette sortie d'emplacement d'adresse? Je lis à travers l'homme od maintenant. –

+0

Oui! Vous pouvez utiliser 'cut' comme dans la réponse de catwalk ou utiliser l'option' -A' pour 'od'. –

6

uuencode et uudecode ont été faites pour le transfert de contenu binaire en caractères ASCII. Voir the wikipedia entry.

7
base64 -e filename>xxx 

de l'autre côté

base64 -d xxx>filename 
+0

Oui. Stefan, en supposant que vous voulez pouvoir inverser cette conversion, vous voulez 'base64' ou' uuencode', qui ont été conçus pour cette tâche. –

5
[email protected]:~$ openssl base64 < /dev/urandom | head -10 
qnISxigXTjgON+tkSDtRJ6fRNczsejY2bEC5D1W8fscy+6mopiGfVLvZ/bu99SrT 
qdTRaeRXO8fgEejXsbTy4XP9MmCbAsBCSEvDpq5bfR/Sd7EjJLUxcRwzEMlhIrYT 
m6J+20aR9M4g7pbT+hjjBE/gsHKxFfZQFgxT/tm1pEg6zMvQywjsrc7d+PSJQOHw 
vzYXfWkyLO1nJm9g+Pw3rBI/UuV0+lmrIflhlj5CDWuaxDJUXJiWdsD6cGKLclfz 
Mlh17mHwteqMLLSrTZ0QA0ygxISqiCf2sDtPgUToM7ZT2EbaNck5auxbhU+7OcxI 
vBZRKozRZtfsZA0IUzMlIQmFanBdjOeGepQjgCDruq5hqEbNc1A+HhXqTtAr8Aic 
4iNf36xZifDvASYy27hTVrlI/5kTeRZURqquaxHqum15VD5IC3J/sH+AwPpN1/qi 
0YM8xt+LliVje7Oo7QiTona+VMjA//a715/0J8yeryLxTLSnT8JsXUpR0CiOgAcH 
tQk9nzHCfMmFzb02nrhFJ0MjLCFgNJOiI1vT0AhNnMh449dcIkDDwyMpkRV4KZ1l 
CSL+K4vXhMz3LhPKSihKbYLY6aJSnlPe/GiIOfl1g1VlbtoxJ7ZclpcOp4KWSKHV 

... et sur le

1

Si le Si vous le faites, c'est pour voir les chaînes à l'intérieur des données binaires, alors il y a une commande appelée "chaînes" qui va imprimer toutes les chaînes dans un fichier pour vous.

+0

J'étais sur le point de commenter sur ce sujet précis. C'est une bonne chose que j'ai lu les réponses précédentes en premier. – Powerlord

+0

Non, pas mon but. –

-1

Oui, vous êtes hors-base, c'est non trivial dans le cas général. Certaines solutions commerciales existent, l'une que nous utilisons est Autonomy Keyview.

Je suppose que vous voulez dire en incluant (par exemple) MSOffice et PDFs.

1

vous pouvez également utiliser hexdump. Regardez la page man pour plus d'options

$ hexdump binaryfile 
Questions connexes