Security 堆栈缓冲区溢出如何用包含空字符的值覆盖局部变量
我正在试图找到一种方法来覆盖包含以下代码的函数的返回地址: 长度=大于目标大小但小于从目标数组开始的返回地址偏移量Security 堆栈缓冲区溢出如何用包含空字符的值覆盖局部变量,security,buffer,stack-overflow,Security,Buffer,Stack Overflow,我正在试图找到一种方法来覆盖包含以下代码的函数的返回地址: 长度=大于目标大小但小于从目标数组开始的返回地址偏移量 for (i = 0; i <= length; i++) target[i] = argument[i]; (i=0;i的听起来像是缓冲区溢出挑战 在大多数情况下,您不能写入空字节,例如,如果缓冲区溢出是由不安全的字符串函数(如strcpy())引起的。在这种情况下,您使用for循环移动字节,因此如果您可以影响长度值(该值可能在堆栈上…),则可能会复制空字节 另一种
for (i = 0; i <= length; i++)
target[i] = argument[i];
(i=0;i的
听起来像是缓冲区溢出挑战
在大多数情况下,您不能写入空字节,例如,如果缓冲区溢出是由不安全的字符串函数(如strcpy())引起的。在这种情况下,您使用for循环移动字节,因此如果您可以影响长度值(该值可能在堆栈上…),则可能会复制空字节
另一种可能是查看数据类型。如果数据类型是有符号的,则非常大的值将被解释为负数。尽管在这种攻击中您覆盖了一个数值,但仍会忽略“算术溢出”