NT6上的獲取進程全路徑

  • 2019 年 12 月 20 日
  • 筆記

PUNICODE_STRING PsGetProcessFullName(PEPROCESS pTargetProcess)  {          PFILE_OBJECT pFileObject=NULL;          POBJECT_NAME_INFORMATION pObjectNameInfo=NULL;          if(!NT_SUCCESS(PsReferenceProcessFilePointer(pTargetProcess,&pFileObject)))                  return NULL;          if(!NT_SUCCESS(IoQueryFileDosDeviceName(pFileObject,&pObjectNameInfo)))                  return NULL;          return &(pObjectNameInfo->Name);//尚未釋放記憶體 以及 ObDereferenceObject  }