begin process at 2012 02 13 13:50:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SNIFFER MSN MESSENGER GRACE AU HOOK DES FONCTIONS WINSOCK

SNIFFER MSN MESSENGER GRACE AU HOOK DES FONCTIONS WINSOCK


 Information sur la source

Note :
9,37 / 10 - par 19 personnes
9,37 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Classé sous :msn, messenger, sniff, sniffer, hook Niveau :Expert Date de création :27/06/2005 Date de mise à jour :11/08/2007 02:21:22 Vu / téléchargé :79 210 / 12 282

Auteur : cosmobob

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (101)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
ce code effectue un hook des fonctions de la DLL winsock, et permet ainsi de sniffer la connexion internet de MSN 7.
En fait, il permet de sniffer n'importe quel programme qui utilise ws2_32.dll ou wsock32.dll, et j'ai par exemple réussi à sniffer aussi la connexion d'un programme comme mIRC.

Amusez vous bien ;)


 Conclusion

testé sous vc6, vs7 et dev-cpp

la très legère IHM a été reprise d'une source de ce site, je remercie l'auteur qui se reconnaitra (je me rappelle plus de qui il s'agit :)
L'injection de la DLL dans le processus cible (msnmsgr.exe par exemple) se fait un réalisant un hook système WH_CBT, méthode reprise de Arnotic.
Enfin, le hook des apis winsock se fait en suivant ce que raconte Richter.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 juin 2006 16:49:04 :
Pour sniffer le dernier MSN (windows live messenger): hooker la DLL wsock32.dll (pour la version precedente, c'etait ws2_32.dll)
25 juin 2006 18:39:47 :
MAJ titre
11 août 2007 02:21:22 :
update pour compiler sans problème avec vc2005

 Sources du même auteur

Source avec Zip POINTEUR INTELLIGENT : CLASSE TEMPLATE POUR S'AFFRANCHIR TOT...
Source avec Zip Source avec une capture PORTS ACTIFS : LISTE LES CONNECTIONS TCP ET UDP EN COURS DE ...
Source avec Zip Source avec une capture BIJECTION EXPLICITE ENTRE N ET Q+
Source avec Zip BOT IRC TOUT SIMPLE, FAIT A L'AIDE DE LA CLASSE PROSOCK
Source avec Zip LES SOCKETS C++ COMME DS MIRC : TOUT EST SIMPLE AVEC LA CLAS...

 Sources de la même categorie

Source avec Zip Source avec une capture TRACEROUTE [WINPCAP] par ganjarasta
Source avec Zip SERVEUR MULTITHREAD [LINUX/WIN] par nipepsinicolas
Source avec Zip Source avec une capture SECURE REMOTE SHELL [WIN32] par ganjarasta
Source avec Zip Source avec une capture SUIVI DE PRODUCTION ONDULEUR PHOTOVOLTAÏQUE SOLARMAX par brunovan
Source avec Zip MINICHAT MULTI-CLIENT par wisar

 Sources en rapport avec celle ci

METTRE À JOUR LE TITRE DU MORCEAU EN COURS DANS MSN LIVE par citronz1969
Source avec Zip Source avec une capture [WIN32/STL] CLIENT MSN MESSENGER (SANS MFC, QT, ...) [UNICOD... par Scooper
INTERACTIONS MSN MESSENGER par dump
Source avec Zip WIZZ (WIN32) par vecchio56
Source avec Zip Source avec une capture CLIENT MSN MESSENGER (MAJ) par Scooper

Commentaires et avis

Commentaire de cosmobob le 27/06/2005 23:43:24

ha au fait, le log du 'sniffage' est stocké dans 'C:\LogFileSniff.txt'
sinon, seules les fonctions recv, send et connect sont détournées, allez voir le fichier wsock32Hook.cpp pour en rajouter d'autres.
cf le dllmain.cpp pour sniffer un autre prog que msn.

merci de poster vos remarques ;)

Commentaire de vecchio56 le 28/06/2005 13:23:49 administrateur CS

Il vaut mieux savoir ce que signifie sniffer ici... Ca m'étonne que Joky n'en ai pas profité pour nous sortir une de ses boutades

Commentaire de cosmobob le 28/06/2005 14:02:14

oui ici sniffer = logger les donnees envoyées ou recues par MSN, pas se mettre de la poudre blanche sous le nez et l'aspirer.

Commentaire de Kirua le 28/06/2005 14:26:28

Superbe:

(send) (SOCKET = 440, size = 31) - ret = 31
PRIVMSG #Coder-Studio :bonjour

(recv) (SOCKET = 440, size = 998) - ret = 82
:funto!~funto@EpiK-60E55C9B.w80-13.abo.wanadoo.fr PRIVMSG #Coder-Studio :bonjour

:D ça marche impeccablement. C'est excellent comme programme pour essayer de comprendre les protocoles des applications :) Et avec ça, on comprend aussi pourquoi il faut VRMNT crypter les communications sensibles genre mots de passe ... et le protocol FTP ne le fait pas en standard il me semble -> moyen de récupérer des mots de passe méchament :-/.

Merci aussi d'avoir pris la peine de citer tes sources (ça fait vrmnt plaisir l'honnêteté!) et d'avoir, fait exceptionnel, fourni des fichiers de projets pour Dev-C++ ET VC++, sans compter que sous Dev ça compile du premier coup sans aucune erreur ... je ne sais pas pq, mais ça m'épate chaque fois que ça marche du premeir coup :D.

Mci pr le code :) Je regrette juste que le log soit dans un fichier qu'on ne peut ouvrir qu'à la fin du sniffage, j'aurais préféré une boîte de texte dans le GUI (ou IHM comme tu dis) qui se met à jour automatiquement.

Commentaire de cosmobob le 28/06/2005 14:36:39

salut,
merci pour ton commentaire.
effectivement le pb est que le fichier est écrit depuis le processus cible (mIRC ou MSN) et que pour l'afficher dans une boite de texte du processus de base (le wsock32_hook.exe), il faut jouer un peu sur la communication inter processus ce qui m'a paru fastidieux, donc le choix simple c'etait de tout mettre dans un fichier sur le disque ...

Commentaire de Zootella le 28/06/2005 15:03:31

Salut, juste une petite question, si on n'a pas les paramétres des fonctions, comment faut-il procéder alors pour récupérer les données de ces paramétres ?

Commentaire de Zootella le 28/06/2005 15:07:18

Pourquoi afficher la boite de dialog depuis wsock32_hook.exe ? Tu peux le faire depuis la dll.

