在Windows中,计算机图形文件由诸如图形设备接口和Direct2D之类的组件呈现。

是否可以创建一个图形文件,该图形文件除了显示图形外,还利用图形文件内的自定义代码? br />
使用自定义代码是指诸如以下功能:


增加图形上显示的计数器或日期。
访问Web URL检索图形上显示的数据。


评论

有点无关的东西,代码图像呢?看一下esolang piet,它使您可以对图像进行编程。这是创建图像然后将其作为可执行文件构建的视频。

除了图像解码器(例如GDI +)中的漏洞外,还可以嵌入代码,例如在JPEG上的EOF标记之后。在这种情况下,自定义代码位于同一图像文件中,但从技术上讲,它不是图像的一部分。请参阅本文档中的示例:re:“ hammertoss”恶意软件:www2.fireeye.com/rs/848-DID-242/images/rpt-apt29-hammertoss.pdf

相关:security.stackexchange.com/questions/55061/…

#1 楼

常见的图形格式(例如JPEG,PNG和GIF)未设计为在其中包含任何形式的代码。它们只是存储压缩的像素阵列-它们无法在命令中生成任何内容或与Web服务等联系。

(图像解码器中偶尔会发现漏洞,这可能会导致恶意构建图像,通过缓冲区溢出漏洞或类似方法导致查看时执行代码。但这当然不是该格式设计的一部分。)

某些矢量图形格式,例如EPS和SVG实际上可以允许嵌入代码。但是,作为矢量格式而不是位图格式,普通的图像查看器通常不支持这些格式(尽管浏览器支持SVG),并且不能在普通的绘画程序中进行编辑。需要一个专门的矢量图形程序才能使用它们。

为了生成使用新数据更新的图像,您可以创建一个Web服务,该Web服务在每次请求时在服务器上重新生成图像。但是,如果客户端缓存生成的图像,而不是每次查看时都重新请求它,它们将看到旧数据。

#2 楼

我不知道您是否认为这是对您的问题的答案,因为我有点不确定如何解释它。考虑到这一点,二维条形码可以是图形,用于存储代码并与在整个符号体系(例如PDF417,DataMatrix等)中定义的可变数据元素进行交互。

评论


$ \ begingroup $
我认为问题是要在图像文件中而不是图像本身中嵌入代码。如果您不确定要查找的问题是什么,那么您在拥有足够的声誉后也可以对此问题发表评论。
$ \ endgroup $
– trichoplax
15年10月13日在13:58

$ \ begingroup $
感谢user1846,正如Trichoplax所说,我希望将代码嵌入图像文件中。
$ \ endgroup $
–coderworks
15年10月13日在18:13