2011-07-14 113 views
1

可能重複:
Windows Program: How to snoop on command line arguments?識別命令行參數

我在Windows XP下工作。

我已經給出了一些第三方軟件,它們在啓動時會產生幾個進程。儘管我需要保留一個程序(一個「通信服務器」,用於向/從其他聯網機器上的相同「通信服務器」傳遞/接收消息),但我一直負責編寫此軟件的替代品。這個過程的一小部分是學習直接啓動「通信服務器」。如果我只是從命令行中沒有參數啓動它,它會立即死亡。我認爲它需要一些論據。所以,我所有的問題歸結爲...

是否有可能,以任何進程,看看它是什麼參數開始?如果是這樣,我該怎麼做?

我試過附加Visual Studio 2010,但沒有.pdb,所以什麼也沒有。不幸的是,我不知道這個「通信服務器」是用什麼語言編寫的。所以,這真的很長。 (我不知道,如果這樣做會給我的方式反正找論據,但我認爲這是值得一試。)

謝謝, 戴夫

附:對不起,標籤選擇不好。這是一個艱難的分類...

+0

如果你想以編程的方式做,有一些未公開的(?)API'NtQueryInformationProcess',它允許你查詢PEB的地址,它也包含原來的命令行(可以通過'ReadProcessMemory'讀取) 。 – ruslik

回答

3

Process Explorer顯示它們。右鍵單擊一個程序列表中,然後Properties... - >Image - >Command line

這不是100%可靠的,因爲該過程可以覆蓋包含在命令行的緩衝,但通常它的工作原理。

0

你不需要PDB爲應用程序本身。 Windows DLL有PDB的;在CreateProcessShellExecute/CreateProcessAsUser等變體上放置斷點。