В Turtle, как мне взять стандартный вывод из программы, обработать его, а затем передать что-то в стандартный вывод?

В настоящее время я играю с атаками форматной строки в C. У меня есть игрушечная программа, которая печатает stdout) адрес переменной, к которой я хочу получить доступ, затем принимает строку из stdin а также printf сидеть..

Используя Turtle, я хотел бы иметь возможность:

  • выполнить программу
  • разобрать первые несколько строк stdout чтобы получить адрес
  • используя адрес, создайте строку формата для printf (Я знаю как это сделать)
  • написать строку атаки stdin

Однако я не вижу, как это сделать. Используя функцию как inshell :: Text -> Shell Line -> Shell Line Я могу поставить несколько строк stdin и вернуть поток из stdout, Однако я не знаю, как вводить новые строки в stdin прочитав пару строк из stdout,

1 ответ

Если ваша цель - протестировать программу, которая выполняет ввод-вывод, вы можете использовать shelltestrunner (проект написан на Haskell), если вы хотите протестировать сценарии ввода-вывода для каждого проекта (не обязательно написанного на Haskell).

Другие вопросы по тегам