begin process at 2012 05 24 02:49:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > ÉNUMÉRATION DES PROCESSUS ET DÉCHARGEMENT FORCÉ DE DLL

ÉNUMÉRATION DES PROCESSUS ET DÉCHARGEMENT FORCÉ DE DLL


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Niveau :Initié Date de création :02/04/2005 Vu / téléchargé :10 538 / 695

Auteur : Nebula

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

En travaillant sur une dll de hook système, je me suis souvent arraché les cheveux parce qu'elle se déchargeait mal. J'ai donc repensé à une source que j'avais vue ici qui permettait d'injecter du code dans les autres applications, et me suis dit pourquoi ne pas l'utiliser pour décharger ma dll à coups de FreeLibrary ?

Voici le résultat, un petit utilitaire qui scanne tous les processus (en obtenant les PID directement à partir de la perflib, cette méthode n'a jamais été présentée sur cppfrance à ma connaissance - en tout cas mes recherches ne m'ont ramené sur aucune source) et crée un thread distant afin de décharger la dll, si elle est présente. Le thread renvoie un entier qui indique le résultat de l'opération (succès, erreur ou dll non présente dans ce processus).

Le code s'explique de lui même et n'est donc PAS commenté, lisez les liens fournis en annexe pour le comprendre...

Source

  • Sortie du programme chez moi :
  • Tentative de désinfection de `System.exe' (PID 4) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `smss.exe' (PID 368) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `csrss.exe' (PID 424) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `winlogon.exe' (PID 448) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `services.exe' (PID 492) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `lsass.exe' (PID 504) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `svchost.exe' (PID 648) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `svchost.exe' (PID 716) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `svchost.exe' (PID 756) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `svchost.exe' (PID 816) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `svchost.exe' (PID 836) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `spoolsv.exe' (PID 1008) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `nvsvc32.exe' (PID 1172) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `vmware-authd.exe' (PID 1284) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `vmnat.exe' (PID 1300) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `vmnetdhcp.exe' (PID 1328) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `alg.exe' (PID 1500) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `sleep.exe' (PID 1792) ... ce processus n'est pas infecté
  • Tentative de désinfection de `svchost.exe' (PID 1896) ... impossible d'ouvrir le processus !
  • Tentative de désinfection de `winamp.exe' (PID 3456) ... ce processus n'est pas infecté
  • Tentative de désinfection de `stunnel-4.08.exe' (PID 2860) ... ce processus n'est pas infecté
  • Tentative de désinfection de `mirc.exe' (PID 2656) ... désinfection réussie
  • Tentative de désinfection de `thunderbird.exe' (PID 572) ... ce processus n'est pas infecté
  • Tentative de désinfection de `firefox.exe' (PID 700) ... désinfection réussie
  • Tentative de désinfection de `taskmgr.exe' (PID 3880) ... désinfection réussie
  • Tentative de désinfection de `explorer.exe' (PID 140) ... désinfection réussie
  • Tentative de désinfection de `xchat.exe' (PID 196) ... désinfection réussie
  • Tentative de désinfection de `cmd.exe' (PID 2604) ... ce processus n'est pas infecté
  • Tentative de désinfection de `rundll32.exe' (PID 2776) ... désinfection réussie
  • Tentative de désinfection de `clean.exe' (PID 1424) ... ce processus n'est pas infecté
