xchg [ebp-0xA], esp
mov eax, [0x57C49B84]
mov ch, 0xB9
xchg [eax-0x13], dl
push ebp
jle 0x00000035
mov esp, 0xA6BC800F
pop ebx
inc esi
fcmovb st(0), st(5)
pop
在wxHexeditor中打开Eigenfaces.png的图片:
一些被暗示的十六进制代码:
我认为上面的评论几乎给出了答案,但让我们进行整合。
为了回答实际问题,PNG文件包含某人故意放置的可执行代码是不正常的。
但是任何字节序列(如PNG文件)都可以用许多不同的方式来解释或查看:例如作为声音,作为图像,作为人类可读的文本,或甚至作为可执行代码。几乎在所有情况下,将字节解释为除了创建它们之外的其他内容是没有意义的。您可以将PNG数据作为波形播放,但听起来很糟糕。您可以将PNG数据作为文本读取(您实际使用的是十六进制编辑器),但它不包含任何可读的单词。类似地,您可以将PNG数据视为可执行代码(您的十六进制编辑器也在Disassembleranzeige窗格中执行此操作),但同样,代码没有意义,除了使尝试执行它的程序崩溃之外,它不会做任何有用的事情。
但是当您使用PNG查看器读取PNG数据时,您会看到一张图片。因为这就是创建PNG文件的人或设备如何使用它。
正如Dan所说,PNG文件可能包含某人故意放置的可执行代码的可能性很小。有人可能知道某个特定的PNG查看程序有错误,导致程序尝试执行部分PNG数据。然后有人可以创建一个PNG文件,当用该程序打开时,会用病毒或木马感染别人的计算机。但任何其他正常运行的程序都不会执行代码。