摘要
GDI(Graphics Device Interface)是Windows的图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。如果你曾经使用过GDI编写过应用程序,那你肯定对设备描述表(DC)的概念非常熟悉,它是Windows使用的一个数据结构,用于存储具体设备能力和如何在设备上重绘一些项目的有关属性信息。在图形绘制时,首先你必须获得一个设备描述表句柄,然后把这个句柄作为一个参数传递给GDI图形绘制函数,最后绘制完图形后,需要销毁这个句柄。本文关注的这个MS07-017漏洞,就是因为这个销毁函数——Delete Object()出了问题。除了Windows Server 2003和Windows Vista不受影响外,其他版本的Windows都存在这个漏洞。