Commentaire de krust le 28/06/2005 15:11:19

Pour sniffer un programme, faire un hook n'est pas indispensable et est certainement plus long que d'utiliser un sniffer à part entière telque ethereal qui a lui un protocol analyser intégrée et d'autres outils tout aussi utiles.
Ceci dit, l'intéret du hook est qu'on peut détourner ou modifier le streaming d'une application ce qui peut être utile (Dans les cheats par exemple :D).


Krust.

Commentaire de Kirua le 28/06/2005 15:13:42

Krust, j'utilisais déjà ethereal, mais il me semblait intéressant de voir un exemple sur cppfrance :) Sans compter que j'aime assez bien la mise en forme du log ^^. Mais je te concède que dès que tu sniffes du HTTP ça doti faire mal les 54 Ko de la page d'un coup ... comprends plus rien ^^.

Commentaire de krust le 28/06/2005 15:24:20

Je ne critique pas la source du tout ! Loin de moi l'idée,..
Je mettais juste en évidence qu'elle aurait été plus appropriée dans d'autres domaines :). Car quand t'as un flux de données désassemblées c'est galère,... De plus quand tu as des applications utilisants plusieurs socks tu t'en sorts encore moins.


Krust.

Commentaire de cosmobob le 28/06/2005 15:47:15

Zootella> Une boite de dialogue depuis le processus cible ne persiste pas une fois que as fermé ce processus (ce que je voulais au début éviter).

La dans ce cas, tu peux détourner ce que font les fonctions de winsock, dans ce code elles sont loggées pour montrer l'utilisation. De plus il s'agit ici d'un code autonome qui n'a pas besoin de driver pour être capable de sniffer ce qui - par exemple - sort...

sinon je comprends pas ta premiere question:
"si on n'a pas les paramétres des fonctions, comment faut-il procéder alors pour récupérer les données de ces paramétres"

qu'est ce que tu veux dire? les données d'un paramètre me parait assez flou, comme le fait de ne pas avoir les paramètres d'une fonction ...

Commentaire de BruNews le 28/06/2005 15:47:18 administrateur CS

Salut,

pas le temps de tout voir pour l'instant mais parait fort intéressant et tout le monde semble d'accord, y a pas de fumée sans feu.
Juste un truc:
dans void HookWSock32::OuvrirLog: hFile = CreateFile(filename,...);
void HookWSock32::FermerLog()
{
if(hFile) CloseHandle(hFile);
si hFile invalide en sortie de CreateFile vaut -1 donc ira sur CloseHandle, faut comparer à INVALID_HANDLE_VALUE.

ciao...

Commentaire de cosmobob le 28/06/2005 16:15:44

ok merci j'update ce petit pb ce soir

Commentaire de krust le 28/06/2005 16:20:41

Je pense qu'il veut dire : "Comment faire pour utiliser une fonction quand on a pas son prototype?"
Et bien tu sais pas l'utiliser puisque tu ne sais pas quoi envoyer,... Par contre, si tu connais une application utilisant cette fonction, tu peux désasembler le programme et finir par trouver quels arguements sont envoyés ;).
Ceci dit, presque toutes les apis sont documentées (apparts quelques-une).

Commentaire de cosmobob le 28/06/2005 16:39:31

ha ok, oui ben dans ce cas les fonctions de winsock sont effectivement bien connues. Si tu ne connais pas le prototype de ta fonction, le problème est inextricable.

Commentaire de Joky le 28/06/2005 17:59:26

Mdr Vecchio voyons
Sniffer, c'est vrai que c'est ambigue comme terme
enfin dans la vie de tout les jours :)
Mais en prog non j'pense pas :)

Et juste comme ça :) J'ai les sinus sensibles, donc moi c'est plus la seringue vois tu :)
J'ai voler le Pousse Sering à mon lycée, et tous les soirs j'suis sous perfusion :) J'menvois des tutoriaux C++ dans le sang :)
Hum c'est kré bon :)
Sinon pour le prog quand même j'lé testé, et une fois il a planter, il a mis une autre adresse que le gars que j'ai été voir, fin bref ça s'est résolu après mais bon c'est quand même cool :)

Commentaire de Zootella le 28/06/2005 19:53:48

Ok merci krust, sinon sur certains programmes ça ne marche pas, j'obtiens juste la ligne "(connect) (SOCKET = 260, sockaddr = 25688556) - ret = -1" mais pas de recv ou de send, pourtant il envoie et reçoit des données.

Commentaire de BruNews le 28/06/2005 20:09:47 administrateur CS

Veut dire qu'ils n'emploient pas recv ni send.

Commentaire de Zootella le 28/06/2005 20:25:00

j'ai compris pourquoi je pense : il les emplois indirectement, c'est à dire qu'il charge une dll qui elle envoie et reçoit des données, est-ce possible de hooker la dll plutôt que l'exe ?

Commentaire de BruNews le 28/06/2005 20:33:33 administrateur CS

pas obligé, le prog peut employer WSASend() par exemple et son point d'entrée est différent de send().

Commentaire de Halo2 le 01/07/2005 13:33:42

Bonjours,

je n'arive pas a compiller l'exe pour pouvoire tester...

Commentaire de cosmobob le 01/07/2005 13:50:34

salut,
quel compilateur utilises-tu, quels sont les messages d'erreur ?

Commentaire de Halo2 le 01/07/2005 17:06:01

Avec Dev-c++ ou Visual C++ j'ai toujours une erreur:

[DEV-C++]
C:\Documents and Settings\****\Mes documents\Mes Application\cppfrance_source_32374\Makefile.win [Build Error]  [Release/wsock32_hook.exe] Error 1

[Visual C++]
--------------------Configuration: Exe - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1104: cannot open file "wsock32_hook.lib"
Error executing link.exe.

wsock32_hook.exe - 1 error(s), 0 warning(s)

Commentaire de cosmobob le 01/07/2005 21:33:50

salut,
compile la DLL avant de compiler l'exe ...

Commentaire de srtg1 le 01/07/2005 22:11:50

Une version exe sans dll est elle complique a faire ?
Car moi j'y arrive pas ...
Pas d'erreur de compile l'exe est cree mais il plante mon explorer et ca log rien

#include <windows.h>
#include <ImageHlp.h>
#include <string>
#include "tokenizer.h"
#include "wsock32Hook.h"

using namespace std;

HINSTANCE thismod = 0;

const char* ProgramName = "msnmsgr.exe";

