Да предположим, че имате .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.