我想了解如何做到這一點,我目前正在使用CreateToolHelp32SnapShot獲取正在運行的進程的列表,我已經得到了可執行文件的FilePaths目前正在運行,但我需要能夠找出哪些命令行選項用於啓動該進程。查找命令行選項一個進程啓動與
我知道它可能的,因爲你可以看到它的進程資源管理器,我試圖找到舊進程資源管理器的源代碼,但沒有運氣:(發生幾乎立即將注入線程
我想了解如何做到這一點,我目前正在使用CreateToolHelp32SnapShot獲取正在運行的進程的列表,我已經得到了可執行文件的FilePaths目前正在運行,但我需要能夠找出哪些命令行選項用於啓動該進程。查找命令行選項一個進程啓動與
我知道它可能的,因爲你可以看到它的進程資源管理器,我試圖找到舊進程資源管理器的源代碼,但沒有運氣:(發生幾乎立即將注入線程
檢查,如果NtQueryInformationProcess和ReadProcessMemory共贏API調用會做你的需要。有沒有簡單的例子,爲使檢查源代碼在這裏:Get Process Info with NtQueryInformationProcess
另一種方式獲得此數據是throgh WMI,水木清華這樣的:
SELECT CommandLine FROM Win32_Process WHERE ProcessId = ???
更多的信息在這裏:Win32_Process Class
一種可能性到目標進程(CreateRemoteThread
),並有通話。
獲取正在運行的進程不能以可靠的方式來完成的命令行。這是非常可能正在運行的進程的命令行改變而改變存儲這些命令的內存。
Raymond Chen在這個問題上做了一篇很好的文章,最近詳細說明了爲什麼它不可靠。
IIRC命令行參數存儲在過程環境中 - 如果您可以訪問它,您也可以閱讀它們。