const char* WSockDll = "ws2_32.dll";

HookWSock32* wsockhook = NULL;

HHOOK hhk = 0;

LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
  return CallNextHookEx( hhk, nCode, wParam, lParam);
}

HHOOK DLLInjectedAdd()
{
  if (!hhk) hhk  = SetWindowsHookEx(WH_CBT,(HOOKPROC) HookProc, thismod, 0);
  return ( hhk);
}

DLLRemove()
{
   UnhookWindowsHookEx(hhk);
   hhk = 0;
}

int WINAPI WinMain (HINSTANCE hDll, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
        HWND         hwnd;
        MSG          msg;

         thismod = hDll;
         char buffer[MAX_PATH];
         GetModuleFileName(0, buffer, sizeof(buffer));
         tokenizer tfullpath(string(buffer), '\\');
        
         // si on est dans le programme dans lequel la DLL doit lancer le hook winsock
         if (tfullpath.gettok(-1) == ProgramName) // gettok(-1) : dernier token
         {
            // On lance le hook winsock
            wsockhook = new HookWSock32(WSockDll);
            if (wsockhook)
               wsockhook->InstallAllHooks();
         }

hhk = DLLInjectedAdd();

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;

}

Commentaire de BruNews le 01/07/2005 22:25:39 administrateur CS

Dixit MSDN:
This hook procedure must be in a dynamic-link library (DLL).

Commentaire de srtg1 le 01/07/2005 22:44:19

OK Je pensai qu'on pouvait contourner le probleme
comme ici
http://www.cppfrance.com/code.aspx?ID=27169

Commentaire de cosmobob le 01/07/2005 23:07:15

dans ce que tu as mis, HookProc n'est pas déclaré __declspec(dllexport) (ce qui etait l'astuce principale); donc ca risque pas de marcher ...
et la il faudrait charger ou non le hook winsock au sein de la fonction de hook (avec un flag pour pas le mettre deux fois) et pas au sein du WinMain.

Commentaire de cosmobob le 01/07/2005 23:33:27

le pb est que de cette maniere tu ne seras pas averti du déchargement de l'exe dans le processus cible (l'équivalent du DLL_PROCESS_DETACH); or si tu ne remets pas les choses en place (avec un delete wsockhook) qd tu as quitté le sniffer, l'application cible va planter !! (car ses fonctions recv etc ... pointeront vers une adresse mémoire qui n'existe plus)

Commentaire de srtg1 le 01/07/2005 23:39:36

Ca devrait etre Ok avec ca
Mais je log rien

J'ai l'impression de ne jamais passer par HookProc(int nCode, WPARAM wParam, LPARAM lParam) meme en validant le bouton

...
__declspec(dllexport) LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
         // Ouverture du fichier log. Le créer s'il n'existe pas.

return CallNextHookEx( hHook, nCode, wParam, lParam);
}

__declspec (dllexport) void __stdcall DLLRemove()
{
   UnhookWindowsHookEx(hhk);
   hhk = 0;
}




//Fonction de la boite de dialogue
BOOL CALLBACK  MainDlgProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam )
{
   static HWND hBouton;//Handle du bouton
   static int etat;// Flag d'état du hook

   switch( msg )
   {  
      case WM_CLOSE: // Clic sur la croix de fermeture
      {
         // Fermeture de la boite de dialogue
         EndDialog( hDlg, TRUE );
         return 1;
      }
      case WM_INITDIALOG: //Initialisation de la boite de dialogue
      {

           wsockhook = new HookWSock32(WSockDll);
            if (wsockhook)
               wsockhook->InstallAllHooks();

         // Création du bouton Activer/Désactiver
         hBouton = CreateWindow("BUTTON", "Commencer à sniffer", WS_CHILD | WS_VISIBLE , 40, 35,160, 30, hDlg, 0, 0, 0);  
         // Obtenir le HANDLE de l'exécutable en cours
         hExe = GetModuleHandle(NULL);
         // Mettre le flag d'état à 0= Hook inactif
         etat=0;
         // Fin d'initialisation
         return 1;
      }
      case WM_COMMAND: // Appui sur le bouton
      {
         if( lParam == (long) hBouton)
         {
            if (!etat)//Si hook inactif alors
            {
               // Activer le hook
               //hHook = DLLInjectedAdd();
               hHook = SetWindowsHookEx( WH_CBT, (HOOKPROC) HookProc, hExe, NULL);
               //Mettre le flag d'etat à 1 (actif)
               etat=1;
               // Changer le texte du bouton
               SetWindowText(hBouton,"Arrêter de sniffer");
            }
            else //Si hook actif alors
            {
               // Désactiver le hook
               DLLRemove();
               // Mettre le flag d'état à 0 (inactif)
               etat=0;
               // Changer le texte du bouton
               SetWindowText(hBouton,"Commencer à sniffer");
            }
         }
         break;
      }
}
   return 0;
}

//Fonction principale: Création d'une boite de dialogue sans ressources
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmd,int nShow )
{
   // Allouer de la mem pour notre dialog template
   LPDLGTEMPLATE lpdt = ( LPDLGTEMPLATE) GlobalAlloc(GPTR, 512);
   if (!lpdt)
      return 1;

   // Définir les propriétés de la boite de dialogue
   lpdt->style = WS_POPUP | WS_BORDER |WS_MINIMIZEBOX| WS_SYSMENU | DS_MODALFRAME | WS_CAPTION;
   lpdt->x  = 100; lpdt->y  = 100; lpdt->cx = 120; lpdt->cy = 50;
  
   // Obtenir pointeur sur la zone du nom de la boite de dialogue
   LPWSTR lpnom = (LPWSTR) (lpdt+1)+2;

   // Convertir le nom en UNICODE et le mettre dans la zone nom
   MultiByteToWideChar (CP_ACP, 0, "WinSock Sniffing", -1, lpnom, 128);
    
   // Lancer la boite de dialogue
   DialogBoxIndirect(hInstance,lpdt,NULL,(DLGPROC)MainDlgProc);

   // Libérer la mémoire allouée puis quitter
   GlobalFree((HGLOBAL) lpdt);
   return FALSE;
}

Commentaire de cosmobob le 02/07/2005 00:24:27

tu as pas pigé que avec cette astuce, la seule fonction qui est appelée dans le processus cible est HookProc.
Si tu initialises le hookwinsock dans la dialogbox
(en faisant:
wsockhook = new HookWSock32(WSockDll);
if (wsockhook)
   wsockhook->InstallAllHooks();
)
qui elle n'est appelée que par hookwsock32.exe, tu n'obtiendras evidemment rien !!!!

