Heim Backend-Entwicklung C#.Net-Tutorial Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs

Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs

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

Wenn wir einige destruktive Programme schreiben, müssen wir den Prozess durchlaufen und die ID extrahieren

Für die oben genannten Funktionen führen wir zunächst mehrere APIs ein


1.CreateToolhelp32Snapshout-Funktion

Erhalten Sie einen Snapshot eines Prozesses, Moduls oder Threads

Die Syntax lautet wie folgt:

HANDLE WINAPI CreateToolhelp32Snapshot(  
  _In_ DWORD dwFlags,  
  _In_ DWORD th32ProcessID  
);
Nach dem Login kopieren

Der erste Parameter: Der Snapshot enthält die Systemteil sind die Parameter wie folgt:

Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs


Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs

Wir verwenden TH32CS_SNAPPROCESS

Snapshot hier Enthält alle Prozesse im System.


Im zweiten geht es um die PROCESSENTRY32-Struktur

Die Syntax lautet wie folgt:

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;
Nach dem Login kopieren

Dies beschreibt einen Eintrag, der Beim Aufruf des Snapshots wird der Prozess im Systemadressraum gelesen.


Hier stellen wir nur szExeFile[MAX_PATH] und

th32ParentProcessID vor: Dies ist die Identität des Prozesses (übergeordneter Prozess), nachdem der Prozess erstellt wurde

szExeFile: Der Name der ausführbaren Datei im Prozess


Das Folgende ist der Quellcode! Einige Funktionen werden nicht erklärt, aber Sie können sie durch Kommentare oder wörtliche Bedeutungen verstehen

#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;  
}
Nach dem Login kopieren

Die laufenden Ergebnisse sind wie folgt


Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs

Das Obige ist der Inhalt des C/C++-Gadgets zum Durchlaufen von Prozessen und Prozess-IDs. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php. cn)!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen PHP und C#? Was sind die Unterschiede zwischen PHP und C#? Jun 02, 2023 pm 01:45 PM

Die Unterschiede zwischen PHP und C# sind: 1. Das Sprachtypsystem ist unterschiedlich, PHP ist dynamisch, während C# ein statischer Typ ist. 2. Die verwendeten Plattformen sind unterschiedlich. PHP kann plattformübergreifend arbeiten, während C# exklusiv für Windows ist . Das Programmierparadigma ist anders: PHP unterstützt objektorientierte, prozedurale und funktionale Programmierung, und C# ist eher objektorientiert. Die Ausführungsgeschwindigkeit ist unterschiedlich, PHP ist schneller und C# ist relativ langsam Anwendungsszenarien sind unterschiedlich, PHP wird in der Webentwicklung, auf Servern usw. verwendet. C# wird für Windows-Desktop- und Webanwendungen verwendet.

Warum ist in C/C++ die Größe der Struktur nicht gleich der Summe der Größe jedes Mitglieds? Warum ist in C/C++ die Größe der Struktur nicht gleich der Summe der Größe jedes Mitglieds? Aug 26, 2023 am 09:29 AM

Die Größe der durch sizeof() erhaltenen Strukturtypelemente entspricht nicht immer der Größe jedes einzelnen Elements. Manchmal fügt der Compiler etwas Auffüllung hinzu, um Ausrichtungsprobleme zu vermeiden. Daher können sich die Abmessungen ändern. Polsterung wird hinzugefügt, wenn auf ein Strukturelement ein größeres Element folgt oder sich am Ende der Struktur befindet. Verschiedene Compiler haben unterschiedliche Arten von Ausrichtungseinschränkungen. Im C-Standard sind die gesamten Alignment-Strukturen von der Implementierung abhängig. Fall 1 In diesem Fall ist das doppelte z 8 Bytes lang, was größer als x (4 Bytes) ist. Es werden also weitere 4 Byte Auffüllung hinzugefügt. Darüber hinaus verfügen die Kurztypdaten y über 2 Byte Speicherplatz im Speicher, sodass zusätzliche 6 Byte als Auffüllung hinzugefügt werden. Beispielcode #include<stdio.h>structmyS

Erstellen Sie mit dem Clang-Tool ein C/C++-Codeformatierungstool Erstellen Sie mit dem Clang-Tool ein C/C++-Codeformatierungstool Aug 26, 2023 pm 01:09 PM

