S.T.A.L.K.E.R.是由GSC Game World开发的第一人称射击游戏。 S.T.A.L.K.E.R.: Shadow of Chernobyl 函数IPureServer::_Recieve存在栈缓冲区溢出漏洞,如果在游戏中接收到了以0x39字节开始的报文,就会使用MultipacketReciever::RecievePacket函数。该函数取入站报文中所指定的16位数字作为所要拷贝的字节数,报文中的数据作为源数据,并使用8k字节的栈缓冲区作为拷贝目标。S.T.A.L.K.E.R.中的每个UDP报文最大大小为1472字节,但通过游戏中所实现的LZO压缩,就可以在报文中放置32k字节的数据,这就可能在上述拷贝操作中触发栈溢出。
S.T.A.L.K.E.R.是由GSC Game World开发的第一人称射击游戏。 S.T.A.L.K.E.R.: Shadow of Chernobyl 函数IPureServer::_Recieve存在栈缓冲区溢出漏洞,如果在游戏中接收到了以0x39字节开始的报文,就会使用MultipacketReciever::RecievePacket函数。该函数取入站报文中所指定的16位数字作为所要拷贝的字节数,报文中的数据作为源数据,并使用8k字节的栈缓冲区作为拷贝目标。S.T.A.L.K.E.R.中的每个UDP报文最大大小为1472字节,但通过游戏中所实现的LZO压缩,就可以在报文中放置32k字节的数据,这就可能在上述拷贝操作中触发栈溢出。