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.
27 nov. 2010 à 17:48
Le point d'entree de procedure _DLLInjecteddd@0 est introuvable dans la DLL wsock32_hook.dll
16 mai 2010 à 17:02
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!
16 mai 2010 à 16:09
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 ;)
17 mars 2010 à 12:34
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
21 juin 2009 à 17:59
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.)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.