2013-05-27 44 views
2

我有一個每天工作的應用程序。 開發人員提供了各種方便的參數,這些參數在傳遞給exe時執行某些任務。在調試問題時,技術支持人員告訴我用一些特殊的參數來運行這個exe文件,這減少了我工作中的大量手動步驟。但是,開發人員並不善於分享所有這些參數的列表。所以我想知道是否有任何方法可以確定exe接受的參數?該應用程序是用C++開發的。確定由exe接受的參數,而無需源代碼?

+0

一個有效選項前認真暫停你要確定是什麼類型的參數接受或多少個參數? –

+1

不看源頭,沒有。這是因爲它可以接受任何參數,甚至是未指定的參數。例如,開發者寫了一些代碼來處理'-option1 -option2'。沒有什麼能夠阻止你將這個exe作爲'program.exe -option3'來調用。 –

+1

我不認爲有任何實際的方式來做到這一點。你最好的選擇是嘗試在linux上使用諸如'strings'的實用程序來列出可執行文件中的所有字符串,並查看可能的參數,但我不確定投入時間是否值得。 – Nbr44

回答

3

我要做的第一件事就是在可執行文件上運行類似於strings(在UNIX-like操作系統下)的東西,以提取任何看起來像是選項的東西。

這不會告訴你如何使用一個特定選項,但是,如果你的strings命令返回:

--option1 
--option2 
--run-faster 
--use-less-cpu 
--format-hard-disk 

這是一個非常安全的賭注,這些都是有效的選項。由於strings傾向於顯示文本數據,因此較短的選項可能不那麼容易顯示。

即使您沒有像strings這樣的東西,也只是因爲許多編譯器和連接器的工作方式,所以所有選項都會集中在可執行文件中。

而且,正如Eugeny Loy在備註中指出的那樣,微軟的sysinternals套件也有一個strings utility


順便說一句,我想測試是否--format-hard-disk是:-)

+0

windows的字符串:http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx –

+0

好的發現,@leo,希望你不介意我是否將其納入答案。 – paxdiablo

+0

當然,隨時可以這樣做。 –

相關問題