我有一個每天工作的應用程序。 開發人員提供了各種方便的參數,這些參數在傳遞給exe時執行某些任務。在調試問題時,技術支持人員告訴我用一些特殊的參數來運行這個exe文件,這減少了我工作中的大量手動步驟。但是,開發人員並不善於分享所有這些參數的列表。所以我想知道是否有任何方法可以確定exe接受的參數?該應用程序是用C++開發的。確定由exe接受的參數,而無需源代碼?
回答
我要做的第一件事就是在可執行文件上運行類似於strings
(在UNIX-like操作系統下)的東西,以提取任何看起來像是選項的東西。
這不會告訴你如何使用一個特定選項,但是,如果你的strings
命令返回:
--option1
--option2
--run-faster
--use-less-cpu
--format-hard-disk
這是一個非常安全的賭注,這些都是有效的選項。由於strings
傾向於顯示文本數據,因此較短的選項可能不那麼容易顯示。
即使您沒有像strings
這樣的東西,也只是因爲許多編譯器和連接器的工作方式,所以所有選項都會集中在可執行文件中。
而且,正如Eugeny Loy在備註中指出的那樣,微軟的sysinternals套件也有一個strings utility。
順便說一句,我想測試是否--format-hard-disk
是:-)
windows的字符串:http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx –
好的發現,@leo,希望你不介意我是否將其納入答案。 – paxdiablo
當然,隨時可以這樣做。 –
- 1. OCRA生成的exe不接受參數
- 2. exe接受運行時參數
- 3. Scrapy代碼無法接受Python腳本中的參數
- 4. 如何消除空參數,而無需冗長的代碼
- 5. Boost.Python:__init__接受無參數
- 6. 無效參數,而在代碼
- 7. Gitorious源代碼路由不正確
- 8. Symfony路由「_locale」參數不被接受
- 9. Crashlytics:由於錯誤而無法打包源代碼
- 10. 迭代argparse接受的參數
- 11. 從EXE的Python源代碼恢復
- 12. 如何獲得資源庫代碼,而無需克隆/結帳
- 13. AngularJs:NG-點擊()接受無效的參數
- 14. 修改現有的代碼,以接受多個參數
- 15. 運行現有的exe沒有exe文件的源代碼
- 16. 確定年代排序的具體列由函數參數
- 17. 如何確定封閉源代碼軟件連接的URL? (OSX)
- 18. C++ - 一個exe轉換爲源代碼
- 19. 代碼無法接受超出數組大小的文件?
- 20. 從Java代碼中調用命令行Java接受參數
- 21. 從字符串調用代碼。參數不被接受
- 22. 使用RibbonComboBox無法找到綁定參考的源代碼
- 23. 將非託管EXE作爲資源合併到受管理的C#代碼中
- 24. 我如何才能訪問TFS中的源代碼以進行代碼審查,而無需下載代碼?
- 25. 遞歸迭代,而無需重新綁定參考
- 26. GetConsoleScreenBufferInfoEx由於參數無效而失敗
- 27. 大/受歡迎網站的源代碼
- 28. 自定義引導而不接觸源代碼
- 29. 輕鬆查看Android源代碼,無需下載完整代碼
- 30. Invoke-Command:無法找到接受參數的位置參數
一個有效選項前認真暫停你要確定是什麼類型的參數接受或多少個參數? –
不看源頭,沒有。這是因爲它可以接受任何參數,甚至是未指定的參數。例如,開發者寫了一些代碼來處理'-option1 -option2'。沒有什麼能夠阻止你將這個exe作爲'program.exe -option3'來調用。 –
我不認爲有任何實際的方式來做到這一點。你最好的選擇是嘗試在linux上使用諸如'strings'的實用程序來列出可執行文件中的所有字符串,並查看可能的參數,但我不確定投入時間是否值得。 – Nbr44