2011-12-13 2 views
2

J'ai un fichier binaire ASCII qui contient, disons, quelques fragments de code XML quelque part.Trouver un fragment de code dans un fichier binaire

Je recherche un algorithme (de préférence rapide) capable de trouver ces fragments XML dans ce fichier binaire.

(Tout comme regex, mais faire le modèle correspondant à un contexte grammaires.)

Je voudrais généraliser l'algorithme en quelque sorte pour d'autres grammaires de contexte.

Des idées?

+0

Pourquoi est-ce que ça doit être un CFG? Pourquoi une regex relativement simple n'est-elle pas suffisante? Connaissez-vous quelque chose sur le XML (par exemple le nom de la balise racine)? – svick

+0

Parce que vous ne pouvez pas analyser XML avec regex. J'ai dit XML juste pour un exemple, en fait j'ai la grammaire et un analyseur pour Javascript, et je cherche des codes javascript cachés dans des fichiers binaires. – Calmarius

+0

Vous connaissez les extraits/fragments que vous voulez reconnaître/détecter? Combien voulez-vous détecter simultanément? – wildplasser

Répondre

0

Normalement, l'analyseur analysera une phrase qui devrait appartenir à la langue, et non une phrase arbitraire dans laquelle la (les) langue (s) appartenant au langage sont cachées à l'intérieur de celle-ci. Je suggère que vous utilisiez le symbole de début de votre grammaire et expressions régulières pour le vérifier dans la poubelle ASCII et une fois que vous l'avez trouvé, d'utiliser votre analyseur sur le texte commençant à ce symbole avec le reste de la phrase et voir où l'analyseur cesse d'analyser une erreur. Ensuite, vous devrez déterminer si le code JS est bon ou pas selon l'endroit où l'erreur se produit.

Je ne connais aucun algorithme qui fait ce que vous voulez dès la sortie de la boîte, mais je suppose que quelqu'un aurait pu avoir besoin de cela avant parce que c'est utile en fait. Peut-être que vous pourriez trouver quelque chose d'intéressant dans le livre Parsing Techniques par Grune et Jacobs.

Questions connexes