Windows Processes
What a process is made of, what normal looks like, the signs that one does not belong and how to check.
A process is a program while it runs. Windows gives each one its own number, the process ID (PID), its own memory and an account to act as. Almost any code an attacker runs on a Windows machine runs as a process or inside one. That makes the list of running processes one of the first places an investigator looks.
Two Ways to Look
The first way is live. You run a tool on the machine while the process is still going, and the tool asks Windows what it knows. The second is a memory image. That is a copy of everything in the machine's memory (RAM), saved to a file at one moment like a photograph, which you study later on another computer. Code that hides from live tools often still shows in the copy.
Live Machine
- Your tool
- asksWindows on the machine
- answers withWhat is running now
Quick, but it sees only what Windows reports, and running malware can hide from it.
Memory Image
- The machine's memory
- copied toA memory image file
- read later byA tool on another computer
One moment in time, but nothing on the machine can change the copy.
Tools You Will Meet
The pages name these tools. Each one asks a live machine, reads a memory image or searches the records machines keep.
On a Live Machine
- Task ManagerBuilt into Windows. It lists the programs running now and how much of the machine each one uses.
- Process ExplorerA free Microsoft tool that works like a detailed Task Manager. It shows each process under the one that started it, with its DLLs and handles.
- Defender Live ResponsePart of Defender for Endpoint. It opens a command console on one machine from the Defender portal, so you can list its processes from your desk.
- VelociraptorA free, open-source tool that asks one machine or thousands the same question at once. Each ready-made question is called an artifact.
In a Memory Image
- Volatility 3A free, open-source tool that reads a memory image on another computer. Each check it runs is called a plugin.
In Logs and Records
- SysmonA free Microsoft add-on that writes a record of each process start, network connection and more to its own Windows event log.
- Defender XDRMicrosoft's security product. Its sensor on each machine, Defender for Endpoint, records what happens there. You can search the last 30 days of those records with its query language, KQL. Source: Microsoft Learn (opens in a new tab)
- Microsoft SentinelMicrosoft's cloud log platform. It gathers records from many sources in one place, and you search it with the same KQL as Defender XDR.
- A log platform that gathers records from many sources in one place. You search it with its own language, SPL (Search Processing Language).
Reading a Check's Name
Velociraptor calls each check an artifact and Volatility 3 calls it a plugin. Both name them from general to specific, like a folder path.
Volatility 3 plugin
windowsAreaA Windows memory imagemalwareGroupChecks for hidden codepsxviewCheckProcess cross view
Velociraptor artifact
WindowsAreaWindows machinesSystemGroupWhat runs on the systemPslistCheckProcess list
psxview compares several of Windows' own lists of processes, so a process hiding from one of them stands out.
Inside a Process
A process is more than a name in a list. These pages open one up part by part, so start with what it is made of.
- What a Process Is Made OfStart Here
The parts every process has, why Windows needs each one, and who keeps it.
- Loaded DLLs
The modules inside each process, where each came from and who signed it.
- Handles, Pipes and Mutexes
What a process holds open, such as files, keys, other processes, pipes and mutexes.
- Memory Regions
A process's memory, region by region, with what each holds and how it may be used.
- Threads
What runs inside a process, and where each thread starts.
- Network Connections
Every connection and listening port tied to the process that owns it, live and in memory.
- Token and Privileges
Who a process runs as, with its account, groups, privileges and integrity level.
- Command Line and Environment
What each process was told to do, from creation records, the live system and memory.
Normal Processes
The window lists the core processes of a clean Windows 11 machine. Each row sits under the process that started it, as in Task Manager's tree. Pick a row to see what a genuine copy looks like.
Switch to Malicious Example to see ws-042, a fictional Windows 11 workstation used by alice, as an investigator found it at 10:08 UTC on 12 Oct 2026. The investigator flagged five of its processes. Two of them, a service and the command prompt it started, come from PsExec, a Microsoft tool that runs programs on other machines. The others include a service binary in C:\Windows\Temp and the genuine print spooler with code running inside it. Every page follows this one machine.
NoneNo program fileSystemNo program fileSystemC:\ Windows\ System32\ smss .exesmss .exeC:\ Windows\ System32\ smss .exesmss .exe, exitedC:\ Windows\ System32\ csrss .exesmss .exe, exitedC:\ Windows\ System32\ wininit .exewininit .exeC:\ Windows\ System32\ services .exeservices .exeC:\ Windows\ System32\ svchost .exeservices .exeC:\ Windows\ System32\ spoolsv .exeservices .exeC:\ ProgramData\ Microsoft\ Windows Defender\ Platform\ <version>\ MsMpEng .exewininit .exeC:\ Windows\ System32\ LsaIso .exewininit .exeC:\ Windows\ System32\ lsass .exewininit .exesmss .exeC:\ Windows\ System32\ smss .exesmss .exe, exitedC:\ Windows\ System32\ csrss .exesmss .exe, exitedC:\ Windows\ System32\ winlogon .exewinlogon .exewinlogon .exeC:\ Windows\ System32\ dwm .exewinlogon .exeC:\ Windows\ System32\ LogonUI .exewinlogon .exeC:\ Windows\ System32\ userinit .exeuserinit .exe, exitedC:\ Windows\ explorer .exeexplorer .exeexplorer .execmd .exeC:\ Windows\ System32\ conhost .exeSystemNo program fileexplorer.exe
Windows Shell, as the signed-in personPID 968, parent PID 912
The default shell, and the usual parent of the programs a person starts.
Normal Profile
A genuine copy shows these values.
- Parent
- userinit.exeLive tools usually show no parent, as userinit.exe has exited by then.
- Path
- The Windows folder (a value that published detection rules check for)
C:\A 32-bit copy lives in C:\Windows\SysWOW64.Windows\ explorer.exe - Account
- The person signed in
- Session
- The person's session
- Instances
- Count copies per person on a clean machine of the same build, with the same folder options.
- Starts
- At sign-in, after userinit.exeA late start alone proves little, because the shell can be restarted without a new sign-in.
- Command Line
- Read it with Get-CimInstance Win32_Process on a clean machine of the same build.
- Signed By
- Check the file with Sigcheck, which reads catalogue signatures too, on a clean machine of the same build.
A value that published detection rules check for.No public source states this value, so compare with a clean machine of the same Windows build.
How Attackers Abuse It
Each line links to the page that shows how to spot it.
- Code put into explorer.exe runs as the signed-in person, under a name every user trusts. Remote Thread Injection
- A program set to run at sign-in starts under explorer.exe, and a Windows name running from a user folder is the one to check. Wrong Path
Red Flags
Each sign links to the page that confirms it.
Can Your Tools See It?
Each mark says whether that tool can see it. Press one for its query.
Open the Full Page for explorer.exeCore processes only
Red Flags and How to Confirm Them
Most of what is wrong in a process list shows as something out of place. It might be a trusted name in the wrong folder or a core process with an odd parent. No sign is proof on its own, so treat each one as a lead. Each card opens the page that shows how to confirm it.
- Wrong Parent
A process started by a parent that never starts it, or a core process with odd children.
- Wrong Path
A system name running outside its home folder, or a service run from a writable one.
- Misspelt and Look-Alike Names
A name one letter off a Windows process, or written with look-alike characters.
- Wrong Account
A process running as an account, session or integrity level it never uses.
- Extra or Missing Instances
More copies of a core process than Windows runs, or a copy missing from the list.
- Unusual Start Time
A core process that started long after its session began, or out of step with the rest.
- Renamed, Unsigned or Falsely Signed Binaries
A known tool under another name, or a file that no valid signature vouches for.
- Odd Command Lines
Encoded or hidden commands, missing arguments, or a command line changed after start.
- Network Connections That Should Not Exist
A process with no reason to use the network reaching out, above all to the internet.
- Unsigned or Oddly Signed Modules
A DLL in a trusted process with no valid signature, or signed by someone unexpected.
How Malware Hides in a Process
Here code runs inside or behind a trusted process, so the process list can look normal. Each card says which evidence sees it. EDR telemetry is the record a security product such as Defender for Endpoint keeps of what each process did. A process that only wears a trusted name or path is covered by Misspelt and Look-Alike Names, Wrong Path and Renamed, Unsigned or Falsely Signed Binaries.
- Remote Thread Injection
A thread one process started in another, running code that no file on disk backs.
- Memory
- EDR Telemetry
- Logs, partly
- Process Hollowing
A genuine-looking process whose image in memory is not the file it started from.
- Memory
- EDR Telemetry, partly
- Logs, partly
- DLL Search Order Hijacking and Side-Loading
A trusted program loading a DLL from the wrong folder, because of where it looks first.
- Memory
- EDR Telemetry
- Disk, partly
- Logs, partly
- Parent Process Spoofing
A recorded parent that is not the process that really created the child.
- Memory, partly
- EDR Telemetry, partly
- Logs, partly
- Abused Built-In and Admin Tools
Genuine built-in and admin tools, like rundll32.exe or PsExec, used to run or fetch code.
- Memory, partly
- EDR Telemetry
- Disk, partly
- Logs, partly
Eight more technique pages are being written.
How to Check
These pages are the ways to check a process, from listing every one to capturing its memory for later.
- Process Listings and Scans
Every process with its path, parent, account and start time, live or from a memory image.
- Process Trees and Call Chains
Who started whom, from creation records, live views and memory, exited parents included.
- Checking for Injected Code
Executable memory no file backs, threads that start there, replaced images and hooks.
- Dumping a Process and Memory
Capture one process, or the whole of memory, for offline work, and what blocks it.
- Defender Live Response
What Defender for Endpoint live response can and cannot collect about a process.