tu dois avoir plutot:

bool dejalance = false;

__declspec(dllexport) LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
   char buffer[MAX_PATH];
   GetModuleFileName(0, buffer, sizeof(buffer));
   tokenizer tfullpath(string(buffer), '\\');
        
   if (tfullpath.gettok(-1) == ProgramName)
   {
      if (!dejalance)
      {
         // On lance le hook winsock
         wsockhook = new HookWSock32(WSockDll);
         if (wsockhook)
            wsockhook->InstallAllHooks();
         dejalance = true;
      }
   }
   return CallNextHookEx( hHook, nCode, wParam, lParam);
}


la fonction dans le hook etant censée etre la plus rapide possible, il faudrait eviter de faire un GetModuleFileName a chaque appel de hookproc (ce qui est possible avec un autre flag genre bool premierappel = true)
Comme j'ai dit précedemment, comme le processus cible n'est pas averti du déchargement dans sa mémoire de hookwsock32.exe qd tu arretes le sniffer, les fonctions recv, etc. du processus cible vont pointer vers une zone mémoire non valide et il y aura plantage. Cette méthode ne sera donc jamais correcte, sauf a trouver un moyen de connaitre qd l'exe se décharge de la mémoire du processus cible, comme on peut le connaitre avec les DLL et le DLL_PROCESS_DETACH.

Commentaire de cosmobob le 02/07/2005 00:30:27

voici plutot un code efficace pour le hookproc:

bool dejalance = false;

__declspec(dllexport) LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
   if (!dejalance)
   {
      dejalance = true;
      char buffer[MAX_PATH];
      GetModuleFileName(0, buffer, sizeof(buffer));
      tokenizer tfullpath(string(buffer), '\\');
          
      if (tfullpath.gettok(-1) == ProgramName)
      {
         // On lance le hook winsock
         wsockhook = new HookWSock32(WSockDll);
         if (wsockhook)
            wsockhook->InstallAllHooks();
         dejalance = true;
      }
   }
   return CallNextHookEx( hHook, nCode, wParam, lParam);
}

Commentaire de cosmobob le 02/07/2005 00:42:36

si tu veux lancer le hookwinsock sans passer par une DLL, injecte du code dans le processus cible avec CreateRemoteThread, mais ca n'est possible que sous les os récents (NT)

Commentaire de krust le 03/01/2006 20:51:08

La bonne question^^
Le plus simple : hook hook and hook :)
Hook les api qui permettent de lister les process' et enlève le tien quand il passe, il sera plus visible dans la tasklist standart. Maintenant, y a des manières plus évolués de le faire mais c'est une autre histoire. Même idée pour cacher les fichiers,...

Krust.

Commentaire de AnOnYmOuSs le 04/01/2006 09:02:17

haha salut tout le monde bonne année en retard =D quelqun ici si connait avec wpe (winsock packet editor) si quelqu1 peut me repondre...merci davance =P

Commentaire de hijakhakker le 04/01/2006 16:54:20

d'abord bonne année
je ne vois pas ma question parmis les commentaire ?peut etre qu'elle contient un virus..
KRUST> je voulais dire que pour exploiter la dll il faut passer par un winmain et utiliser boite de dialogue sans resource ..et si je veut exploiter les fonction de la dll depuis une autre source ?car ça fait des moment que je veut cacher le processus mais ça marche pas avec ce sw_hide ..
merci d avance
administrateur> si les comentaires se perdent chez vous ça veut dire que vous avez pas un forum php

Commentaire de krust le 04/01/2006 17:44:31

Quand tu fais apparaître le Task Manager sur windows, t'as plusieurs onglets.
Le premier fait une liste des fenêtre affichées sur le desktop
Le second affiche tout les process chargés.

Donc pour cacher dans la première liste -> SW_HIDE
Pour cacher dans la seconde y a pas de process(hide); il faut hooker la fonction NtQuerySystemInformation qui permet (entre autre) de lister les process chargés. C'est cette fonction qui est utilisée par le taskmanage (si je me rappel bien).

Voilà ;)

Commentaire de krust le 04/01/2006 18:12:29

ARggh, ça l'a refait...
Ca fait mine de ne pas avoir fonctionné puis hop on se retrouve avec un double post, encore désolé.

Commentaire de hijakhakker le 04/01/2006 19:33:17

concernant cette source j'ai essayé de la faire disparaitre du desktop mais sans resultat avec (sw_hide)
(mon but est de la faire disparaitre ,tout simplement du desktop)
j'ai changé de moidfier les paramettre sans resultat
quelqu'un a une idée?
merci

Commentaire de Mamoutt le 08/02/2006 17:52:45

Bonjour bonjour tout le monde!

