Maison développement back-end Tutoriel C#.Net Gadget C/C pour parcourir les processus et les ID de processus

Gadget C/C pour parcourir les processus et les ID de processus

Jan 22, 2017 pm 02:06 PM
c/c++

Lorsque nous écrivons des programmes destructeurs, nous devons parcourir le processus et extraire l'ID

Pour les fonctions ci-dessus, nous introduisons d'abord plusieurs API


1.CreateToolhelp32Fonction Snapshout

Obtenir un instantané d'un processus, d'un module ou d'un thread

La syntaxe est la suivante :

HANDLE WINAPI CreateToolhelp32Snapshot(  
  _In_ DWORD dwFlags,  
  _In_ DWORD th32ProcessID  
);
Copier après la connexion

Le premier paramètre : l'instantané contient le partie système, les paramètres sont les suivants :

Gadget C/C pour parcourir les processus et les ID de processus


Gadget C/C pour parcourir les processus et les ID de processus

Nous utilisons TH32CS_SNAPPROCESS

instantané ici Contient tous les processus du système.


La seconde concerne la structure PROCESSENTRY32

La syntaxe est la suivante :

typedef struct tagPROCESSENTRY32 {  
  DWORD     dwSize;  
  DWORD     cntUsage;  
  DWORD     th32ProcessID;  
  ULONG_PTR th32DefaultHeapID;  
  DWORD     th32ModuleID;  
  DWORD     cntThreads;  
  DWORD     th32ParentProcessID;  
  LONG      pcPriClassBase;  
  DWORD     dwFlags;  
  TCHAR     szExeFile[MAX_PATH];  
} PROCESSENTRY32, *PPROCESSENTRY32;
Copier après la connexion

Ceci décrit une entrée, qui est Lorsque l'instantané est appelé, le processus dans l'espace d'adressage du système est lu.


Ici, nous introduisons uniquement szExeFile[MAX_PATH] et

th32ParentProcessID : il s'agit de l'identité du processus (processus parent) après la création du processus

szExeFile : Le nom du fichier exécutable dans le processus


Ce qui suit est le code source ! Certaines fonctions ne sont pas expliquées, mais vous pouvez les comprendre à travers des commentaires ou des significations littérales

#include <Windows.h>  
#include <stdio.h>  
#include <TlHelp32.h>  
  
int main()  
{  
    HANDLE hProceessnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if (hProceessnap == INVALID_HANDLE_VALUE)  
    {  
        printf_s("创建进行快照失败\n");  
        return -1;  
    }  
    else  
    {  
        PROCESSENTRY32 pe32;  
        pe32.dwSize = sizeof(pe32);  
        BOOL hProcess = Process32First(hProceessnap, &pe32);  
        char buff[1024];  
        while (hProcess)  
        {  
            wsprintf(buff, "进程名:%s--------------------进程ID:%d", pe32.szExeFile, pe32.th32ParentProcessID);  
            printf_s("%s\n", buff);  
            memset(buff, 0x00, 1024);  
            hProcess = Process32Next(hProceessnap, &pe32);  
        }  
    }  
    CloseHandle(hProceessnap);  
  
    return 0;  
}
Copier après la connexion

Les résultats d'exécution sont les suivants


Gadget C/C pour parcourir les processus et les ID de processus

Ce qui précède est le contenu du gadget C/C qui traverse les processus et les ID de processus. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php. cn) !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les différences entre php et c# Quelles sont les différences entre php et c# Jun 02, 2023 pm 01:45 PM

Les différences entre php et c# sont : 1. Le système de types de langage est différent, PHP est dynamique, tandis que C# est de type statique ; 2. Les plates-formes utilisées sont différentes, PHP peut réaliser des opérations multiplateformes, tandis que C# est exclusif à Windows 3 ; .Le paradigme de programmation est différent, PHP prend en charge la programmation orientée objet, procédurale et fonctionnelle, et C# est plus enclin à la programmation orientée objet ;4. La vitesse d'exécution est différente, PHP est plus rapide et C# est relativement lent ; les scénarios d'application sont différents, PHP est utilisé dans le développement Web, les serveurs, etc. C# est utilisé pour les applications de bureau et Web Windows.

Pourquoi en C/C++, la taille de la structure n'est pas égale à la somme des tailles de chaque membre ? Pourquoi en C/C++, la taille de la structure n'est pas égale à la somme des tailles de chaque membre ? Aug 26, 2023 am 09:29 AM

La taille des éléments de type structure obtenus par sizeof() n'est pas toujours égale à la taille de chaque membre individuel. Parfois, le compilateur ajoute du remplissage pour éviter les problèmes d'alignement. Les dimensions peuvent donc changer. Un remplissage est ajouté lorsqu'un membre de la structure est suivi d'un membre de plus grande taille ou se trouve à l'extrémité de la structure. Différents compilateurs ont différents types de contraintes d'alignement. Dans la norme C, les structures d'alignement total dépendent de l'implémentation. Cas 1 Dans ce cas, le double z fait 8 octets de long, ce qui est supérieur à x (4 octets)). Ainsi, 4 octets supplémentaires de remplissage sont ajoutés. De plus, les données de type court y disposent de 2 octets d'espace en mémoire, donc 6 octets supplémentaires sont ajoutés comme remplissage. Exemple de code #include<stdio.h>structmyS

