Você poderia, por exemplo, usar read
em um sub shell
echo "inputfile outputfile" | myfuzzer | (read -a arg; echo "-i ${arg[0]}.raw -o ${arg[1]}.jpg" )
Eu entendo que posso usar xargs assim:
echo "-i inputfile.raw -o outputfile.jpg" | xargs -t ./myprogram
No entanto, estou testando fuzz o aplicativo e tenho um fuzzer que funciona assim:
echo "some text" | myfuzzer
Saída: "@ om3 t9gxt"
Em outras palavras, meu fuzzer pega uma string e executa algumas permutações nela e, então, gera uma versão aleatória dela.
O truque é, eu preciso redirecionar "-i inputfile.raw -o outputfile.jpg" ATRAVÉS do myfuzzer para que ele seja mutado, MAS, eu preciso MANTER o -o, -i, .raw e .jpg partes ... E finalmente passar a saída para myprogram assim:
echo "-i [email protected] -o outpuF$tfFAFAile.jpg" | xargs -t ./myprogram
Então eu preciso de alguma forma para especificar que eu quero apenas que os nomes dos arquivos sejam direcionados através do myfuzzer, mas não as extensões e sinalizadores mencionados anteriormente, caso contrário eles serão permutados e meu programa não reconhecerá os argumentos a menos que eles tenham o direito flags e extensões ... Mas ainda reconstruir uma string para alimentar meu programa.
Como posso fazer isso usando o Bash?
Você poderia, por exemplo, usar read
em um sub shell
echo "inputfile outputfile" | myfuzzer | (read -a arg; echo "-i ${arg[0]}.raw -o ${arg[1]}.jpg" )