Je suis nouveaux sur ce forum (qui mas l'air trés interressant!)
Voila, je vien de dl le sniffer msn mais je ne comprend pas trés bien comment l'utiliser :s faut-il utiliser un éditeur C ou autres?

Merci d'avance les gens!

Commentaire de zibo3 le 20/02/2006 18:08:17

Bonjour,

J'ai essayé ton code qui est exellent mais je me suis permis de le tester sur une application plus simple : notepad.exe et de hokker les fonctions de texte : TextOutW, ExtTextOutW, DrawTextW, DrawTextExW dans les dll gdi32.dll et user32.dll.
Et quand je cherhce les pointeurs de fonctions je n'ai pas de probleme mais par contre le parcours de la table de l'import descriptor, il ne trouve que les fonctions dont notepad ne fait pas appel comme : TextOutW par contre pour les autres rien du tout. Je sais pas si ca peut aider mais j'ai un Windows XP avec le SP2. Est-il possible que Windows protege les adresses d'appel au fonctions externe de ses applications?
Merci pour ta solution qui est très importante pour moi.

Commentaire de supergrey le 10/03/2006 14:10:44

J'ai essayé ta source, pour msnmsgr ca marche mais pas avec IEXPLORE pourquoi donc?

Commentaire de supergrey le 10/03/2006 14:11:40

Avec Iexplore ca marche po , pourquoi donc?

Commentaire de krust le 10/03/2006 19:18:29

Il suffit de regarder l'IAT de iexplorer.exe, il n'y a aucune référence à winsock(WS2_32.dll), on ne peut donc pas utiliser un hook IAT,...

MsnMessenger Importe directement (via l'IAT) WS2_32.DLL, donc elle peut être hooké par cette technique.

Si tu veux hooker Internet explorer, je te conseil de hooker les fonctions WININET.dll !

voilà voilà

Krust.

Commentaire de supergrey le 11/03/2006 10:38:41

Je demandais car j'ai une autre source qui hook n'importe quel navigateur et qui remplace les fonction send(), sendto(), WSAsend(), et WSAsendto() qui je crois sont des fonctions winsock.
Cete source se sert de ces dll: ws2_32.dll  et  wsock32.dll
Donc je sais pas moi j'y conais pas grand chose j'avait besoin de la fonction recv() c'est pour ca que ta source m'interresse.

Commentaire de cosmobob le 25/06/2006 16:49:59

updaté, pour que ca marche avec windows live messenger

Commentaire de krust le 25/06/2006 18:52:52

Une méthode alternative qui fonctionne de manière plus générale  (J'ai utiliser dans l'exemple, le hook de CreateToolhelp32Snapshot).
Il faut mettre ce code dans une dll et l'injecter dans le processus que l'on veut hooker.


void *DetourFunc(BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp = (BYTE*)malloc(len+5);
DWORD dwback;

VirtualProtect(src, len, PAGE_READWRITE, &dwback);

memcpy(jmp, src, len); jmp += len;

jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;

src[0] = 0xE9;
*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;

VirtualProtect(src, len, dwback, &dwback);

return (jmp-len);
}
typedef HANDLE (__stdcall* pCreateToolhelp32Snapshot)(DWORD,DWORD);
pCreateToolhelp32Snapshot fCreateToolhelp32Snapshot=NULL;

hmod = LoadLibrary("KERNEL32.DLL");

fCreateToolhelp32Snapshot = (pCreateToolhelp32Snapshot)DetourFunc((BYTE*)GetProcAddress(hmod,"CreateToolhelp32Snapshot"),(BYTE*)hkCreateToolhelp32Snapshot,5);

HANDLE WINAPI hkCreateToolhelp32Snapshot(
  DWORD dwFlags,
  DWORD th32ProcessID
  ){
[TON HOOK ICI]
}




Commentaire de samana le 01/08/2006 21:18:38

inline std::string toString(T a)
{
   std::ostringstream oss;
   oss << a;
   return oss.str();
}

Commentaire de hzocm le 01/12/2006 16:41:54

C'est super ton code, merci beaucoup!!!

Sinon, j'ai une petite question. Dans ta méthode _recv, c'est possible de moddifer le "imcomming data"?

Par example : je vérifie si dans le message je reçoie s'il contient une chaine : "salut". Si c'est le cas, je remplace la chaine par "Bonjour" avant de l'afficher dans la fenêntre de chat.

J'ai essayé de changer le contenu de variable "buf", mais ça ne change rien. J'ai l'impression qu'une fois on appelle la vraie fonction ORecv, on ne peut plus changer le contenu.

Merci

Hzocm

Commentaire de supergrey le 01/12/2006 18:53:04

D'apres mais souvenir j'avais réussi donc oui c'est possible , mais je ne peux pas t'en dire plus.

Commentaire de hzocm le 05/12/2006 10:14:50

oui, si possible. Je me suis trompé au fait. Je suis en train de travailler dessus.

Merci auteur d'avoir partager le source code et d'avoir répondu à ma question.

Merci Supergry aussi :)

Commentaire de hzocm le 28/05/2007 11:45:14

Est_ce que savez vous comment je peux créer un message et l'envoyer en utilisant la méthode _send?

Exemple de mon message : "MSG 5 ...." ou simplement un PING : "PNG"

Merci,

Commentaire de open le 09/06/2007 23:50:44

Aucun idée pour ta question HZOCM.

Sinon je n'ai pas réussis à compiler cette source, même avec DEV-C++. Voilà ce que ça me met :

4 D:\C\Sniffer\Source_DLL\dllmain.cpp In file included from Source_DLL/dllmain.cpp
D:\C\Sniffer\Source_DLL\tokenizer.h In function `std::string toString(T)':
14 D:\C\Sniffer\Source_DLL\tokenizer.h `ostringstream' undeclared (first use this function)
  (Each undeclared identifier is reported only once for each function it appears in.)
14 D:\C\Sniffer\Source_DLL\tokenizer.h expected `;' before "oss"
15 D:\C\Sniffer\Source_DLL\tokenizer.h `oss' undeclared (first use this function)
D:\C\Sniffer\Makefile.win [Build Error]  [Source_DLL/dllmain.o] Error 1

Me manque quelque chose  ?

Commentaire de cosmobob le 12/08/2007 03:23:51

il te manquait std:: à l'intérieur d'une fonction template qui n'était appelée nul part.
la source updatée devrait compiler sans soucis..

Commentaire de maaxobelixyeye le 20/08/2007 16:10:35

j'ai essayé de faire la même chose avec des fonctions wininet, juste la fonction internetconnect, mais dans log rien s'est passé, est ce que vous aviez une idée??? merci

Commentaire de Cendra le 04/09/2007 22:28:16

moi j'ai essayer sur ma machine avec msn et divers programmes, le fichier de log reste vide,

il y aurai t'il la possibilité d'ajouter des messages d'erreur pour identifier la fonction en defaut?

merci d'avance

Commentaire de Booster le 04/09/2007 22:36:53

Salut,

Depuis quelque temps je travaille sur ta source et j'ai un petit problème que je n'arrive pas à régler alors si tu pouvais me filer un petit cou de pouce ça serait sympa ;)

Je voudrais hook un jeu pour voir ce qu'il en sort.

J'ai essayé ton application avec "Tony Hawks Pro Skater 4" et ça marche parfaitement ...
Mais ça ne marche pas pour tous les jeux, exemple : warcraft 3 ou encore age of empire 2.

Lorsque je démarre le jeu tous se passe bien, le hook à bien fonctionné et les fonctions parfaitement remplacé, MAIS lorsque mon jeu envoi une donnée je n'attrape rien ! Fort dommage :D puisque c'est le but...

Je n'arrive pas à savoir d'où peu venir le problème.

Si vous pouviez me donner une piste ? Dans quel sens il faut chercher ? (Je n'attends pas de code, mais plutôt des idées qui pourraient m'aider à résoudre ce problème !)

Merci d'avance ! Et 10/10 pour ta source ;)

Commentaire de krust le 04/09/2007 22:45:32

