web-dev-qa-db-fra.com

Comment puis-je savoir si un fichier .exe a des options de ligne de commande?

Supposons que vous avez un fichier .exe et que vous souhaitez vérifier s'il dispose d'options de ligne de commande. Comment peut-on savoir si le .EXE a cette capacité. Dans mon cas, je sais que Nir Sofers WebBrowserPassView.exe a la possibilité de le démarrer via cmd.exe et WebBrowserPassView.exe/stext output.txt. Mais comment puis-je savoir si je ne sais pas?

43
JohnnyFromBF

Le moyen le plus simple serait d'utiliser ProcessExplorer , mais il faudrait quand même effectuer des recherches.

Assurez-vous que votre exe est en cours d'exécution et ouvrez ProcessExplorer. Dans ProcessExplorer, trouvez le nom de votre fichier binaire et double-cliquez dessus pour afficher les propriétés. Cliquez sur l'onglet Chaînes. Recherchez dans la liste des chaînes trouvées dans le fichier binaire. La plupart des chaînes seront des ordures afin qu'elles puissent être ignorées. Recherchez tout ce qui pourrait ressembler à un commutateur de ligne de commande. Testez ce commutateur à partir de la ligne de commande et voyez s'il fait quelque chose.

Notez qu'il se peut que votre fichier binaire ne comporte simplement aucun commutateur de ligne de commande.

Pour référence, voici les étapes ci-dessus appliquées à l'exécutable Chrome. Les commutateurs de ligne de commande acceptés par Chrome peuvent être consultés dans la liste:

Process Explorer analyzing Chrome.exe

57
Adam

Invoquez-le depuis le shell, avec un argument tel que /? ou --help. Ce sont les commutateurs d’aide habituels.

19
Marcin

À moins que le rédacteur de l'exécutable ne vous ait spécifiquement fourni un moyen d'afficher une liste de tous les commutateurs de ligne de commande qu'il propose, il n'y a aucun moyen de le faire.

Comme Marcin le suggère, les commutateurs typiques permettant d'afficher toutes les options sont soit /? ou /help _ (certaines applications peuvent préférer la syntaxe de style Unix, -? et -help, respectivement). Mais ce ne sont que des conventions communes.

Si cela ne fonctionne pas, vous n'avez pas de chance. Vous devrez vérifier la documentation de l'application ou peut-être essayer de décompiler l'exécutable (si vous savez ce que vous recherchez).

3
Cody Gray

Il suffit d'utiliser IDA PRO ( (https://www.hex-rays.com/products/ida/index.shtml ) pour désassembler le fichier et rechercher une option de ligne de commande connue (à l'aide de Rechercher .. .Text) - dans cette section, vous verrez généralement toutes les options de ligne de commande - pour le programme (LIB2NIST.exe) dans la capture d'écran ci-dessous, par exemple, il affiche une option de ligne de commande documentée (/ COM2TAG), mais aussi certaines options non documentées , comme/L. J'espère que cela t'aides?

enter image description here

2
Tom Wenseleers

Vraiment, c'est une extension de la réponse de Marcin.

Mais vous pouvez également essayer de passer des arguments "ordures" pour voir si vous obtenez des erreurs en retour. Obtenir une réponse de l'exécutable directement dans le shell signifie que celui-ci examinera probablement les arguments que vous transmettez, une réponse d'erreur constituant une garantie de son exactitude.

Dans le cas contraire, vous devrez peut-être demander directement aux éditeurs/créateurs/propriétaires ... renifler vous-même les fichiers binaires semble être une tâche bien trop pénible pour un utilisateur final.

1
Izzy

Sysinternals a un autre outil que vous pouvez utiliser, Strings.exe

Exemple:

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

1
user8027324