IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Générateurs de compilateur Discussion :

parsing de code C


Sujet :

Générateurs de compilateur

  1. #1
    Invité
    Invité(e)
    Par défaut parsing de code C
    Bonjour,

    Je vous écris pour avoir quelques bonnes références concernant un projet sur le fuzzing.
    Je me suis documenté et j'ai lu des techniques intéressantes consistent notamment à collecter les contraintes sur les embranchements ( if ... else ...) pour tester une plus grande partie du code.

    Il me faut un parser et un solveur de contraintes. Je suis débutant mais plutôt motivé alors si vous connaissez de bonnes addresses ou que vous-même pouvez me donner conseil, je vous remercie. Je cherche des cours, des tuto, des logiciels pratiques.

    Le langage est donc le C.

    Je voudrais avoir la certitude de me lancer avec de bons atouts.

    Merci à vous

  2. #2
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    J'ai rien compris à ton message

    Mais pour le titre, "parsing de code C", je te conseille de regarder dans la direction de flex et bison.

    En espérant que mon message te sera utile.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je vais préciser un peu plus mon post.

    En fait, je voudrais faire du fuzzing, c'est à dire envoyer des données imprévues et non-valides à un programme. Le programme plante s'il ne sécurise pas assez ses entrées.

    Je voudrais que mes données imprévues me permettent de tester au mieux le programme.
    Dans plusieurs articles traitant de techniques ( DART, SAGE, ...) j'ai vu qu'il est intéressant d'envoyer des données qui font travailler un maximum de code ( maximiser la couverture de code ).
    Eux font de l'analyse dynamique grâce à valgrind.
    1) Ils partent d'une entrée valide.
    2) Ils récupèrent tous les branchements ( if ... else ..) qui ont testé de près ou de loin l'entrée
    3) Enfin ils créent de nouvelles entrées imprévues qui auront un autre cheminement dans le programme. (suivant les branchements repérées ) grâce à un solveur de contraintes (STP par exemple)

    Je souhaiterais reprendre cette idée mais en faisant de l'analyse statique.
    Puis en résolvant les contraintes du code, je peux faire en sorte que mon fuzzer envoient des entrées qui testeront un maximum du code du programme cible.

    Il se trouve que j'ai le code source de ce programme mais je ne m'y connais pas en parsing ni resolveur de contraintes. Je vous demandais conseil sur une methode simple, des logiciels très pratiques, des manuels magiques, même si il s'agit d'un raccourci honteux.

    Je souhaite simplement mettre en oeuvre, même partiellement cette idée de fuzzing.

    Merci à vous

  4. #4
    Membre expérimenté Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 624
    Par défaut
    Le seul logiciel que je connais qui fasse ça le fait à partir de l'assembleur :s (oRange).

    En attendant que quelqu'un puisse te proposer une meilleure solution, tu peux toujours mettre des breakpoints un peu partout dans ton programme, et modifier à la main les valeurs en mémoire en lançant l'exécution en mode Debug. C'est assez simple à faire sous Eclipse, mais j'ignore si on peut écrire un script pour automatiser tout ça.

    J'imagine que c'est également possible sous tout logiciel utilisant gdb (tu peux aussi le faire en ligne de commande avec gdb, mais adieu santé mentale).

  5. #5
    Invité
    Invité(e)
    Par défaut
    Hmm j'aime ma tête. J'en connais un aussi mais il n'est plus actualisé depuis longtemps.
    Il commence par f...

Discussions similaires

  1. Parsing de code HTML
    Par katcha95 dans le forum Bibliothèque standard
    Réponses: 0
    Dernier message: 25/10/2009, 15h49
  2. Réponses: 10
    Dernier message: 21/07/2006, 08h44
  3. Parse code HTML avec PHP
    Par naourass dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2006, 08h12
  4. [RegEx] Parsing complexe de code HTML
    Par choas dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2006, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo