缓冲区溢出实例的一点困惑

waterflade 2013-05-06 01:28:19
#include <windows.h>
void function(char* str)
{
char buffer[256];
strcpy(buffer,str);
}
void main()
{
char large_string[256];
int i;
for(i=0;i<255;i++)
large_string[i] = 'A';
function(large_string);
}
这段代码是《黑客防线2009缓冲区溢出攻击与防范》溢出原理的例子,书中有一句话我始终没有想透,原话是:当执行strcpy函数时,程序将256字节的字符拷入到buffer中,但buffer仅能容乃16字节,buffer后的250字节的内容将被覆盖掉,我觉得256字节中16字节拷贝到buffer中,剩余240字节覆盖buffer后面的高地址字节,为什么书中说是250字节,是不是还是有哪里没理解到,请大家帮忙解惑,多谢了
...全文
126 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
码农UP2U 2013-05-07
  • 打赏
  • 举报
回复
应该是书中的笔误。

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