Vous vous souvenez de Jq qui permet de sortir de la data de n’importe quel output de logiciel et de formater ça en JSON ?
Et bien voici le même concept, à savoir disposer de données formatées en JSON, mais cette fois extraites d’un fichier binaire. Fq peut ainsi afficher les données sous leur forme hexa, mais également les « transformer » en json, ce qui est vraiment pratique pour sortir de la donnée de médias comme des MP3, MP4, FLAC, JPEG…etc. ou encore lister les valeurs et fonctions inscrites dans un programme.
Par exemple, pour sortir le header d’un MP3, c’est jouable avec la commande :
fq '.frames[1].header | tovalue' fichier.mp3
On peut également pourquoi pas, extraire la première image JPEG rencontrée dans le binaire :
fq 'first(.. | select(format=="jpeg")) | tobytes' file > file.jpeg
Ça permet comme ça d’alimenter des bases de données ou des sites web en extrayant de la data de fichiers binaires ou de captures de paquets réseaux…etc.
Par exemple pour les trames réseaux, on peut récupérer les trames TCP qui ont des têtes de GET HTTP comme ceci (à partir d’un fichier PCAP) :
fq '.tcp_connections | grep("GET /.* HTTP/1.?")' file.pcap
…etc., etc.
Bref, un outil à mi-chemin en entre Jq et gdb (le débugger).
0 Commentaires