Я делаю один из CTF overthewire, для этого вызова необходимо отправить несколько символов, которые трудно скопировать и вставить в процесс narnia0
.Внутри этого процесса выполняется системный вызов /bin/sh
, но поскольку стандартный вывод xxd
перенаправлен на стандартный ввод narnia0
, я не могу использовать оболочку.
Как мне обойти это?Как мне присоединить narnia0
стандартный ввод к стандартному выводу моего терминала после того, как стандартный вывод xxd
используется (или процесс завершается)?
Это код оболочки:
echo 3030303030303030303030303030303030303030efbeadde | xxd -r -p | ./narnia0
Редактировать
Вот краткий пример:
Example.c
#include <stdio.h>
#include <stdlib.h>
int main() {
system("/bin/sh");
return 0;
}
Компиляция:
gcc -o example ./example.c
Пример, иллюстрирующий проблему:
echo bla | ./example
В результате:
/bin/sh: line 1: bla: command not found
Какиеэто желаемое поведение, но после этого как мне подключить стандартный ввод к моему терминалу?