Sur windows, tu peux utiliser un programme pro, qui s'appel WPE (W packet editor) qui fonctionne très bien !
Pour le reste, il faut voir si ce n'est pas un autre module qui gère le réseau ou si il utilise un autre type de fonctions :) Le mieux serait de regarder les imports de tous les modules chargés)

Cheers


Antoine.

Commentaire de Booster le 05/09/2007 18:12:21

Salut,

Je te remerci pour ta réponse et oui je connais WPE pro puisque c'est sur ça que je me base, de plus WPE pro voit très bien les trames qui circulent sur le jeu warcraft3 par exemple, mais pas l'application de cosmobob.

Je pense effectivement qu'il utilise une autre fonction d'une autre dll et je vais essayer de voir tous les imports de tous les modules (yen à que 8 :D).

Par contre, je trouve bizarre que cela ne marche pas, car il y a bien la dll winsock32.dll charger en mémoire... Pourquoi ne l'utiliserait t'il pas ?

Merci

Commentaire de Booster le 16/09/2007 10:59:41

Salut,

Bon je viens me répondre au cas ou ça en interresse quelqu'uns. En réalité il faut hook mswsock.dll et non les 2 autres (w2_32.dll et wsock32.dll) car enfet les 2 autres font appelle à mswsock.dll donc si tu hook cette dll tu n'aura plus à choisir la version comme dans ton application :). mswock.dll est la dll "mère" si on peu apeller ça comme ça donc tout passe par elle ;).

Bon par contre du cou ça change un peu ton code mais ça reste buvable ^^.

Aller ++

Commentaire de aurelihein le 19/09/2007 13:25:17

Bonjour, j'aimerais par la même occasion pouvoir récuperer les requetes GET HTTP envoyé par msn, mais je vois pas trop comment m'y prendre quelle fonction hooker ?merci beaucoup !!!!

Commentaire de Booster le 19/09/2007 17:32:52

Salut,

Il faut hook le recv recvfrom send sendto (comme ici) mais non pas sur la dll winsock32.dll mais sur mswinsock.dll

Aller ++ ;)

Commentaire de cosmobob le 19/09/2007 22:30:56

suivant la version de msn utilisée, faut hooker soit ws2_32.dll soit wsock32.dll (c'est une ligne à commenter et une autre à décommenter dans dllmain.cpp...).
Pour savoir quelle DLL choisir, suffit d'utiliser dependency walker.

A++ ;)

Commentaire de aurelihein le 20/09/2007 09:24:53

merci dependency walker est super utile, par contre je vois pas de fonctions, send, sendto,recv, recvfrom dans la dll wininet utilisé par msnmsgr, il y a plein d'autres fonctions comment savoir laquelle utiliser ?
Merci d'avance

Commentaire de cosmobob le 22/09/2007 20:44:53

salut,
pourquoi veux tu réellement hooker wininet si tu ne connais pas les fonctions qui y sont exportées?
choisis wsock32.dll ou ws2_32.dll, ca marche très bien avec msnmsgr.exe ...
A+ ;)

Commentaire de aurelihein le 25/09/2007 16:04:59

salut,
Quand msn se connecte il y a une série de commande VER, CVR, USR qui sont envoyés et reçu,
En faite j'aimerais récupérer la requete HTTPS GET avec les paramètres passés en argument, je pense pas que cette requete soit passé à travers les fonctions de la DLL wsock32.dll ou ws2_32.dll
Merci de votre aide

Commentaire de Booster le 25/09/2007 17:30:59

mswinsock.dll << est la solution (c'est par ici où transite toute les données) Ou alors utilise ethereal.
++

Commentaire de Sc0uT le 01/10/2007 18:41:36

pk ne pe directement faire le .exe?

Commentaire de Renfield le 02/10/2007 08:39:14 administrateur CS

pk ne pe directement oublier l'SMS et rediG ?

As-tu des ampoules sur chaque doigt que tu ne puisse convenablement rédiger ?
Les .exe sont supprimés des archives Zip. Si tu le veux, à toi de le compiler ou de te le procurer tout prêt auprès d'un membre conciliant.

Commentaire de Sc0uT le 04/10/2007 18:09:38

Salut, est-ce qu'un membre concilliant pourrait-il compiler ceci.

Merci!

Commentaire de Booster le 04/10/2007 18:49:09

Compile le toi même (Sans être méchant).

C'est simple :
- tu install dev-cpp (http://sourceforge.net/projects/dev-cpp/)
- tu ouvre le projet
- tu lance ... ça marche

Bye

Commentaire de Kian_ix le 07/10/2007 05:50:36

Y'a-t-il quelqu'un qui saurait comment procède MSN Messenger pour effectuer ses recv() ? Aparement ce ne sont pas des recv() bloquants, ni meme non bloaquants, meme select() ne semble pas être utilisé, le recv() survient d'un coup des que des données sont dispo... Peut-être une autre fonction non hookée ?

Commentaire de cosmobob le 11/10/2007 22:24:13

ScOuT> Dans le dossier release, il suffit de renommer wsock32_hook.ex_ en wsock32_hook.exe
Sinon, les compilateurs dev cpp et visual c++ express 2005 sont disponibles gratuitement et permettent de compiler cette source.

Commentaire de cnir le 15/10/2007 13:01:00

J'ai lance le programme et j'ai pas l'impression qu'il marche. Juste une fenetre, commencer ou arreter de sniffer. C'est normal ?

Commentaire de cosmobob le 23/10/2007 00:37:18

oui c'est normal... d'après le premier commentaire, "ha au fait, le log du 'sniffage' est stocké dans 'C:\LogFileSniff.txt'"...
Sinon il suffisait de regarder le code source :)

Commentaire de cnir le 24/10/2007 17:10:25

Je sais ca et j'ai rien dedans.

Commentaire de cosmobob le 28/10/2007 18:17:10

t'as du hooker la mauvaise DLL... suivant la version de ton msn, c'est wsock32 ou ws2_32 qu'il faut hooker, comme expliqué plus haut... Pour connaitre la version, suffit d'utiliser dependency walker

Commentaire de cnir le 08/11/2007 15:55:45

Re, donc j'ai verifie ma version est ws2, j'ai echange les // mais maintenant quand je veux executer j'ai une erreur : Le point d'entree de procedure _DLLInjectedAdd@0 est introuvable dans la bibliotheque de liaisons dynamique wsock32_hook.dll.

Commentaire de supergrey le 10/11/2007 16:29:19

Est-ce que de la même manière on peut hooker internet explorer (wininet dapres ce qu'on m'a dit) ?

Commentaire de supergrey le 16/11/2007 15:04:14

Merci quand même, j'ai jamais trouvé une source pour le faire, est-ce que c'est impossible ?

Commentaire de bogs01 le 13/01/2008 22:19:15

Bonjour a tous, je suis un peu nouveau sur ce site donc je ne sais pas si c'est le bon endroit pour poser une question.

En gros je voudrais creer un lib dll que j'appelerai wsock32.dll pour remplacer celle de windows et faire un include ou autre pour utiliser le wsock32.dll original (que j'aurai renomé) et ainsi pouvoir creer un log (ou modifier les paquets send/receive) de mes applications utilisant wsock32.dll.

