2010-11-15 6 views
2

J'ai regardé un peu mais je ne pouvais pas trouver ce que je pensais avoir été quelque chose qui a déjà été créé.décodeur binaire interactif à structs

Je cherche une application qui lirait dans un fichier binaire, autoriserait la saisie des types de patterns/règles attendus (comme un ensemble de messages dont chacun est en-tête + données) puis désérialiser les données dans un format texte basé sur les modèles/règles (par exemple, le fichier binaire est un ensemble de M messages avec un en-tête qui contient le type de struct et le nombre d'octets que la sérialisation de la structure prend directement sérialisé au fichier). Plus précisément, disons que je sais à l'avance que je vais avoir un fichier qui contient une séquence de structures C sérialisées (ou classes C++) qui sont toutes précédées d'un en-tête indiquant quelle structure est sérialisée dans les N octets suivants (où N est contenu dans l'en-tête). Je sais comment écrire du code C/C++ pour parcourir et désérialiser les données (à condition que je connaisse tous les types à l'avance) mais je me demande s'il existe un type d'application qui faciliterait ce processus si vous n'étaient pas entièrement sûrs du format/des structures à l'avance (autre qu'un hexeditor). Quelque chose de graphique où vous pourriez voir l'effet dynamique de changer les structures/règles/modèles serait optimal s'il existe.

Répondre

1

boost::serialization déjà quelque chose de très similaire à cela, sans avoir à mettre la main dans les détails. Il prend en charge divers formats d'archives, y compris XML, texte et binaire, est très extensible et peut gérer des pointeurs intelligents, des conteneurs etc.

+0

Je ne suis pas exactement sûr de comprendre comment cela est lié à ce que j'ai demandé. Cette bibliothèque fait abstraction de certains détails de sérialisation/désérialisation, mais je ne peux pas dire interactive. Je sais comment désérialiser les messages que j'attends. Ce que je me demandais, c'était s'il existait un outil existant au-dessus de l'hexeditor que quelqu'un avait créé pour aider à la désérialisation des formats INCONNU de manière interactive. – bpw1621