Supongamos que tiene un .exe y desea comprobar si tiene opciones de línea de comandos. ¿Cómo se puede saber si el .exe tiene esta habilidad? En mi caso, ahora que Nir Sofers WebBrowserPassView.exe tiene la capacidad de iniciarlo a través de cmd.exe y WebBrowserPassView.exe/stext output.txt. ¿Pero cómo puedo saber si no lo sé?¿Cómo puedo averiguar si un .EXE tiene opciones de línea de comandos?
Respuesta
La forma más fácil sería usar el uso de ProcessExplorer pero aún así requeriría algunas búsquedas.
Asegúrate de que tu ejecutable esté ejecutándose y abre ProcessExplorer. En ProcessExplorer busque el nombre de su archivo binario y haga doble clic para mostrar las propiedades. Haga clic en la pestaña Cuerdas. Busque en la lista de cadenas que se encuentran en el archivo binario. La mayoría de las cadenas serán basura para que puedan ser ignoradas. Busque cualquier cosa que pueda parecerse a un cambio de línea de comando. Pruebe este interruptor desde la línea de comando y vea si hace algo.
Tenga en cuenta que podría ser que su binario simplemente no tenga interruptores de línea de comandos.
Como referencia, se muestran los pasos anteriores aplicados al ejecutable de Chrome. La línea de comandos aceptado por Chrome se puede ver en la lista:
Esto fue extremadamente útil para descubrir los switches para MalwareBytes. Para acelerar su búsqueda, la mayoría de los interruptores de programa comienzan con un "/" o "-", por lo que puede usar el cuadro de diálogo de búsqueda (abajo a la derecha de la imagen) con estos caracteres para encontrar lo que está buscando más rápido. –
¿Qué tipo de características admite el "Buscar" en este panel de propiedades de Process Explorer? RegEx? Comodines? Parece que no puedo entenderlo a primera vista. –
@JohnSuit, solo me temo que es una búsqueda básica, pero es posible que notes el botón "Guardar" que te permite exportar la lista a un archivo .txt. Puede abrir este documento con cualquier editor de texto que admita RegEx, Wildcards, etc. y busque de esa manera. – Adam
Invocarlo desde el shell, con un argumento como /?
o --help
. Esos son los cambios de ayuda habituales.
No ayudan, ya que el .exe solo se inicia, sin más resultados. – JohnnyFromBF
Sí bien, pero debe haber una posibilidad de depurar esto a través de RE o algunas otras técnicas. – JohnnyFromBF
@Ian, por supuesto, puede depurar su camino a través de la aplicación y buscar interruptores. – yas4891
A menos que el autor del archivo ejecutable haya proporcionado específicamente una forma de mostrar una lista de todos los conmutadores de línea de comandos que ofrece, no hay forma de hacerlo.
Como sugiere Marcin, los interruptores típicos para mostrar todas las opciones son /?
o /help
(algunas aplicaciones podrían preferir la sintaxis de estilo Unix, -?
y -help
, respectivamente). Pero esas son solo una convención común.
Si no funcionan, no tiene suerte. Deberá verificar la documentación de la aplicación, o quizás intente descompilar el ejecutable (si sabe lo que está buscando).
sólo tiene que utilizar IDA PRO (https://www.hex-rays.com/products/ida/index.shtml) para desmontar el archivo y búsqueda de alguna opción de línea de comandos conocidos (utilizando Buscar ... Texto) - en esa sección normalmente verá todas las opciones de línea de comando para el programa (LIB2NIST.exe) en la siguiente captura de pantalla, por ejemplo, muestra una opción de línea de comando documentada (/ COM2TAG) pero también algunas indocumentadas, como/L. ¿Espero que esto ayude?
Realmente esto es una extensión de la respuesta de Marcin.
Pero también podría intentar pasar argumentos de "basura" para ver si le devuelven algún error. Obtener cualquier respuesta del ejecutable directamente en el intérprete de comandos significa que probablemente esté mirando los argumentos que está pasando, con una respuesta de error cercana a la garantía de que sí lo está.
En caso de que no tenga que preguntar directamente a los editores/creadores/propietarios ... olfatear los binarios usted mismo parece demasiado trabajo para un usuario final.
Sysinternals tiene otra herramienta que podría utilizar, Strings.exe
Ejemplo:
strings.exe c:\windows\system32\wuauclt.exe > %temp%\wuauclt_strings.txt && %temp%\wuauclt_strings.txt
Gracias @ user8027324. He agregado un poco de formato a tu respuesta. ** Strings.exe ** no es exactamente una forma infalible de hacer esto, pero ciertamente lo he usado con ese fin antes. –
- 1. ¿Cómo puedo averiguar qué bibliotecas usa un exe de Windows?
- 2. ¿cómo puede averiguar si un NSObject tiene cierta propiedad?
- 3. ¿Cómo omito la GUI en la aplicación MFC si existen opciones de línea de comandos?
- 4. ¿Cómo puedo averiguar si un objeto está bloqueado? C#
- 5. ¿Cómo saber si un menú desplegable tiene opciones para seleccionar?
- 6. Herramienta de línea de comandos MySQL: ¿Cómo averiguar el número de filas afectadas por un BORRAR?
- 7. Opciones de línea de comandos para scripts * de IPython *?
- 8. ¿Cómo automatizar un proceso con la herramienta de línea de comandos sqlite3.exe?
- 9. Opciones de línea de comandos necesarias en Python usando argparse
- 10. No se puede analizar opciones de línea de comandos largos
- 11. cómo crear un emulador de Android en línea de comandos con opciones?
- 12. Cómo detener la ejecución de la tarea nant exe() alrededor de la línea de comandos
- 13. ¿Cómo verificar con jquery si seleccionar tiene opciones?
- 14. ¿Cómo puedo averiguar si un archivo es un archivo o directorio si no existe?
- 15. Herramienta de línea de comandos para averiguar quién está bloqueando un archivo
- 16. ¿Cómo puedo moverme en la línea de comandos de Vim?
- 17. Salida a línea de comandos si se inició desde la línea de comandos
- 18. Cómo ejecutar archivos EXE en secuencias de comandos NSIS?
- 19. ¿Cómo se muestran las opciones de compilación de línea de comandos en Visual C++ 2008?
- 20. ¿Cómo puedo averiguar si una cita es privada?
- 21. GUI: ¿Cómo puedo averiguar si ciertos caracteres Unicode son compatibles?
- 22. En Applescript, ¿cómo puedo averiguar si un elemento de menú está seleccionado/enfocado?
- 23. terminación de línea con comandos personalizados
- 24. ¿Cómo puedo hacer un exe en NetBeans?
- 25. ¿Cómo encontrar si un archivo es un exe?
- 26. ¿Cómo puedo usar xcodebuild en la línea de comandos?
- 27. ¿Cómo puedo abrir un script ps1 en Powershell ISE desde la línea de comandos?
- 28. ¿Cómo puedo obtener argumentos de línea de comandos no modificados para "ajustar" otra herramienta de línea de comandos?
- 29. CMake línea de comandos documentación opción
- 30. ¿Cómo puedo averiguar por qué el subproceso.Popen wait() espera para siempre si stdout = PIPE?
leer el manual o Google. No hay una manera genérica de recuperar esta información – yas4891
Aunque esta no es una pregunta muy centrada en la programación, no creo que necesariamente merezca un voto negativo. ¿Quién rechazó esto: cuidado de explicar? – yas4891