如何确定.EXE是否具有命令行选项?

时间:2012-01-15 11:08:34

标签: command-line executable command-line-arguments exe

假设您有一个.EXE,并且想要检查它是否具有命令行选项。如何知道.EXE是否具备此功能。在我的情况下,我知道Nir Sofers WebBrowserPassView.exe能够通过cmd.exe和WebBrowserPassView.exe / stext output.txt启动它。但是如何才能知道我是否不知道?

7 个答案:

答案 0 :(得分:57)

最简单的方法是使用ProcessExplorer,但仍需要进行一些搜索。

确保您的exe正在运行并打开ProcessExplorer。 在ProcessExplorer中找到二进制文件的名称,然后双击它以显示属性。 单击“字符串”选项卡。 搜索二进制文件中找到的字符串列表。大多数字符串都是垃圾,因此可以忽略它们。搜索可能类似于命令行开关的任何内容。 从命令行测试此开关,看看它是否有效。

请注意,它可能是您的二进制文件,根本没有命令行开关。

以下是适用于Chrome可执行文件的上述步骤。可以在列表中看到Chrome接受的命令行开关: enter image description here

答案 1 :(得分:18)

使用/?--help之类的参数从shell调用它。这些是通常的帮助开关。

答案 2 :(得分:3)

除非可执行文件的编写者专门为您提供了显示它提供的所有命令行开关列表的方法,否则无法执行此操作。

正如Marcin建议的那样,显示所有选项的典型开关是/?/help(某些应用程序可能更喜欢Unix风格的语法,-?和{{1} }, 分别)。但这些只是一个共同的惯例。

如果那些不起作用,那你就不走运了。您需要检查应用程序的文档,或者尝试反编译可执行文件(如果您知道要查找的内容)。

答案 3 :(得分:2)

只需使用IDA PRO(https://www.hex-rays.com/products/ida/index.shtml)来反汇编文件,并搜索一些已知的命令行选项(使用搜索...文本) - 在该部分中,您通常会看到所有命令行选项 - 例如,对于下面的屏幕截图中的程序(LIB2NIST.exe),它显示了一个记录的命令行选项(/ COM2TAG),但也显示了一些未记录的命令行选项,如/ L.希望这有帮助吗?

enter image description here

答案 4 :(得分:1)

真的,这是对Marcin的回答的延伸。

但你也可以尝试传递"垃圾"查看您是否收到任何错误的参数。直接在shell中获取可执行文件的任何响应意味着它可能会查看您正在传递的参数,并且错误响应接近保证。

如果不这样做,你可能不得不直接询问发布者/创建者/所有者......自己嗅探二进制文件似乎对最终用户来说太过分了。

答案 5 :(得分:1)

Sysinternals还有另一种可以使用的工具,Strings.exe

示例:

strings.exe c:\windows\system32\wuauclt.exe > %temp%\wuauclt_strings.txt && %temp%\wuauclt_strings.txt

答案 6 :(得分:1)

这是我从Windows 10上的控制台获得的信息:

C:\>find /?
Searches for a text string in a file or files.

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

  /V         Displays all lines NOT containing the specified string.
  /C         Displays only the count of lines containing the string.
  /N         Displays line numbers with the displayed lines.
  /I         Ignores the case of characters when searching for the string.
  /OFF[LINE] Do not skip files with offline attribute set.
  "string"   Specifies the text string to find.
  [drive:][path]filename
             Specifies a file or files to search.

If a path is not specified, FIND searches the text typed at the prompt
or piped from another command.