Sortie du programme chez moi :
Tentative de désinfection de `System.exe' (PID 4) ... impossible d'ouvrir le processus !
Tentative de désinfection de `smss.exe' (PID 368) ... impossible d'ouvrir le processus !
Tentative de désinfection de `csrss.exe' (PID 424) ... impossible d'ouvrir le processus !
Tentative de désinfection de `winlogon.exe' (PID 448) ... impossible d'ouvrir le processus !
Tentative de désinfection de `services.exe' (PID 492) ... impossible d'ouvrir le processus !
Tentative de désinfection de `lsass.exe' (PID 504) ... impossible d'ouvrir le processus !
Tentative de désinfection de `svchost.exe' (PID 648) ... impossible d'ouvrir le processus !
Tentative de désinfection de `svchost.exe' (PID 716) ... impossible d'ouvrir le processus !
Tentative de désinfection de `svchost.exe' (PID 756) ... impossible d'ouvrir le processus !
Tentative de désinfection de `svchost.exe' (PID 816) ... impossible d'ouvrir le processus !
Tentative de désinfection de `svchost.exe' (PID 836) ... impossible d'ouvrir le processus !
Tentative de désinfection de `spoolsv.exe' (PID 1008) ... impossible d'ouvrir le processus !
Tentative de désinfection de `nvsvc32.exe' (PID 1172) ... impossible d'ouvrir le processus !
Tentative de désinfection de `vmware-authd.exe' (PID 1284) ... impossible d'ouvrir le processus !
Tentative de désinfection de `vmnat.exe' (PID 1300) ... impossible d'ouvrir le processus !
Tentative de désinfection de `vmnetdhcp.exe' (PID 1328) ... impossible d'ouvrir le processus !
Tentative de désinfection de `alg.exe' (PID 1500) ... impossible d'ouvrir le processus !
Tentative de désinfection de `sleep.exe' (PID 1792) ... ce processus n'est pas infecté
Tentative de désinfection de `svchost.exe' (PID 1896) ... impossible d'ouvrir le processus !
Tentative de désinfection de `winamp.exe' (PID 3456) ... ce processus n'est pas infecté
Tentative de désinfection de `stunnel-4.08.exe' (PID 2860) ... ce processus n'est pas infecté
Tentative de désinfection de `mirc.exe' (PID 2656) ... désinfection réussie
Tentative de désinfection de `thunderbird.exe' (PID 572) ... ce processus n'est pas infecté
Tentative de désinfection de `firefox.exe' (PID 700) ... désinfection réussie
Tentative de désinfection de `taskmgr.exe' (PID 3880) ... désinfection réussie
Tentative de désinfection de `explorer.exe' (PID 140) ... désinfection réussie
Tentative de désinfection de `xchat.exe' (PID 196) ... désinfection réussie
Tentative de désinfection de `cmd.exe' (PID 2604) ... ce processus n'est pas infecté
Tentative de désinfection de `rundll32.exe' (PID 2776) ... désinfection réussie
Tentative de désinfection de `clean.exe' (PID 1424) ... ce processus n'est pas infecté

 Conclusion

Les processus impossibles à ouvrir correspondent aux services, il est possible de les désinfecter quand même en se donnant le SeDebugPrivilege (voir plus bas).

Seule contrainte actuellement : il faut recompiler le programme pour changer le nom de la dll à supprimer (MODULE_NAME dans le fichier main.c).

J'attend vos commentaires, critiques, remarques, questions... etc :)

-----
Doc sur la perflib : http://msdn.microsoft.com/library/default.asp?url= /library/en-us/perfmon/base/performance_data_forma t.asp
Source qui explique les remote threads, de BlackGoddess : http://www.cppfrance.com/code.aspx?id=10743
Pour désinfecter même les services, SetDebugPrivileges : http://www.cppfrance.com/code.aspx?id=26858

 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


 Sources du même auteur

Source avec Zip EXÉCUTABLES SE VÉRIFIANT LORSQU'ILS SONT LANCÉS
Source avec Zip Source avec une capture RICHEDIT AVEC SUPPORT DES THÈMES XP
Source avec Zip CALCUL DE HASH MD5 (WIN32)
Source avec Zip VÉRIFIER QUE L'UTILISATEUR EST ADMINISTRATEUR
Source avec Zip KILL ANY PROCESS

 Sources de la même categorie

Source avec Zip Source avec une capture INFORMATION PROCESSEUR (CPUID) par Devils_Tiger
Source avec Zip Source avec une capture LECTURE TEMPÉRATURE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture LECTURE FRÉQUENCE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10

Commentaires et avis

Commentaire de mirlaine le 05/04/2005 00:55:31

salut c'est original comme méthode pour list les process

sinon je croi ya moyen que ca marche avec tou les process...
je me rappel plus comment a+

Commentaire de Nebula le 05/04/2005 04:05:24

Si tu parles des processus impossibles à ouvrir, je donne la solution dans mon dernier lien (en plus tu t'en sers dans une de tes sources :p) : SeDebugPrivilege :)

Commentaire de Nebula le 05/04/2005 04:18:07

Je précise tout de même pour ceux qui auraient envie d'essayer qu'il serait extrêmement dangereux pour la stabilité du système d'activer ce privilège et d'exécuter mon programme tel quel : la plupart des services système de microsoft sont des applications natives qui ne dépendent que de ntdll, donc n'ont pas de kernel32 mappée en mémoire (ce qui implique pas de GetModuleHandle ni de FreeLibrary dans le thread distant, sinon BOUM)...

Soit il faudrait les forcer à charger kernel32 (en passant par l'api native), soit il faudrait utiliser directement l'api native dans le thread distant... Si tu es motivé, ntdll est une des rares dll avec kernel32 et user32 à être toujours chargée à son adresse de prédilection (ce qui signifie que ses fonctions ont les mêmes adresses dans tous les processus courants).

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,764 sec (4)

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