J'ai un flux binaire sur l'entrée standard, il est sous forme de format fixe, un flux de paquets continus, chaque paquet a une en-tête avec une longueur x et un corps avec une longueur Y. P>
donc si x = 2 y = 6, c'est quelque chose comme Je veux me débarrasser des données d'en-tête afin que la sortie ressemble à ceci: Y a-t-il des commandes dans la boîte à outils UNIX qui me permettent de faire cela? Et en général y a-t-il des outils pour la gestion des données binaires? Le seul outil que je pouvais penser est 00Abcdef01ghijkl02mnopqr03stuvwx code>, mais il est binaire et l'en-tête et les données peuvent contenir tout
abcdefghijklmnopqrstuvwx code>. p>.
od code> /
hexdump code> mais comment convertissez-vous le résultat en binaire? P>
5 Réponses :
Utilisez xxd code> qui passe à et à partir d'un hexdump.
xxd -c X+Y -ps | cut -c 2X+1- | xxd -r -p
Donc, l'idée était ok .. xxd code>, jamais entendu parler de cela. Merci! Remarque: la coupe provient de
2x + 1 code>.
Perl est un joli outil UNIX standard. Tuyer à Perl. Si son octet de longueur fixe aligné une simple opération de substrité devrait fonctionner. Voici un échantillon Perl qui devrait fonctionner.
#!/usr/bin/env perl use strict; use warnings; my $buf; my $len = 8; my $off = 2; while(sysread(STDIN,$buf,$len) != 0 ){ print substr($buf,$off); } exit 0;
Vrai, mais au moins son configurable;)
Il y a aussi BBE - Binary Block Editor Code>, qui est un type de binaire
sed code> pour la manipulation de données binaires la manière UNIX. P>
En tant que doublure, j'écrirais: exemple: p> produit p> 0000000 a b c d e f g h i j k l m n o p
0000020 q r s t u v w \n a b c d e f g h
0000040 i \n k l m n o p q r
0000052
mange de nouvelles lignes echo -e "\ n00abcdef01 .." code>. une idée?
@YI_H, Ouais, aller avec Bot403's "SysRead" Réponse a>.
L'éditeur de flux binaire est un outil écrit en Java pour la manipulation des flux. Il peut être utilisé à partir de Java ainsi que de la ligne de commande. https://sourceforge.net/projects/bistreeameditor/
Disclaimer: je suis l'auteur de Cet outil. p>
Contrairement à des outils à base de nouvelles lignes telles que SED, il permet une traverser personnalisée et un stockage de données via la traversée et la mémoire tampon. Les données binaires peuvent être traitées comme des charges d'octets et des opérations de chaîne / des correspondances autorisées. Il peut écrire à plusieurs sorties et utiliser différents codages. En raison de cette flexibilité, la ligne de commande a actuellement beaucoup de paramètres, qui doit être simplifiée. P>
Le fichier bse.zip doit être téléchargé et utilisé.
Pour l'exemple ci-dessus, nous aurions simplement besoin de faire un substrateur (2) sur l'entrée de LEN 8. La ligne de commande complète est p>
Ces paquets de réseau sont-ils? Qu'en est-il de tcpdump?