在png文件中找到汇编代码是否正常?

时间:2018-09-05 20:02:59

标签: opencv hex

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图片:

一些未解释的十六进制代码:

1 个答案:

答案 0 :(得分:2)

我认为上面的评论几乎可以给出答案,但让我们合并一下。

要回答实际问题,PNG文件包含有人故意放置在其中的可执行代码是不正常的。

但是任何字节序列(如PNG文件)都可以通过许多不同的方式进行解释或查看:例如,作为声音,图像,人类可读文本甚至可执行代码。在几乎所有情况下,将字节解释为不同于字节创建的意义都没有意义。您可以将PNG数据作为波形播放,但是听起来很糟糕。您可以将PNG数据读取为文本(实际上是通过十六进制编辑器完成的),但其中不包含任何可读的单词。同样,您可以将PNG数据视为可执行代码(您的十六进制编辑器也在Disassembleranzeige窗格中进行了处理),但是同样,该代码毫无意义,除了使试图执行该程序的程序崩溃之外,不会做任何有用的事情。 / p>

但是,当您使用PNG查看器读取PNG数据时,会看到图片。因为这就是创建PNG文件的人员或设备打算使用它的方式。

如Dan所说,PNG文件中可能包含有人故意放置的可执行代码的可能性很小。可能有人知道某个特定的PNG查看程序存在错误,导致该程序尝试执行部分PNG数据。然后有人可以创建一个PNG文件,当使用该程序打开该文件时,该文件会感染病毒或特洛伊木马。但是其他任何运行正常的程序都不会执行该代码。