我有一个可执行的C代码二进制,它要求2个输入。我想写一个python代码,自动给出输入。我的意思是当我运行python code.py | ./ones-and-zeroes
时。它为可执行文件提供输入。我尝试使用print(INPUT)
,但它只在下一行请求输入时有效,而不是在同一行。这里是image
正如你们在图中所看到的,我想把-1作为第一个输入,在第二个输入中给出一些东西
我试过:
print(-1)
print(something)
更简短一点的是——我写道:
打印(1)
打印(2)
印刷品(3)
因为在新行中请求输入,所以它工作了here 但它不适用于其他可执行文件,因为input在同一行中请求输入
对不起,我可能不太清楚。我只想在第一个问题中输入:-1(你的秘密有多长:),在第二个问题中输入:test或一些字符串(输入你的秘密:)。然而,我想使用python代码来实现它。不是人工的
编辑:我没有确切的C代码,但是我设法对它进行了反向工程,下面是一些可能会有所帮助的东西
void getFlag(void)
{
ushort secret_len;
char your_secret[1936];
printf("\nHow long is your secret: ");
__isoc99_scanf(&DAT_0804a0dc,&secret_len);
if(1927 < (short)secret_len) {
puts("\nYour Secret is too long");
exit(0);
}
printf("\nEnter your secret: ");
getchar();
fgets(your_secret, (uint)secret_len, stdin);
puts("\nThe Enclave will shield your secrets!\n");
return;
}
谢谢大家的帮助:)
我不太理解您的问题,但是如果您打算使用输入并在同一行中获取一个值,则可以使用此代码
如果您知道要在一行上打印的所有信息,有多种方法可以在一行输出上格式化多个值。获取-1,然后在单行上获取something变量的内容的一个选项是使用“f-strings”
基本上,您可以将任何python代码放在大括号中,它的字符串表示形式将被替换到字符串中,然后整个字符串将在末尾以换行符打印
如果由于不知道一次输出的所有内容而要对同一行进行多次打印,则需要使用sys.stdout.write,然后在确实需要写入换行符时包含一个显式“\n”
相关问题 更多 >
编程相关推荐