文件名可以包含 Linux 中的可执行代码吗?



这最近出现在下载文件夹中。

文件为空,但文件名为:

'$'\001\331\006'@f2@8'$'\f''@'$'\037\036\006\004''@@@'$'\240\002\240\002\b\003\004\340\002\340\002\034\001\001\004\250\210\002\250\210\002\020\001\005\220\002\220\002''e'$'\222'这让我立即感到困扰,因为它看起来像 $unicode_chars,其中许多是命令? 001 标题开始 331 不知道 006 接受字符 \004 传输结束

无论如何,这样的文件如何显示在您的计算机上?

Linux 文件名可以包含任何字符,除了空字符 (\0( 和斜杠字符/(目录分隔符( 1。所以是的,文件名可以包含可执行代码或任何类型的数据。不过,这并不意味着它可以被执行。操作系统提供的唯一功能是文件操作,如打开文件、目录列表等。为了能够执行代码,它必须位于文件中,而不是其名称上。

1 https://en.wikipedia.org/wiki/Filename#Comparison_of_filename_limitations

这最近出现在下载文件夹中。

您(不是您的计算机(对您的下载负责!

无论如何,这样的文件如何显示在您的计算机上?

闻起来像您的计算机(或您不小心下载的计算机(受到某些漏洞或网络攻击的影响,或者一个非常错误的程序(缓冲区溢出(被粗心地运行。

另一种可能性是严重的硬件问题,例如硬盘或SSD垂死,RAM故障,宇宙射线,粗心的断电,从而损坏了一些文件系统。

考虑使用 strace(1(、gdb(1(、fsck(8(、dmesg(1( 来研究更多内容。

之前请仔细备份您的重要数据。

相关内容

  • 没有找到相关文章

最新更新