单项选择题

A.栈溢出可以用于提升用户权限,不可以用于执行拒绝服务攻击
B.在函数执行时,栈中自顶向下依次压入函数参数,返回地址,和EBP寄存器内容
C.栈溢出的原因是在函数运行过程中,输入了恶意的变量值,在栈中写该变量时超出了该变量的边界,导致栈中的其他数据被覆盖
D.栈溢出可以导致程序执行任意命令