Page 1 sur 1

Surveillance de process

Publié : lun. 06/juin/2005 9:54
par Golfy
Grâce aux libs de Droopy et de Rings et à l'ajout de quelques fonctions PB, voici un petit programme qui indique le chemin de lancement des process demandés, leurs PID et leur empreinte MD5.
Utile pour vérifier si l'antivirus en mémoire n'est pas en réalité un virus ayant pris le même nom, etc.

Le résultat est de la forme suivante :

Code : Tout sélectionner

--------------------------------------
PID       : 2332
Nom       : fwsrv.exe
Chemin    : C:\Program Files\Jetico\Jetico Personal Firewall\fwsrv.exe
Empreinte : 2fc76cc37b982de28bc99e7f599c713f
Date      : 20050512110644     Taille : 118784
--------------------------------------
PID       : 1764
Nom       : PXAgent.exe
Chemin    : C:\Program Files\Prevx Home\PXAgent.exe
Empreinte : aab4b7c9de99830308b4050b061fa67b
Date      : 20050207112530     Taille : 147456
--------------------------------------
PID       : 0
Nom       : Unknow process
Chemin    : 
Empreinte : 
Date      : 19700101000000     Taille : -1
Voici maintenant le code :

Code : Tout sélectionner

; Ce programme regarde si un process nommé existe en mémoire
; puis il vérifie l'empreinte MD5 du fichier exécutable (merci PureBasic)
; Malheureusement, ce n'est pas parce qu'un process tourne, qu'il est actif
; 
; Attention : ce programme utilise les librairies ProcessLib et Droopy's Lib (> 1.22) : 
;             http://www.purearea.net/pb/english/index.htm
;              Les librairies sont en concurrences si vous choisissez une Droopy'lib <1.22

Declare ExisteProcess(nom.s)
ProcessCount = ExamineProcesses() 

void = ExisteProcess("fwsrv.exe")
void = ExisteProcess("PXAgent.exe")
void = ExisteProcess("AVGNT.EXE")

Procedure.l ExisteProcess(nom.s)
   PID = GetProcessPID(nom.s)
   ProcessName.s = GetProcessName(PID)
   ProcessNamePath.s = GetProcessFileName(PID)
   ProcessMD5.s = MD5FileFingerprint(ProcessNamePath.s)
   TailleLoc = FileSize(ProcessNamePath.s)
   DateLoc$= FormatDate("%yyyy%mm%dd%hh%ii%ss",FileGetTime(ProcessNamePath.s,2))
  
   Debug "--------------------------------------"
   Debug "PID       : "+Str(PID)
   Debug "Nom       : "+ProcessName.s
   Debug "Chemin    : "+ProcessNamePath.s
   Debug "Empreinte : "+ProcessMD5.s
   Debug "Date      : "+DateLoc$+"     Taille : "+ Str(TailleLoc)

   ProcedureReturn PID
EndProcedure