Hooks et sockets...

morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007 - 2 juil. 2005 à 18:43
morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007 - 11 juil. 2005 à 11:17
Bonjour...

Et bien non, ce message ne traite pas sur "comment installer un hook" mais sur un autre problème (qui concerne les hooks quand même). Je vous l'expose car j'ai beau chercher je ne comprends pas :

Bien, donc je pose un hook clavier GLOBAL dans une DLL liée statiquement (#pragma comment (lib,...)). Ce hook à pour but d'envoyer chaque touche frappée à un serveur ( un keylogger en fait :)).

Seulement, après initialisation des sockets, etc... (qui se fait hors de la DLL) et bien la fonction send() ne fonctionne pas, alors qu'elle marche très bien hors de la DLL...

En même temps, j'ai beau mettre des breakpoints tout le long de la procédure de hook, ya rien à faire, ça break pas !!!
Mais les touches sont bien interceptées : j'ai essayé de faire une MessageBox au milieu de la procédure, ben elle apparaît...

HELP... Tout simplement...

PS : J'avoue que l'explication est assez compliqué, si vous ne comprenez pas et que vous avez besoin du code, dites-moi le plutôt que de fermer le topic...

Merci !!!

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 juil. 2005 à 19:05
Il y a séparation COMPLETE de l'espace mémoire des processus, ton socket initialisé par le prog n'est valable QUE dans ce processus et non dans chaque processus dans lequel tourne chaque mappage de ta dll.

ciao...
BruNews, MVP VC++
0
morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007
3 juil. 2005 à 13:46
Ha ok, bien vu. ;-)
Evidemment ca risquait pas de marcher...

Bon, alors y a-t-il une solution au problème ou suis-je simplemnt bloqué ?
Je ne demande pas une solution toute faite tout simplement parce que : 1) c'est chiant à répondre et 2) c'est pas intéressant...

Juste une voix vers laquelle je pourrais me diriger, parce que là je suis totalement perdu...
Merci !
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
6 juil. 2005 à 13:57
Si le keylogger est sur la même machine pourquoi utiliser des sockets ?



tu lui envois les messages avec SendMessage();
0
morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007
9 juil. 2005 à 15:10
Ben nan, justement, c'est pour envoyer les touches pressées sur une autre machine... De plus, j'ai réfléchi 30 secondes à ta remarque précédente, et si on passe la socket par argument, y a aucune raison que ça ne marche pas non ?

Bref, toujours est-il que le problème n'est pas résolu, et que je ne comprends pas...
Une petite info qui aidera peut être : j'ai beau poser tous les breakpoints que je veux dans la procédure de hook, y a rien à faire, ça breake pas, mais le code s'execute, c'est sûr !!!
Par contre contre, hors de la proc, les breaks marchent très bien dans la dll...

Mystère |-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
morganitos Messages postés 28 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 27 septembre 2007
11 juil. 2005 à 11:17
Bon alors voilà de nouvelles infos : j'ai modifié mon prog afin de voir d'où venait le problème, j'ai une piste apparement...
Je m'explique donc

<M0RG1ITO$>J'ai rajouter une fenêtre sur mon prog, ca se présente comme cela : une fenêtre s'affiche au lancement du prog avec une texte box. Je pose un hook clavier dans une dll qui intercepte tte les touches pressés pour les envoyer par internet sur un autre ordi.
Je pose un breakpoint DANS la prcédure de hook, et un messagebox pour vérifier que la procédure s'execute...

Voila ce qu'il en résulte :
Quand je tape mon texte dans le fenêtre que j'ai créé, la messgbox apparait, le prog break a l'endroit du BP, et la socket marche très bien.
Cependant, si je tape mon texte à l'extérieur de cette fenêtre, la messagebox apparait, mais le prog ne break pas, et la fonction send( ) retourne une valeur < 0, la connexion n'est cependant pas termineée.

Voilà, je ne comprends pas où est le problème, je vais joindre très prchainement das bouts de code de mon prog pour plus de facilité de compréhension...

Si vous pouvez maider...

Merci
0
Rejoignez-nous