Créer un outil de formatage de code C/C++ à l'aide de l'outil Clang Créer un outil de formatage de code C/C++ à l'aide de l'outil Clang Aug 26, 2023 pm 01:09 PM

Dans ce didacticiel, nous discuterons d'un programme pour créer un outil de formatage de code C/C++ à l'aide des outils clang. SETUPsudoaptinstallpythonsudoaptinstallclang-format-3.5 Nous créerons ensuite un fichier Python dans un emplacement où l'utilisateur actuel dispose d'autorisations de lecture et d'écriture. Exemple importoscpp_extensions=(".cxx",".cpp&

En C/C++, il existe deux opérations : le pré-incrémentation et le post-incrémentation. En C/C++, il existe deux opérations : le pré-incrémentation et le post-incrémentation. Aug 25, 2023 pm 02:25 PM

Nous examinons ici ce que sont le pré-incrémentation et le post-incrémentation en C ou C++. Le pré-incrément et le post-incrément sont des opérateurs d'incrément. Mais il y a peu de différence entre eux. L'opérateur de pré-incrémentation incrémente d'abord la valeur d'une variable puis l'affecte à d'autres variables, mais dans le cas de l'opérateur de post-incrémentation, il l'affecte d'abord à une variable puis incrémente la valeur. Exemple #include<iostream>usingnamespacestd;main(){ intx,y,z x=10;

Un article explique en détail la configuration de vscode, l'environnement d'exécution C/C++ [enseignement au niveau nounou] Un article explique en détail la configuration de vscode, l'environnement d'exécution C/C++ [enseignement au niveau nounou] Feb 27, 2023 pm 07:33 PM

Comment développer du C/C++ en VScode ? Comment configurer l'environnement C/C++ ? L'article suivant partagera avec vous le didacticiel de configuration de VScode sur l'environnement d'exécution C/C++ (enseignement au niveau nounou). J'espère qu'il sera utile à tout le monde !

En C/C++, la fonction strcpy() est une fonction utilisée pour copier une chaîne dans une autre chaîne En C/C++, la fonction strcpy() est une fonction utilisée pour copier une chaîne dans une autre chaîne Sep 09, 2023 am 08:49 AM

La fonction strcpy() est une fonction de bibliothèque standard. Il est utilisé pour copier une chaîne dans une autre chaîne. En langage C, il est déclaré dans le fichier d'en-tête "string.h", tandis qu'en langage C++, il est déclaré dans le fichier d'en-tête cstring. Il renvoie un pointeur vers la destination. C'est la syntaxe de strcpy() en langage C, char*strcpy(char*dest,constchar*src); quelques points clés de strcpy(). Il copie la chaîne entière dans la chaîne cible. Il remplace la chaîne entière au lieu de l'ajouter. Cela ne change pas la chaîne source. Voici un exemple de strcpy() en langage C : Exemple de démonstration en ligne#in

Programme C/C++ pour calculer le nombre de zéros à droite dans la factorielle d'un nombre Programme C/C++ pour calculer le nombre de zéros à droite dans la factorielle d'un nombre Aug 29, 2023 pm 12:29 PM

Ici, nous verrons comment calculer le nombre de zéros à droite dans le résultat factoriel de n’importe quel nombre. Donc si n=5, alors 5 ! =120. Il n’y a qu’un seul 0 final. Pour 20 !, ce serait 4 zéros comme 20 !=2432902008176640000. Le moyen le plus simple est de calculer la factorielle et de compter 0. Mais pour des valeurs de n plus grandes, cette approche échoue. Nous allons donc adopter une autre approche. Si les facteurs premiers sont 2 et 5, des zéros à droite apparaîtront. Si nous calculons 2 et 5, nous pouvons obtenir le résultat. Pour ce faire, nous suivrons cette règle. 0 final = Algorithme de comptage pour 5 dans les facteurs premiers factoriels (n) countTrailingZeros(n)begin&

En C/C++, la fonction putwchar() est une fonction utilisée pour générer un caractère large En C/C++, la fonction putwchar() est une fonction utilisée pour générer un caractère large Sep 11, 2023 pm 05:57 PM

Dans cet article, nous discuterons du principe de fonctionnement, de la syntaxe et des exemples de la fonction putwchar() en C++STL. Qu'est-ce que putwchar() ? La fonction putwchar() est une fonction intégrée en C++STL, définie dans le fichier d'en-tête <cwchar>. La fonction putwchar() est utilisée pour écrire des caractères larges sur le périphérique de sortie standard. Cette fonction prend le caractère large de l'argument et l'écrit sur la sortie standard ou la sortie standard du système. Cette fonction est la version en caractères larges de putchar(), qui est définie dans le fichier d'en-tête <cstdio>. Syntaxe putwchar(wchar_twidec); Paramètres Cette fonction accepte les paramètres suivants

See all articles