Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion au réseau Tor

Comment me connecter à Tor en C++ ?

Sujet résolu
    30 juillet 2014 à 21:20:26

    Bonjour à tous,

    En général je viens rarement poser des questions mais en ce moment je galère un peu ^^

    Je souhaiterai faire un logiciel qui serait capable de se connecter à un site en passant par Tor. J'ai suivi une vidéo sur Youtube mais ça n'a pas fonctionné, et j'ai lu un peu la doc de stem mais c'est pour le python il me semble.

    Quelqu'un aurait-il une idée de comment faire ?

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      31 juillet 2014 à 9:20:22

      Salut.

      Bon j'ai pas trop le temps d'expliquer donc je vais faire du mieux que je peux ^^'.
      Tu vas devoir utiliser les classes QNetworkProxy et QNetworkAccessManager.

      Assure toi de bien avoir les includes suivant dans ton header.

      #include <QNetworkProxy>
      #include <QNetworkAccessManager>
      #include <QNetworkReply>
      #include <QNetworkRequest>

      Ensuite niveau code tu fais un truc dans le genre :

      //-> Mise en place du proxy.
      QNetworkProxy proxy;
      proxy.setType(QNetworkProxy::DefaultProxy); // On définit le type du proxy.
      proxy.setHostName("127.0.0.1"); // L'adresse sur laquelle Tor écoute.
      proxy.setPort(9050); // Le port que tu as configuré dans Tor.
      
      // Décommente les lignes au cas où ton Tor serait configuré avec un mot de passe :
      // proxy.setUser("username");
      // proxy.setPassword("password");
      
      // Définit le proxy pour toutes les connexions de ton application.
      QNetworkProxy::setApplicationProxy(proxy); 
      
      //-> Envoit du requête pour récupèrer une page (le Hidden Wiki par exemple).
      
      // On crée un pointeur sur le Manager.
      QNetworkAccessManager *getter = new QNetworkAccessManager(this);
      
      // La connexion SIGNAL -> SLOT.
      connect(getter, 
      	SIGNAL(finished(QNetworkReply*), 
      	this, 
      	SLOT(requestHandler(QNetworkReply*)));
      
      // Connexion au HiddenWiki.
      getter->get(QNetworkRequest(QUrl("http://zqktlwi4fecvo6ri.onion"))); 

      Ensuite dans ton slot requestHandler :

      void MainWindow::requestHandle(QNetworkReply *reply)
      {
      	if(reply->isOpen) // Si la réponse est complette.
      	{
      		// On lit la réponse complette.
      		QString response = reply->readAll();
      		reply->close(); // Et on ferme la réponse.
      	}
      }

      Voilà voilà, je sais pas si ça va fonctionner mais logiquement oui. :)



      -
      Edité par skyzohkey 31 juillet 2014 à 9:26:30

      • Partager sur Facebook
      • Partager sur Twitter
        31 juillet 2014 à 11:49:36

        Salut skyzohkey,

        C'est étrange parce que dans la vidéo que j'ai vu i faisait pareil, mais moi ça ne fonctionne pas :o
        J'ai dû me tromper de port probablement alors.

        Parce que j'ai la même chose, le proxy, le slot qui lit la réponse etc.

        Ça fonctionne mais ça ne passe pas par Tor, malgré que j'ai fait paramétré Tor pour utiliser le port etc :/

        -
        Edité par gzJVXfXC9 31 juillet 2014 à 12:10:19

        • Partager sur Facebook
        • Partager sur Twitter
          31 juillet 2014 à 13:10:05

          Si tu envois la requête vers http://www.monip.org ça te donne ton IP perso, c'est ça ?

          Coincidence pour la vidéo, lien ? :p

          • Partager sur Facebook
          • Partager sur Twitter
            31 juillet 2014 à 13:52:23

            Oui si j'envoie la requête vers http://monip.org ça me donne ma vraie adresse ip perso.

            La vidéo est ici :)

            • Partager sur Facebook
            • Partager sur Twitter
              31 juillet 2014 à 14:00:18

              Hmm... Tu es sur que tu es sur le bon port Tor ? Au pire essaye de modifier le type de proxy comme suit :

              proxy.setType(QNetworkProxy::Socks5Proxy);

              Parce que quand j'utilise le Tor en Socks5 sur Chrome ça fonctionne, donc à test. :3

              • Partager sur Facebook
              • Partager sur Twitter
                31 juillet 2014 à 14:09:09

                Oui je clique sur le Torbutton, je dis que j'utilise un proxy, Socks5 et je mets 127.0.0.1 et le port 9050. Je met le même port dans mon code, e ça ne fonctionne pas :o

                Pire, quand je laisse DefaultProxy ça me donne mon adresse ip perso, mais quand je met Socks5proxy ça ne fonctionne même pas !

                Je suis sous Firefox moi. Là je suis sous Windows mais ne temps normal je suis sous Ubuntu c'est pour ça.

                Pour information, Qt me donne ces erreurs là sour Windows (ils ne les donnaient pas sous Linux)

                QSslSocket: cannot resolve TLSv1_2_client_method

                QSslSocket: cannot resolve TLSv1_1_server_method

                QSslSocket: cannot resolve TLSv1_2_server_method

                QSslSocket: cannot resolve SSL_select_next_proto

                QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb

                QSslSocket: cannot resolve SSL_get0_next_proto_negotiated

                • Partager sur Facebook
                • Partager sur Twitter
                  31 juillet 2014 à 14:12:42

                  Ca c'est que ta version d'OpenSSL n'est plus à jour. Go faire la mise à jour d'OpenSSL ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    31 juillet 2014 à 14:15:09

                    Bon je vais la mettre à jour alors ^^

                    Mais si je distribue le logiciel un jour il faudra que les utilisateurs aient une version à jour aussi alors.

                    Mais j'espère que ça fonctionnera après ça !

                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 juillet 2014 à 14:18:11

                      Je suppose que tu as un processeur Intel, et il me semble que c'est uniquement valable pour les proc' Intel. Sur mon ARM j'ai pas eu de soucis d'OpenSSL. Mais bon comme ça tu participe à boucher la faille HeartBleed en demandant aux clients de mettre à jour OpenSSL x)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        31 juillet 2014 à 14:22:13

                        J'ai fait la mise à jour d'OpenSSL, j'ai fait aussi celle de microsoft visual c++ redistribuable il me semble, enfin quoi qu'il en soit je n'ai plus le problème avec Qt !

                        N'empêche, mon application ne peut toujours pas se connecter ! Alors que Tor fonctionne très bien :/

                        • Partager sur Facebook
                        • Partager sur Twitter
                          31 juillet 2014 à 14:25:45

                          Ha attend j'ai un bogue dans la matrice, Tor me dit ceci :

                          31/07/2014 14:24:26.309 [WARN] The connection to the SOCKS5 proxy server at 127.0.0.1:9050 just failed. Make sure that the proxy server is up and running.
                          31/07/2014 14:24:27.276 [WARN] The connection to the SOCKS5 proxy server at 127.0.0.1:9050 just failed. Make sure that the proxy server is up and running.
                          31/07/2014 14:24:28.286 [WARN] The connection to the SOCKS5 proxy server at 127.0.0.1:9050 just failed. Make sure that the proxy server is up and running.

                          Une idée pourquoi il refuse que je sois proxy ?

                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 juillet 2014 à 14:30:43

                            Tu utilises le mode Socks5 ou Default ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              31 juillet 2014 à 14:34:17

                              L'erreur juste au dessus c'est Tor qui me la donne quand je le lance pour me connecter (il ne le faisait pas avant la mise à jour, bizarre).

                              Quand à Qt, quand je laisse Default il accède a la page en donnant mon adresse perso, et quand je mets Socks5 il n'y accède même pas.

                              Concrètement, c'est que Tor refuse de se connecter quand je le mets en proxy, pourquoi ?

                              -
                              Edité par gzJVXfXC9 31 juillet 2014 à 15:21:44

                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 juillet 2014 à 16:30:53

                                Heu, j'ai pas idée du pourquoi du comment.

                                Essaies d'aller dans les paramètres de ton navigateur et de définir Tor comme proxy pour test (ensuite va sur monip.org). Voir si c'est un problème Qt ou Tor. :)

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  31 juillet 2014 à 16:44:26

                                  Je pense que le problème vient de Tor enfin plutôt de moi mais bon ^^

                                  Je donne à mon navigateur les mêmes infos que j'ai donné à Qt, non ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    31 juillet 2014 à 16:51:03

                                    J'ai essayé en donnant les mêmes informations, le port etc, mais ça me dit que le proxy refuse la connexion (normal puisque même Tor refuse de se lancer quand je lui donne les informations de proxy)..
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      31 juillet 2014 à 16:53:24

                                      Bizarre. Je suis à court d'idée là... :x
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        31 juillet 2014 à 17:01:34

                                        Je viens de réussir ! J'explique si certains auraient le même problème :

                                        J'ai installé polipo.

                                        Ensuite j'ai testé avec le navigateur Tor, via le Torbutton j'ai défini un proxy avec les valeurs 127.0.0.1 et 9150 pour le port.

                                        Avec mon navigateur, j'ai entré le proxy avec les mêmes valeurs et ça fonctionnait.

                                        Et du coup dans mon application, j'ai entré le port etc comme au dessus, en précisant Socks5 et non pas Default, et ça fonctionne !

                                        Merci à skyzohkey, sans toi je n'y serai jamais arrivé ! Merci beaucoup ! :)

                                        -
                                        Edité par gzJVXfXC9 31 juillet 2014 à 17:41:54

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Connexion au réseau Tor

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown