Farbrausch《fuenf》中十六进制95cd21ebfc转译为..!..的原理探究
关于Farbrausch《fuenf》中5字节可执行文件的xxd显示疑问解答
2001年德国场景组Farbrausch发布了名为《fuenf》(副标题in your face)的Demo,其中包含一个仅5字节的恶作剧性质可执行文件——运行时会发出怪异声响,甚至可能导致电脑崩溃。
文件原始数据
- 十六进制内容:
95cd 21eb fc - 二进制表示:
10010101 11001101 00100001 11101011 11111100
疑问点
使用xxd工具提取可打印字符时,得到的结果是:
..!..
但如果按ISO-8859-1编码(扩展ASCII)查询,这些字节对应的字符应该是:
•Í!ëü
其中只有感叹号匹配,为什么95cd21ebfc会被xxd转译为..!..?
补充测试信息
- 执行
file -bi fuenf.com命令,输出显示文件编码未知:charset=unknown-8bit - 执行
iconv -f ISO-8859-1 -t UTF-8 fuenf.com命令,返回结果:Í!ëü
原因分析
这是因为xxd对“可打印字符”的判定严格遵循ASCII标准,而非ISO-8859-1这类扩展字符集:
- 十六进制
21对应ASCII的感叹号!,属于ASCII可打印字符范围(十进制32~126),所以正常显示; - 其余字节
95、cd、eb、fc的十进制值分别为149、205、235、252,均超出了ASCII可打印字符的范围; xxd会将所有非ASCII可打印的字节统一替换为.,因此最终显示结果为..!..。
内容的提问来源于stack exchange,提问作者n.r.
相关产品推荐
相关产品推荐

