在Turtle中,我如何从程序中获取stdout,处理它,然后向stdin提供一些东西?

时间:2017-11-02 15:17:26

标签: haskell haskell-turtle

我目前正在玩C中的格式字符串攻击。我有一个玩具程序打印(到stdout)我要访问的变量的地址,然后从stdin接受一行和printf s .. ..

使用Turtle,我希望能够:

  • 执行程序
  • 解析stdout的前几行以检索地址
  • 使用地址,为printf制作一个格式字符串(我知道该怎么做)
  • 将攻击字符串写入stdin

但是,我无法看到如何做到这一点。使用像inshell :: Text -> Shell Line -> Shell Line这样的函数,我可以向stdin提供一些行,并从stdout获取一个流。但是,在从stdin读取几行之后,我不知道如何向stdout 注入新行。

1 个答案:

答案 0 :(得分:0)

如果你的目标是测试执行IO的程序,你可以使用shelltestrunner(用Haskell编写的项目),如果你想测试每个项目的I / O场景(不一定用Haskell编写)。