有人可以告訴我這是怎麼完成的?看看SmcGui.exe
的「命令行」。你會發現,它的命名管道串......滿弦是:從命名管道啓動的可執行文件?
\\.\pipe\SygateSecurityAgentR41T67564 \\.\pipe\SygateSecurityAgentW18467T67564
有人可以告訴我這是怎麼完成的?看看SmcGui.exe
的「命令行」。你會發現,它的命名管道串......滿弦是:從命名管道啓動的可執行文件?
\\.\pipe\SygateSecurityAgentR41T67564 \\.\pipe\SygateSecurityAgentW18467T67564
從MSDN文檔上[CreateProcess的] [1]
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
lpApplicationName [in,optional]
該模塊的名稱爲 執行。該模塊可以是基於Windows的應用程序。如果 合適的子系統在本地計算機上可用,則它可以是 某些其他類型的模塊(例如,MS-DOS或OS/2)。
字符串 可以指定要執行的模塊的完整路徑和文件名,也可以指定部分名稱。在部分名稱的情況下, 函數使用當前驅動器和當前目錄來完成 規範。該功能不會使用搜索路徑。這個 參數必須包含文件擴展名;假定沒有默認擴展 。
lpApplicationName參數可以是NULL。在這種情況下, 模塊名稱必須是 lpCommandLine字符串中的第一個以空格分隔的令牌。
在測試了一個指定了'ApplicationName'屬性的CreateProcess調用之後,我能夠複製它。顯然,進程查看器中的「命令行」屬性並不像我理解的那樣。 –
看起來他們只是命令行參數;與vcpkgsrv.exe相同。無論是誰啓動該進程,都不遵循包含進程名稱作爲命令行第一個參數的約定(例如,通過CreateProcess)。 – Luke
如果進程名稱不是第一個參數,那麼應用程序如何啓動? –
這是CreateProcess()的一種僥倖,有兩種方式來指定.exe名稱。 –