1.网站下载附件。
给到一张图片,打开显示文件损坏:
2. 尝试修复文件。
file一下文件,发现文件确实是损坏的:
丢入010Editor,发现缺少必要的文件头文件尾等等,啥啥都缺。尝试补充文件头文件尾,随便补充个IHDR块,很明显失败了:
图片依然打不开。
3. 利用题目提示。
结合题目里给到的提示:神秘数字“0x50”、“你会异或吗”,于是想到试试把第一个字节跟0x50异或一下,即 D9^50;
16进制D9=二进制11011001
16进制50=二进制1010000,不足8位,前边补0=01010000
11011001^01010000=10001001=十六进制89
很巧妙,89与PNG图片文件头的第一个字节相同,尝试了一下第二个字节,发现一致。于是得出:该题核心思想是将PNG图片各字节与0x50异或可得原图。
4.合理使用软件。
把图片丢入010Editor,打开“工具”——“十六进制运算”——“二进制异或”,将操作数改为0x50,下方选中十六进制:
文件恢复完成:
重新打开原图片,得到flag: