[BASH]capturar parte de un output

Iniciado por kaiserr, 31 Mayo 2015, 21:29 PM

0 Miembros y 1 Visitante están viendo este tema.

kaiserr

Hola gente :)

INTRO:
Estaba practicando el tema de exploiting y siguiendo un código de ejemplo, muy básico y rudimentario, he pensado que me ahorraría trabajo si pudiera capturar el output de la ejecución del exploit para luego hacer una condición con este. Solo se lo básico de bash y nose si lo que quiero hacer es posible.

Me explico:
El exploit siempre hace un print de una frase con la dirección de memoria que se ha utilizado para realizar un buffer overflow. Por otro lado, si el exploit falla, sale el típico mensaje de:
CitarViolación de segmento ('core' generado)

Lo que quiero es ejecutar el programa X veces hasta que el mensaje que lance el exploit no tenga la frase anterior:
CitarViolación de segmento ('core' generado)

Si todo el output del exploit fuera constante no habría problema, pero al mostrar la direccion de memoria en función de un offset que le indico, nose como hacerlo.

Espero haberme explicado :)

Gracias!

daryo

crea una variable con la salida del comando
Código (bash) [Seleccionar]
variable=$(echo core generado )

luego ya solo tienes que hacer un while , mientras sea igual a "core generado" se vuelve a ejecutar y guarda el contenido de la salida en la variable
buenas

kaiserr

Gracias por responder daryo.

Esa solución es la que había pensado, pero el problema es que el output del comando tiene una parte fija que saldrá siempre, se haya realizado bien o mal, y una parte variable, que dependerá de si se ha ejecutado bien o mal.

Entonces hay alguna forma de coger una parte del output? por ejemplo, buscar la palabra Violación dentro del output.

Saludos.

daryo

sep tienes muchas opciones para manejar cadenas dentro de bash a mi personalmente me gusta awk
si quisieras por ejemplo tener la linea en que esta la palabra violacion

echo $variable | grep Violacion
buenas

kaiserr

cierto... pregunta tonta  :silbar:

La verdad es que cuando había pensado la pregunta no se me ocurrio lo de buscar una palabra en el output jaja

Gracias!