Как мога да разбера дали .EXE има опции на командния ред?

Да предположим, че имате .EXE и искате да проверите дали има опции на командния ред. Как може да се разбере дали .EXE има тази възможност. В моя случай знам, че Nir Sofers WebBrowserPassView.exe има способността да го стартира чрез cmd .exe и WebBrowserPassView.exe /stext output.txt. Но как да разбера, ако не знам?


person JohnnyFromBF    schedule 15.01.2012    source източник


Отговори (7)


Най-лесният начин би бил да използвате ProcessExplorer, но пак ще изисква известно търсене.

Уверете се, че вашият exe работи и отворете ProcessExplorer. В ProcessExplorer намерете името на вашия двоичен файл и щракнете два пъти върху него, за да покажете свойствата. Щракнете върху раздела Низове. Търсене в списъка с низове, намерени в двоичния файл. Повечето низове ще бъдат боклук, така че могат да бъдат игнорирани. Потърсете всичко, което може да наподобява превключвател на командния ред. Тествайте този ключ от командния ред и вижте дали прави нещо.

Обърнете внимание, че може би вашият двоичен файл просто няма превключватели на командния ред.

За справка тук са горните стъпки, приложени към изпълнимия файл на Chrome. Превключвателите на командния ред, приети от Chrome, могат да се видят в списъка:

Process Explorer анализира Chrome.exe

person Adam    schedule 07.06.2012
comment
Това беше изключително полезно при откриването на превключвателите за MalwareBytes. За да ускорите търсенето си, повечето програмни превключватели започват с / или - така че използването на диалоговия прозорец за намиране (долу вдясно на изображението по-горе) с тези знаци може да ви помогне да намерите това, което търсите по-бързо. - person Michael Nelson; 04.03.2013
comment
Какъв вид функции поддържа панелът със свойства Find in this Process Explorer? RegEx? Заместващи знаци? Не мога да го разбера на пръв поглед. - person John Suit; 05.02.2016
comment
@JohnSuit, страхувам се, че само основно търсене, но може да забележите бутона Запазване, който ви позволява да експортирате списъка в .txt файл. Можете да отворите този документ с всеки текстов редактор, който поддържа RegEx, заместващи символи и т.н., и да търсите по този начин. - person Adam; 07.02.2016

Извикайте го от обвивката с аргумент като /? или --help. Това са обичайните превключватели за помощ.

person Marcin    schedule 15.01.2012
comment
Те не помагат, тъй като .exe просто стартира, без по-нататъшен изход. - person JohnnyFromBF; 15.01.2012
comment
Да, добре, но трябва да има възможност за отстраняване на грешки чрез RE или някои други техники. - person JohnnyFromBF; 15.01.2012
comment
@Ian, разбира се, вие сте свободни да отстранявате грешки в приложението и да търсите превключватели. - person yas4891; 15.01.2012

Sysinternals има друг инструмент, който можете да използвате, Strings.exe

Пример:

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

person user8027324    schedule 17.05.2017
comment
Благодаря @user8027324. Добавих малко форматиране към вашия отговор. Strings.exe не е точно надежден начин да направите това, но със сигурност съм го използвал за тази цел и преди. - person Burt_Harris; 18.05.2017
comment
Изходът от Strings също е включен в ProcessExplorer, в раздела Низове на процеса Свойства. - person Nuno André; 05.01.2021

Просто използвайте IDA PRO (https://www.hex-rays.com/products/ida/index.shtml), за да разглобите файла и да потърсите известна опция на командния ред (използвайки Search...Text) - в този раздел обикновено ще видите всички опции на командния ред - за програмата (LIB2NIST.exe) на екранната снимка по-долу, например, показва документирана опция на командния ред (/COM2TAG), но също и някои недокументирани, като /L. Надявам се това да помогне?

въведете описание на изображението тук

person Tom Wenseleers    schedule 03.10.2013

Освен ако авторът на изпълнимия файл не е предоставил изрично начин за показване на списък с всички превключватели на командния ред, които предлага, тогава няма начин да направите това.

Както предполага Марчин, типичните превключватели за показване на всички опции са /? или /help (някои приложения може да предпочетат синтаксиса в стил Unix, съответно -? и -help). Но това са просто обща конвенция.

Ако те не работят, нямате късмет. Ще трябва да проверите документацията за приложението или може би да опитате да декомпилирате изпълнимия файл (ако знаете какво търсите).

person Cody Gray    schedule 15.01.2012

Наистина това е продължение на отговора на Марчин.

Но можете също да опитате да предадете "боклук" аргументи, за да видите дали получавате грешки. Получаването на какъвто и да е отговор от изпълнимия файл директно в обвивката ще означава, че той вероятно разглежда аргументите, които предавате, като отговорът за грешка е почти гаранция, че е така.

Ако не успеете, може да се наложи директно да попитате издателите/създателите/собствениците... самото надушване на двоичните файлове просто изглежда твърде много работа за крайния потребител.

person Izzy    schedule 28.08.2015
comment
Това е страхотна идея да подадете боклук като параметър, за да видите как програмата реагира. - person Coldblackice; 15.10.2020

Ето какво получавам от конзолата на 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.
person pbvelikov    schedule 17.09.2020