2012-01-15 18 views
34

Supponiamo di avere un .exe e si desidera controllare se ha le opzioni della riga di comando. Come si può sapere se l'exe ha questa capacità. Nel mio caso, ora che Nir Sofers WebBrowserPassView.exe ha la possibilità di avviarlo tramite cmd.exe e WebBrowserPassView.exe/stext output.txt. Ma come posso sapere se non lo so?Come posso sapere se un file .EXE contiene le opzioni della riga di comando?

+1

Leggere il manuale o google. Non c'è un modo generico per recuperare queste informazioni – yas4891

+3

Anche se questa non è una domanda centrata sulla programmazione, non penso che meriti necessariamente un downvote. Chiunque abbia downvoted questo: cura di spiegare? – yas4891

risposta

48

Il modo più semplice sarebbe utilizzare ProcessExplorer, ma richiederebbe comunque una ricerca.

Assicurati che il tuo exe sia in esecuzione e apri ProcessExplorer. In ProcessExplorer trovare il nome del file binario e fare doppio clic per visualizzare le proprietà. Fare clic sulla scheda Stringhe. Cerca l'elenco delle stringhe trovate nel file binario. La maggior parte delle stringhe sarà spazzatura in modo che possano essere ignorate. Cerca qualsiasi cosa possa assomigliare a un interruttore della riga di comando. Prova questo interruttore dalla riga di comando e controlla se fa qualcosa.

Nota che potrebbe essere il tuo file binario semplicemente non ha commutazioni a riga di comando.

Per riferimento, ecco i passaggi sopra riportati per l'eseguibile di Chrome. La linea di comando accettato da Chrome può essere visto nella lista: enter image description here

+5

Questo è stato estremamente utile per scoprire gli switch per MalwareBytes. Per velocizzare la tua ricerca, la maggior parte degli switch di programma iniziano con "/" o "-" quindi usare la finestra di dialogo Trova (in basso a destra dell'immagine sopra) con questi caratteri può aiutarti a trovare ciò che cerchi più velocemente. –

+0

Che tipo di funzionalità supporta il "Trova" in questo pannello Proprietà di Process Explorer? RegEx? I caratteri jolly? Non riesco a capirlo a prima vista. –

+0

@JohnSuit, solo la ricerca di base ho paura ma potresti notare il pulsante "Salva" che ti consente di esportare l'elenco in un file .txt. È possibile aprire questo documento con qualsiasi editor di testo che supporti RegEx, caratteri jolly ecc. E cercare in questo modo. – Adam

15

Richiamarlo dalla shell, con un argomento come /? o --help. Queste sono le normali opzioni di aiuto.

+0

Non aiutano, dal momento che l'exe inizia appena, senza ulteriore output. – JohnnyFromBF

+0

Sì, ma ci deve essere la possibilità di eseguire il debug di questo tramite RE o altre tecniche. – JohnnyFromBF

+2

@Sei naturalmente sei libero di eseguire il debug attraverso l'app e cercare interruttori. – yas4891

3

A meno che lo scrittore dell'eseguibile non abbia specificamente fornito un modo per visualizzare un elenco di tutte le opzioni della riga di comando che offre, non c'è modo di farlo.

Come suggerisce Marcin, gli interruttori tipici per la visualizzazione di tutte le opzioni sono o /? o /help (alcune applicazioni potrebbero preferire la sintassi in stile Unix, rispettivamente, -? e -help,). Ma quelli sono solo una convenzione comune.

Se quelli non funzionano, sei sfortunato. Dovrai controllare la documentazione per l'applicazione, o magari provare a decompilare l'eseguibile (se sai cosa stai cercando).

1

Basta usare IDA PRO (https://www.hex-rays.com/products/ida/index.shtml) di smontare il file, e la ricerca di qualche opzione nota linea di comando (tramite Cerca ... testo) - in in quella sezione vedrai in genere tutte le opzioni della riga di comando - per il programma (LIB2NIST.exe) nello screenshot qui sotto, per esempio, mostra un'opzione di riga di comando documentata (/ COM2TAG) ma anche alcune non documentate, come/L. Spero che questo ti aiuti?

enter image description here

1

Davvero Si tratta di un'estensione per la risposta di Marcin.

Ma si potrebbe anche provare a passare argomenti "spazzatura" per vedere se si ottiene eventuali errori indietro. Ottenere qualsiasi risposta dall'eseguibile direttamente nella shell significa che è probabile che guardi gli argomenti che stai passando, con una risposta all'errore vicina alla garanzia che sia.

In caso contrario, potrebbe essere necessario chiedere direttamente agli editori/ai creatori/proprietari ... se si annusano i file binari, sembra proprio troppo lavoro per un utente finale.

0

Sysinternals ha un altro strumento che potrebbe usare, Strings.exe

Esempio:

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

+0

Grazie @ utente8027324. Ho aggiunto un po 'di formattazione alla tua risposta. ** Strings.exe ** non è esattamente un modo infallibile per farlo, ma l'ho sicuramente usato per quello scopo prima. –

Problemi correlati