2010-01-27 17 views
2

Pour les besoins spécifiques d'un projet, je dois interfacer une partie de mon code avec un autre code source fermé. Mon idée est de comprendre comment l'application originale communique et mime ensuite le comportement. J'ai déjà fait la première étape, qui analyse certains échanges HTTP (fait en utilisant la requête POST et les réponses XML) avec Wireshark. A la fin de l'échange, le serveur produit une sortie que j'ai besoin d'enregistrer.Protocole d'ingénierie inverse/Reproduire le dialogue HTTP

Maintenant, ma question est: quel est le le plus facile façon de répliquer le comportement du client avec mon entrée? c'est-à-dire celui qui implique moins de codage? Fondamentalement, je n'ai pas besoin de beaucoup de puissance de "programmation", juste la possibilité d'analyser certaines variables dans les réponses du serveur et de les réutiliser dans la requête successive.

J'ai déjà fait un travail similaire en répliquant le comportement du client avec un script PHP en ligne de commande, mais c'est plutôt fastidieux et le code est difficilement lisible et donc maintenable.

Toute suggestion est la bienvenue !! Merci

+0

Je ne suis pas sûr de détails, donc je poste cela comme commentaire. Je suppose que le protocole est XML basé sur http. Vous pouvez utiliser l'objet XMLHttpRequest dans n'importe quel support de langage COM, y compris Javascript en HTML. – Serguzest

+0

question similaire: http://stackoverflow.com/questions/15679883/how-to-reverse-engineer-an-http-api-call-using-rest-console – abbood

Répondre

1

Si vous n'avez pas besoin d'une solution évolutive et votre application a besoin pour traiter les demandes/réponse particulière seulement, vous peut précréer plusieurs requêtes sous forme de blobs XML et simplement mettre à jour toutes les variables, les envoyer et effectuer une analyse XML de base pour obtenir les valeurs des éléments XML avec la réponse. Essentiellement, votre application servira de répéteur d'une conversation que vous avez enregistrée avec Wireshark et modifiera quelques valeurs.

+0

Merci pour votre réponse !! C'est ce que j'ai fini par faire à la fin, bien que j'espérais trouver une méthode impliquant moins de codage ou au moins plus maintenable (ie une plus grande séparation entre le code lui-même et la structure de données échangée). Merci quand même !!! – Federico

+0

@Franci Penov c'est une question similaire: http://stackoverflow.com/questions/15679883/how-to-reverse-engineer-an-http-api-call-using-rest-console – abbood

0

Ces deux travaillent avec Firefox:

Tamper Data

fiddler

+0

-1 Fiddler est un désastre absolu. Je ne l'installerais JAMAIS sur mon PC. –

+1

Fiddler fonctionne très bien dans mon expérience. –

+0

pourquoi personne n'a mentionné chrome [console de repos] (https://www.google.com.lb/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDEQFjAA&url=https%3A%2F % 2Fchrome.google.com% 2Fwebstore% 2Fdetail% 2Frest console% 2Fcokgbflfommojglbmbpenpphppikmonn% 3Fhl% 3DEN & ei = mixUUYPxG6-Q7Aaum4GIBw & usg = AFQjCNF2Go6z48pDc2QhPiOueVfStSNKBA & sig2 = 2uqo2-AzC3dHPigHiBm73A & BVM = bv.44342787, d.ZGU)? – abbood