2010-08-24 2 views
2

Est-il possible (par exemple avec C++, mais cela n'a pas vraiment d'importance) de créer une application pont/proxy pour obtenir les données demandées par une autre application? Pour être plus détaillé, je parle d'un jeu basé sur Adobe Air. (Je veux créer un rapport avec des statistiques basées sur les données acquises, mais cela ne fait pas partie de cette question.) Plutôt que de simplement répondre "booléen" s'il vous plaît fournir un lien vers l'exemple/documentation. MerciCréation de proxy entre les requêtes d'application et Internet

+0

Essayez-vous d'intercepter un protocole interne, ouvert ou propriétaire? De même, avez-vous besoin de "vérifier en profondeur" les données acquises, ou simplement d'avoir une idée du trafic réseau (volume, timing, etc.). – louisgab

+0

En fait, je suppose que c'est propriétaire. Et j'ai besoin du contenu aussi. –

Répondre

1

Vous pouvez écrire un proxy à la main, en python peut être très facile. Tout ce que vous avez à faire est de définir localhost comme proxy, puis de transférer la requête et de la renvoyer au socket appelant.

J'ai commencé à écrire quelque chose comme ça il y a quelques temps. L'idée était d'écrire un simple remplacement pour dansguardian.

Je l'ai téléchargé sur github afin que vous puissiez y jeter un coup d'oeil s'il peut aider.

Je ne me souviens pas bien (j'ai commencé à l'écrire l'année dernière) mais peut-être avec quelques modifications peuvent bien répondre à vos demandes.

2

Il serait toujours possible, et en fonction de votre système d'exploitation cible, peut nécessiter beaucoup d'efforts, ce qui soulève la question - est-il une raison pour laquelle vous ne pouvez pas utiliser Fiddler ou un logiciel de reniflage de paquets pour votre système d'exploitation cible ?

+0

Fiddler ne joue malheureusement qu'avec http/s, et ce n'est pas l'utilisation de l'application avec laquelle je travaille. –

1

Conceptuellement, ceci est votre configuration:

app_client -> [app_channel] -> proxy -> [server_channel] -> app_server 

Votre proxy démarre un socket serveur, le app_client connecte. Ceci est notre app_channel. Votre proxy crée maintenant une connexion au serveur d'applications. Ceci est votre serveur_channel.

Maintenant, démarrez 2 threads, l'un qui lit depuis l'app_channel et écrit sur le channel_channel, l'autre lit depuis le channel_channel et écrit dans l'app_channel.

Cela créera une connexion transparente au serveur app via votre proxy. Vous pouvez extraire les données comme vous le souhaitez. Si les données sont cryptées, il y a très peu de choses que vous pouvez réellement faire en les analysant.

+0

Merci pour la réponse. Dommage que je ne puisse pas récompenser la prime deux fois; Cependant, l'autre réponse avait un exemple utile, donc j'ai marqué __it__. –

Questions connexes