L'idée serait que quand un tool appel la fonction send(ou receive) de ma lib ... je sauve le paquet dans un log et puis j'excute l'appel en appelant la vraie fonction.

(En gros je voudrais faire un truc du meme genre que cosmobob mais sans EXE, juste un DLL)

Je suis complement newbie en tout ce qui concerne les lib, les socket etc ... donc si vous pouviez m'aider et me dire si c'est possible a realiser ?

Merci d'avance et bravo a cosmobob pour son tool.

Commentaire de Booster le 13/01/2008 23:11:06

Le mieux c'est d'utiliser winpcap, ça va te prendre 2min à réaliser et tu n'auras aucun problème car de plus je ne suis pas sur que windows ne vas pas geuler quand tu vas tenter de lui remplacer sa dll...

Enfin renseigne toi sur winpcap ça sera plus rapide et mieux. (Pour info c'est ce qu'utilise Etheral/WireShark)

Aller bye

Commentaire de BruNews le 13/01/2008 23:29:16 administrateur CS

Me semble que Vista vérifie ses modules régulièrement, il remet le bon si besoin.
Prends la piste indiquée par Booster.

Commentaire de bogs01 le 14/01/2008 04:43:42

Tout d'abord Merci beaucoup pour vos réponses. C'est sympa d'avoir des réponses aussi rapidement.

Mais bon, ce que je cherche c'est vraiment a redefinir la lib wsock32.dll (enfin creer ma propre version) meme si windows pourrait me raler dessus.

Vous ne savez pas ou je pourrez trouver un tuto d'utilisation de cette lib et un autre tuto pour creer des lib. (je n'ai encore jamais créé de fichier.dll -> oui, j'ai honte) :D

Et encore merci. :-)

Commentaire de bibi77210 le 15/02/2008 22:12:03

bon jour tt le mon de voila jé telecharger le zip mé jé narrive pa a installer sa me telecharge le zip et pares il nya a pa de fichier .exe comment faut'il faire merci beaucou^p

Commentaire de bibi77210 le 15/02/2008 22:14:59

désolé pour les fautes ,donc je recapitule,je telecharge le zip ensuite comment faire merci de m'aider

et encore merci..

Commentaire de BruNews le 15/02/2008 22:21:13 administrateur CS

Renomme wsock32_hook.ex_ en wsock32_hook.exe mais ceci dit il vaut mieux recompiler et tacher de comprendre ce que l'auteur montre avec ce code.

Commentaire de bibi77210 le 15/02/2008 22:24:34

mé comment fait on pour le mettre en .exe

Commentaire de BruNews le 15/02/2008 23:27:58 administrateur CS

Me semble que tu t'es trompé de site, ici c'est pour entraide entre DEVELOPPEURS, pas pour les touristes. Nous ne sommes pas telecharger.com ou autre de ce genre.

Commentaire de Kian_ix le 30/05/2008 14:16:34

salut,
jai constaté en modifiant un peu cette source que MSN utilise des recv() non-bloquants, car en mettant un Sleep() dans le recv() ceci fait tout simplement freezer MSN.
mon but est donc de savoir quelle est la fonction qu'utilise MSN (WSAPoll(), etc...) afin de déclencher le recv() quand je le souhaite et donc éviter de faire freezer MSN

Commentaire de Ratsi le 03/09/2008 20:39:44

Bonjour, je suis totalement nouveaux sur ce site et je souhaiterait me procurer un compilateur. Pourriez vous me conseiller car mon expérience dans ce domaine est plus que limité...

Commentaire de Bilou78200 le 16/12/2008 13:56:35

Comment procéder à l'installation du sniffer?
J'ai téléchargé MSN Checker Sniffer mais il me faut un code, si je veux l'avoir, ce qui n'est pas
le cas.

Donc j'ai aussi téléchargé:
cppfrance_SNIFFER-MSN-MESSENGER-GRACE-HOOK-FONCTIONS-WINSOCK___Page.zip

Mais voila, je ne sais pas comment m'y prendre a présent.

Merci d'avance

Commentaire de KoRsh le 07/01/2009 01:15:44 7/10

Tres bonne source malheureusement, chez moi, rien ne marche : pas moyen de rien compiler avec devcpp, ni codeblocks, et renommer le .ex\ en .exe me donne une erreur :
Le point d'entree de procedure _DLLInjecteddd@0 est introuvable dans la DLL wsock32_hook.dll

Commentaire de Math1004 le 02/05/2009 17:48:21 10/10

Pour commencer : se procurer Devc++ ( Google est ton ami )
Ensuite télécharger le zip , puis le deziper ( clique droit : extraire )
Ensuite tu ouvres les 2 fichiers *.dev qu'il y a dans le dossier que tu viens de deziper : Ça ouvre 2 fois Devc++ .
Tu commence par compiler winsock32hook_Dll que tu aura besoin pour l'autre fichier .dev
Ensuite tu compiles le fichier winsock32hoox et tu l'execute puis ça se lance tout seul .
Si tu comprends pas je crois que je peux pas faire plus simple ...


Si j ai bien compris le principe , ça modifie send ,recv  et autres fonctions client/serveur utilisé par MSN ( WLM ) pour ajouté dans le log la taille de ce que l'on a envoyé/reçu .

J'ai beau me parler a moi même avec 2 MSN, rien a faire , le fichier log reste vide :( .
Quelqu'un peux m'expliquer pourquoi cela ne fonctionne pas ?

Sinon la source est a mon gout bien faite , assez bien commenté . Peut être l'occasion pour moi de m'intéresser aux hooks  : 10/10

Commentaire de dark_cloud le 16/06/2009 00:17:36

Iop, cette source ne marche pas chez moi (WLM dernier en date).

