

Process Explorer can only see/find the processes that are in the process list which is a doubly linked list sitting somewhere in memory. There's an open source monitor called YaProcmon (Yet Another Process Monitor) that has a feature that specifically looks for process hiding mechanisms, and attempts to expose them. But if a hidden process is accessing the registry, files, or communicating over the network it would be shown here. The downside is that the output is massive, and you generally have to know what you're looking for. It bases its output off of Windows API file/registry/network function calls. Procmon is awesome for process monitoring. It also links into VirusTotal to let you know if any currently running processes it sees is known to be malicious. Process Explorer is very nice from a GUI perspective.

SysInternals Suite has multiple different monitoring programs.

That being said there are a couple of good tools out there. Regardless of which monitoring program you use you're not guaranteed to find all processes running. So it's dependent on the particular piece of software trying to hide as well as the monitoring software trying to find it. If certain Windows API functions are hooked, then process managers using those functions will not see the process. This really depends on how the process is hidden.
