I'm trying to search the tasklist using Java to find out whether a specific program is running on a person's computer. I have everything working fine except for the fact that it can easily be bypassed by changing the process name, or spoofing the name.
Is there anyway I can actually go a bit more in-depth with the task, like reading some of the memory of the program to recognise it, or do programs have a UID/PID anywhere that I can use to identify it? Cause searching by name is useless.
Any other solutions?
Edit: Forgot to mention, this is not just for Java applications. It's the whole task list including .exe files etc.
Try using the jps tool for tracking java processes. Link: http://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html
If you would like to know the dependent exe, dlls, files used by a process, then process explorer would help you. Link: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx