病毒如何存在于图像中?

Joe*_*sky 47 security virus image

我最近看了 芬兰互联网安全专家的视频.在第11分钟左右,他谈到了隐藏在图像中的病毒,并在图像即将显示时执行.

我想知道他们是如何在技术上做这样的事情,我的意思是怎么来的病毒执行,当应的图片显示又是如何得出的图像以某种方式不会受到损害.我认为计算机首先查看扩展,然后使用适当的程序打开它并让程序自己工作(我不希望常规的图像查看器能够在其自身内运行病毒).显然它不会像那样工作,但我问的任何人都无法帮助我解决这个问题.

所以有人知道他们是如何做到的,原则是什么?非常感谢你.

Mar*_*ler 46

您的操作系统会选择一个程序并要求它打开图像,这是正确的.操作系统不会要求程序执行图像 - 这是无稽之谈.

但是,图像是复杂的格式,通常包含元数据和其他未直接显示的部分 - 您可以隐藏其中的内容而不会影响屏幕上的图像.因此,图像文件中可能存在潜伏的数据.

此外,程序可能有错误,特别是缓冲区溢出.简而言之,病毒可以通过将过多的数据放入元数据部分来利用这一点 - 大于解码图像所需的程序.内部缓冲区溢出并且具有足够的技能,病毒编写者能够将可执行代码放入内存中的正确位置,以便解码图像的程序将最终执行代码.这样一个无辜的"死"文件就像一个图像可以托管一个漏洞.

  • -1 ...... Matt Damon对缓冲区溢出有什么了解?! (14认同)
  • @EdS.,我认为鲁道夫先生暗示盖斯勒先生类似达蒙先生.<糟糕的笑话>哦,我因为不同意而投降了.</坏笑话> (5认同)
  • 好吧,我当时没有得到这个笑话......但我很高兴与Matt Damon相提并论:-) (5认同)
  • 只是想指出,specializt正在假设缓冲区溢出的影响是有限的(崩溃),这通常不是真的. (4认同)
  • @MartinGeisler我认为这是"元数据"的一个非常好的例证:) http://stackoverflow.com/a/5509538/230884 (3认同)
  • @CppLearner:哇,真棒!令人惊讶的是,当我显示动画GIF时,我的一个核心以100%运行... (2认同)