Sie könnten zum Beispiel read
in einer Sub-Shell verwenden
echo "inputfile outputfile" | myfuzzer | (read -a arg; echo "-i $.raw -o $.jpg" )
Ich verstehe, dass ich Xargs so verwenden kann:
echo "-i inputfile.raw -o outputfile.jpg" | xargs -t ./myprogram
Ich teste die Anwendung jedoch fuzz und ich habe einen Fuzzer, der so funktioniert:
echo "some text" | myfuzzer
Ausgabe: "@ om3 t9gxt"
Mit anderen Worten, mein Fuzzer nimmt einen String und führt einige Permutationen darauf aus und gibt dann eine randomisierte Version davon aus.
Der Trick ist, ich muss "-i inputfile.raw -o outputfile.jpg" DURCH myfuzzer umleiten, so dass es mutiert ist, ABER ich muss die Teile -o, -i, .raw und .jpg behalten. Und schließlich die Ausgabe wie folgt an mein Programm übergeben:
echo "-i inpu$@tfifsa4le.raw -o outpuF$tfFAFAile.jpg" | xargs -t ./myprogram
Ich brauche also einen Weg, um anzugeben, dass nur die Dateinamen durch myfuzzer geleitet werden sollen, nicht aber die zuvor genannten Erweiterungen und Flags. Andernfalls werden sie auch permutiert und mein Programm erkennt die Argumente nur, wenn sie die richtigen Flags und Erweiterungen haben ... aber rekonstruieren Sie immer noch eine Zeichenfolge, um sie in mein Programm aufzunehmen.
Wie mache ich das mit Bash?
Sie könnten zum Beispiel read
in einer Sub-Shell verwenden
echo "inputfile outputfile" | myfuzzer | (read -a arg; echo "-i $.raw -o $.jpg" )