【发布时间】:2016-01-25 05:50:28
【问题描述】:
我正在测试一种方法来模拟应用程序的特定输入。 这是应用程序:
#include <stdio.h>
int main()
{
int num1;
char buffer[6] = {0};
scanf("%d", &num1);
read(0, buffer, 6);
printf("num1 = %d\n", num1);
for(num1=0; num1 < 6; num1++)
{
printf("%02X\n", buffer[num1]);
}
return 0;
}
我正在尝试使用以下 bash 命令模拟输入:
echo -ne "1337\\x0A\\x31\\x02\\x03\\x04\\x05\\x06" | ./test
我得到的输出如下:
num1 = 1337
00
00
00
00
00
00
如您所见,缓冲区未填充传递给 STDIN 的值。
编辑: 下面的函数只是用来说明混合I/O函数中输入自动化的想法,我通过逆向二进制文件得到这个函数,是否可以自动化输入?
感谢您的帮助。
谢谢,
【问题讨论】:
标签: c bash user-input stdin eol