Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 堆栈缓冲区溢出如何用包含空字符的值覆盖局部变量_Security_Buffer_Stack Overflow - Fatal编程技术网

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循环移动字节,因此如果您可以影响长度值(该值可能在堆栈上…),则可能会复制空字节

另一种可能是查看数据类型。如果数据类型是有符号的,则非常大的值将被解释为负数。尽管在这种攻击中您覆盖了一个数值,但仍会忽略“算术溢出”