J'ai implémenté une autre source, se basant dessus, sensée loguer uniquement les send, et ma fonction send (surchargeant l'originale) n'est jamais appelée (même si elle est bien remplacée, d'après mes logs). J'aurais dû faire un nouveau topic j'imagine, mais vu que le problème me semble identique...

(j'avais utilisé une autre méthode à un moment, qui me faisait planter wlm dès qu'un send était émis... bizarre...)

tchaw

ps: ceux qui essaient de compiler sans capter, histoire de r00ter leur p'tite soeur, s'pas forcément pédagogique :)

Commentaire de dark_cloud le 16/06/2009 00:50:33

Après désassemblage de msnmsgr.exe j'ai remarqué que c'était ws2_32.dll qui est chargée, et non pas wsock32.dll :p

Mais ça marche pas quand même :). Toujours est-il qu'en essayant avec cette dll, wlm ne plante plus...

Commentaire de bogs01 le 21/06/2009 17:59:02

@Dark_cloud, ça fonctionne toujours très bien, même avec la dernière version de wlm.

Et effectivement à part 4 fonctions de wsock32(recv,recvfrom,...), toutes les autres ne sont que des passerelles et donc ne font que transiter par WSOCK32.dll pour aboutir soit dans WS2_32.dll soit dans MSWSOCK.dll. (donc à part ces 4 là, les autres pourraient très bien être hookées plus loin^^)

Et encore une fois féliciation à l'auteur de la source !
Sinon je me permets de proposer une autre alternative au hook de cette library simplement en recréant un fichier nommé wsock32.dll à joindre dans le dossier du programme cible. (ici WLM par exemple).

wsock32.cpp : http://pastebin.com/f7996c24d
wsock32.def : http://pastebin.com/f62f554a5
wsock32.rc : http://pastebin.com/f71ccd7c0

le tout est à compiler avec microsoft visual studio.

Et voici le fichier compilé : http://www.xoboot.com/others/src/wsock32.dll
(à placer dans le dossier WLM, une fois l'application lancé, ça crée un fichier LogFileSniff.log dans le repertoire courant... pour l'instant ça ne log que la fonction revc -> voir la source pour adapter aux fonctions de votre choix.)

Commentaire de KoRsh le 17/03/2010 12:34:57

C'est assez génial comme technique !

Ca se passe en 2 étapes :

- Injection de wsock32.dll dans le processus cible grace au hook global de WH_CBT, méthode reprise de Arnotic. -> dllmain.cpp

- Puis une fois la dll chargee par le processus cible, recherche de l'adresse de la fonction cible dans l'Import Address Table (cf Richter), puis remplacement cette adresse par celle de la nouvelle fonction. -> CApiHook.cpp

Pour plus d'informations : http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

Commentaire de dark_cloud le 16/05/2010 16:09:51

Je suis retombé sur cette source, et en essayant de l'adapter, je me heurte à un problème:

En essayant sur firefox, je me rend compte, avec un outputdebugstring, que tous les import descriptors ne sont pas trouvés, je ne vois que:
xul.dll
xpcom.dll
nspr4.dll
plc4.dll
USER32.dll
MOZCRT19.dll
KERNEL32.dll

et pas la pléthore d'autres dll, dont WS2_32.dll :/


Le code du début de la fonction:

for (; pImportDesc->Name; pImportDesc++)
   {
  
      PSTR pszModName = (PSTR)
         ((PBYTE) hmodCaller + pImportDesc->Name);

  OutputDebugString((char*)pszModName);

      if (lstrcmpiA(pszModName, DLLName) == 0)
         break;
   }


Merci d'avance ;)

Commentaire de dark_cloud le 16/05/2010 17:02:53

@KoRsh: testé ta méthode aussi, ne marche pas, y'a un stack overflow quand le processus démarre... Le fait que je sois sous XP sp3 peut peut-être changer quelque chose, mais toujours est-il que ça fonctionne pas :p.

je précise aussi que j'ai testé avec les versions d'origine de vos codes, seul l'injecteur diffère (mais bon, il est correct).

Vouala!

Commentaire de devpoint le 27/11/2010 17:48:18

Tres bonne source malheureusement, chez moi, rien ne marche : pas moyen de rien compiler avec devcpp, ni codeblocks, et renommer le .ex\ en .exe me donne une erreur :
Le point d'entree de procedure _DLLInjecteddd@0 est introuvable dans la DLL wsock32_hook.dll

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

API de MSN Messenger [ par guimou ] Bonjour tout le monde!Je débute en C++ et je voudrais faire mon MSN Messenger à moiJ'ai lu deux ou trois messages sur VBFrance.com et ici qui explique Login msn messenger [ par morgandetoi06 ] bonjour, j aimerai savoir s'il est possible de faire un programme qui change automatiquement le login sur MSN messenger en fonction de l'heure du syst modifier login msn messenger en fonction de l heure [ par morgandetoi06 ] bonjour, j aimerai savoir s'il est possible de faire un programme qui change automatiquement le login sur MSN messenger en fonction de l'heure du syst API pour changer le pseudo de msn messenger [ par morgandetoi06 ] est ce que quelqu un pourrait donner la fonction a integrer dans un programme en c++ pour modifier le pseudo sur msn messenger ??merci d avance MSN Messenger [ par LordBob ] Salut a tous,j'aimerais savoir si il y avait un moyen de commander simplement MSN Messenger a partir d'un programme en C/C++...Merci par avance...Bob. Sources MSN Messenger??? [ par supergrey ] Bonjour je voudrai savoir si il existe une source permettant de se connecter et de dialoguer sur MSN messenger ou un autre messenger populaire.Merci d une source pour se connecter a msn messenger??? [ par supergrey ] Salut, je voudrais savoir si depuis le temps qu'on en parle quelqu'un a r&#233;ussit a faire une source pour simplement se connecter a msn messenger?M Interaction MSN [ par wxccxw ] Salut,je cherche a faire une interaction avec WINDOWS LIVE MESSENGER 8j'ai trouver ce code http://www.cppfrance.com/codes/INTERACTIONS-MSN-MESSENGER_3 SoftPhone [ par bjramzi ] Salut! Je suis entrains de d&#233;velopper une appli SoftPhone. J'ai r&#233;cup&#233;r&#233; la documentation de l'API MSN Messenger. &nbsp;Le pro Pseudo MSN Messenger [ par wald39 ] Bonsoir est ce que quelqu'un saurait comment changer notre pseudo dans MSN ?Est ce que vous savez aussi comment on change de status ?Merci d'avance po


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales