C:如何检查是否已写入内存地址?

问题描述 投票:-1回答:1

C中是否有一种方法可以检查我自己的进程的内存地址是否被写入?例如:如果我的程序接受放置在缓冲区中的输入,是否可以通过检查是否已写入缓冲区的下一个地址来检查输入是否溢出了缓冲区?我知道我可以检查缓冲区下一个地址的内容并验证是否已被修改,但是这样对我正在处理的内容不利。

我正在研究一种保护措施,以防同时存在缓冲区溢出和格式字符串错误的情况

c stack memory-address buffer-overflow
1个回答
-2
投票

我在C中没有遇到过任何这样的选择。如果可能的话,可以在程序中使用fgets()而不是gets()来确保输入缓冲区的数组范围。这样的字符串比较或数组边界检查是您唯一的选择。

© www.soinside.com 2019 - 2024. All rights reserved.