In diesem Tutorial besprechen wir ein Programm zum Erstellen eines C/C++-Codeformatierungstools mit Hilfe von Clangtools. SETUPsudoaptinstallpythonsudoaptinstallclang-format-3.5 Anschließend erstellen wir eine Python-Datei an einem Speicherort, an dem der aktuelle Benutzer Lese- und Schreibberechtigungen hat. Beispiel importoscpp_extensions=(".cxx",".cpp&

In C/C++ gibt es zwei Operationen: Vor-Inkrementierung und Nach-Inkrementierung. In C/C++ gibt es zwei Operationen: Vor-Inkrementierung und Nach-Inkrementierung. Aug 25, 2023 pm 02:25 PM

Hier werfen wir einen Blick darauf, was in C oder C++ Pre-Inkrement und Post-Inkrement sind. Sowohl Pre-Inkrement als auch Post-Inkrement sind Inkrementoperatoren. Aber es gibt kaum einen Unterschied zwischen ihnen. Der Pre-Inkrement-Operator erhöht zunächst den Wert einer Variablen und weist ihn dann anderen Variablen zu. Im Fall des Post-Inkrement-Operators weist er jedoch zuerst einer Variablen zu und erhöht dann den Wert. Beispiel #include<iostream>usingnamespacestd;main(){ intx,y,z;

In einem Artikel wird die Vscode-Konfiguration der C/C++-Laufumgebung ausführlich erläutert [Unterricht auf Kindermädchenniveau] In einem Artikel wird die Vscode-Konfiguration der C/C++-Laufumgebung ausführlich erläutert [Unterricht auf Kindermädchenniveau] Feb 27, 2023 pm 07:33 PM

Wie entwickle ich C/C++ in VScode? Wie konfiguriere ich die C/C++-Umgebung? Der folgende Artikel wird Ihnen das Tutorial zur VScode-Konfiguration der C/C++-Laufumgebung vorstellen (ich hoffe, dass es für alle hilfreich ist).

In C/C++ ist die Funktion strcpy() eine Funktion, die zum Kopieren eines Strings in einen anderen String verwendet wird In C/C++ ist die Funktion strcpy() eine Funktion, die zum Kopieren eines Strings in einen anderen String verwendet wird Sep 09, 2023 am 08:49 AM

Die Funktion strcpy() ist eine Standardbibliotheksfunktion. Es wird verwendet, um eine Zeichenfolge in eine andere Zeichenfolge zu kopieren. In der C-Sprache wird es in der Header-Datei „string.h“ deklariert, während es in der C++-Sprache in der cstring-Header-Datei deklariert wird. Es gibt einen Zeiger auf das Ziel zurück. Dies ist die Syntax von strcpy() in der C-Sprache, char*strcpy(char*dest,constchar*src); einige wichtige Punkte von strcpy(). Es kopiert die gesamte Zeichenfolge in die Zielzeichenfolge. Es ersetzt die gesamte Zeichenfolge, anstatt sie anzuhängen. Die Quellzeichenfolge wird dadurch nicht geändert. Das Folgende ist ein Beispiel für strcpy() in der C-Sprache: Beispiel-Online-Demo#in

C/C++-Programm zur Berechnung der Anzahl der nachgestellten Nullen in der Fakultät einer Zahl C/C++-Programm zur Berechnung der Anzahl der nachgestellten Nullen in der Fakultät einer Zahl Aug 29, 2023 pm 12:29 PM

Hier erfahren Sie, wie Sie die Anzahl der nachgestellten Nullen im Fakultätsergebnis einer beliebigen Zahl berechnen. Wenn also n=5, dann 5! =120. Es gibt nur eine abschließende 0. Für 20! sind es 4 Nullen als 20!=2432902008176640000. Der einfachste Weg besteht darin, die Fakultät zu berechnen und 0 zu zählen. Aber für größere Werte von n schlägt dieser Ansatz fehl. Deshalb werden wir einen anderen Ansatz wählen. Wenn die Primfaktoren 2 und 5 sind, erscheinen nachgestellte Nullen. Wenn wir 2 und 5 berechnen, können wir das Ergebnis erhalten. Dazu befolgen wir diese Regel. Trailing 0 = Zählalgorithmus für 5 in faktoriellen (n) Primfaktoren countTrailingZeros(n)begin &

In C/C++ ist die Funktion putwchar() eine Funktion zur Ausgabe eines Breitzeichens In C/C++ ist die Funktion putwchar() eine Funktion zur Ausgabe eines Breitzeichens Sep 11, 2023 pm 05:57 PM

In diesem Artikel besprechen wir das Funktionsprinzip, die Syntax und Beispiele der Funktion putwchar() in C++STL. Was ist putwchar()? Die Funktion putwchar() ist eine in C++STL integrierte Funktion, die in der Headerdatei <cwchar> definiert ist. Die Funktion putwchar() wird verwendet, um breite Zeichen auf dem Standardausgabegerät zu schreiben. Diese Funktion übernimmt das Breitzeichen aus dem Argument und schreibt es in die Standardausgabe oder Standardausgabe des Systems. Diese Funktion ist die Breitzeichenversion von putchar(), die in der Header-Datei <cstdio> definiert ist. Syntax putwchar(wchar_twidec); Parameter Diese Funktion akzeptiert die folgenden Parameter

See all articles