I have hooked NtCreateProcess but there is something extremely strange,
in the documentaion for this api we find
NtCreateProcess(
OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN HANDLE ParentProcess,
IN BOOLEAN InheritObjectTable,
IN HANDLE SectionHandle OPTIONAL,
IN HANDLE DebugPort OPTIONAL,
IN HANDLE ExceptionPort OPTIONAL );
However, ObjectAttributes is optional. This is strange, how will the
kernel know which process we want if it doesn't have it's name ?
or in other words, how do I obtain the process name when
ObjectAttributes is NULL?
Thanks