0

在 Linux 控制台中,当 C 程序要求输入字符串(即用户名)时,我如何插入不可打印的字符?
然后我搜索更好的东西,
printf '\x48\x83\xc4\x50\x48\xbf\x3d...etc' | ./myProgram.bin
或者
./myProgram.bin < dataFile
我更喜欢在需要时输入字符,但我不知道如何编写不可打印的字符。
谢谢

4

2 回答 2

0

不可打印字符的十进制值是 0 到 31。您可以这样打印它们:

void main()    {
int i;
char c;
for(i=0;i<32;i++)     {
   c=i;
   cout<<c<<" ";
 }
getch();
}

同样,您可以根据整数值读取字符……但是,将它们与可打印字符放在一个字符串中,将是另一项艰巨的任务。

于 2013-09-22T17:35:06.580 回答
0

它使用 xclip (printf '\x48\x83...' | xclip) 将字符串复制到剪贴板。
然后,当程序要求输入字符串时,我使用 SHIFT+CTRL+V 粘贴字符串。
它通常有效,除了输入函数 (gets, ...) 可以忽略或用作控制字符的某些字符 (\x08, ...)。

于 2013-09-28T16:18:54.473 回答