


Kleines C/C++-Tool zum Durchlaufen von Prozessen und Prozess-IDs
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 );
Der erste Parameter: Der Snapshot enthält die Systemteil sind die Parameter wie folgt:
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;
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; }
Die laufenden Ergebnisse sind wie folgt
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)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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

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&

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]](https://img.php.cn/upload/article/000/000/024/63fc94eb8852a975.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
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).

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

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 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
