Предположим, у вас есть .EXE-файл, и вы хотите проверить, есть ли у него параметры командной строки. Как узнать, есть ли у .EXE такая возможность. В моем случае я знаю, что Nir Sofers WebBrowserPassView.exe может запустить его через cmd .exe и WebBrowserPassView.exe/stext output.txt. Но как я могу узнать, если я не знаю?
Как узнать, есть ли у .EXE параметры командной строки?
Ответы (7)
Самый простой способ — использовать ProcessExplorer, но он все равно будет требуют некоторого поиска.
Убедитесь, что ваш exe-файл запущен, и откройте ProcessExplorer. В ProcessExplorer найдите имя вашего двоичного файла и дважды щелкните его, чтобы отобразить свойства. Перейдите на вкладку Строки. Найдите список строк, найденных в двоичном файле. Большинство строк будут мусором, поэтому их можно игнорировать. Ищите все, что может напоминать переключатель командной строки. Проверьте этот переключатель из командной строки и посмотрите, делает ли он что-нибудь.
Обратите внимание, что ваш двоичный файл может просто не иметь переключателей командной строки.
Для справки здесь приведены описанные выше шаги, примененные к исполняемому файлу Chrome. Переключатели командной строки, принимаемые Chrome, можно увидеть в списке:
Вызовите его из оболочки с аргументом вроде /?
или --help
. Это обычные переключатели помощи.
У Sysinternals есть еще один инструмент, который вы можете использовать: Strings.exe
Пример:
strings.exe c:\windows\system32\wuauclt.exe > %temp%\wuauclt_strings.txt && %temp%\wuauclt_strings.txt
Просто используйте IDA PRO (https://www.hex-rays.com/products/ida/index.shtml) для дизассемблирования файла и поиска некоторых известных параметров командной строки (используя Search...Text) — в этом разделе вы обычно видите все параметры командной строки — для программы (LIB2NIST.exe) на снимке экрана ниже, например, он показывает задокументированный параметр командной строки (/COM2TAG), а также некоторые недокументированные, такие как /L. Надеюсь это поможет?
Если автор исполняемого файла специально не предоставил вам способ отобразить список всех переключателей командной строки, которые он предлагает, то сделать это невозможно.
Как предполагает Марчин, типичными переключателями для отображения всех опций являются либо /?
, либо /help
(некоторые приложения могут предпочесть синтаксис в стиле Unix, -?
и -help
соответственно). Но это всего лишь общепринятое соглашение.
Если они не работают, вам не повезло. Вам нужно будет проверить документацию для приложения или, возможно, попробовать декомпилировать исполняемый файл (если вы знаете, что ищете).
На самом деле это расширение ответа Марцина.
Но вы также можете попробовать передать «мусорные» аргументы, чтобы увидеть, вернутся ли какие-либо ошибки. Получение любого ответа от исполняемого файла непосредственно в оболочке будет означать, что он, вероятно, просматривает аргументы, которые вы передаете, а ответ об ошибке близок к гарантии, что это так.
В противном случае вам, возможно, придется напрямую спрашивать издателей/создателей/владельцев... Самостоятельное прослушивание двоичных файлов кажется слишком трудоемким для конечного пользователя.
Это то, что я получаю из консоли в 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.