社区
C语言
帖子详情
关于缓冲区溢出问题的例子,请分析结果
oliveadmire
2005-09-26 12:21:15
#include <stdio.h>
int main(){
char a[4];
do{
gets(a);
puts(a);
}
while (a!="#");
return 0 ;
}
当我输入的a超过3个字母时,输出的仍是我输入的.为什么不是截取 输出
...全文
340
12
打赏
收藏
关于缓冲区溢出问题的例子,请分析结果
#include int main(){ char a[4]; do{ gets(a); puts(a); } while (a!="#"); return 0 ; } 当我输入的a超过3个字母时,输出的仍是我输入的.为什么不是截取 输出
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kenosis
2005-09-27
打赏
举报
回复
还以为是利用缓冲区溢出在进行攻击呢
Zsen_J
2005-09-27
打赏
举报
回复
你把循環刪掉看看,就知道是什麽問題了
xiaocai0001
2005-09-27
打赏
举报
回复
C/C++不进行数组越界检查
从理论上说, 只要得到一个地址,你就可以通过这个地址进行加减运算访问到内存中的任何一个地方
至于改写那些地方会出什么后果,那是不可预测的
有些地址空间,操作系统做了保护,若要进行操作,则会被操作系统中止
有些地址空间,没有保护,进行操作也不会有什么提示,但若这些地址存放有其他重要数据,那么与这个数据相关的程序就可能崩溃~
ttlyfast
2005-09-27
打赏
举报
回复
现在的服务 越来越安全了!!
大力支持信息安全
jsjjms
2005-09-27
打赏
举报
回复
不过当输入超过一定的字符的时候程序退出了.(没有报错)
偶看了对应的汇编
4: char a[4];
5: do{
6: cin>>a;
00401028 lea eax,[ebp-4]
0040102B push eax
0040102C mov ecx,offset cin (0042aa60)
00401031 call istream::operator>> (004023e0)
7: cout<<a;
00401036 lea ecx,[ebp-4]
00401039 push ecx
0040103A mov ecx,offset cout (0042aa20)
0040103F call ostream::operator<< (00401290)
8: }
看不出什么名堂.
不知谁能解释一下,偶也谢谢了:-)
jsjjms
2005-09-27
打赏
举报
回复
#include <stdio.h>
int main(){
char a[4];
do{
gets(a);
puts(a);
}
while (a!="#");
return 0 ;
}
///////////////
我在c++中也遇到过,感觉就是定义的数组没有对边界进行限制.
NetsEagle
2005-09-27
打赏
举报
回复
strcat 也有同样的问题啊,所以小心使用:)
FW:
while (a!="#");
不可以这样写地~~
修改为:
while( strcmp(a,"#") )
NetsEagle
2005-09-27
打赏
举报
回复
??
while (a!="#");
啥意思?
wxc_512
2005-09-27
打赏
举报
回复
哈哈, 楼上说的真简单(明了).
PaladinXu
2005-09-26
打赏
举报
回复
因为你还没写到导致程序崩溃或者出错的地方,多写点试试看!
megaboy
2005-09-26
打赏
举报
回复
gets不检查边界,是不进行截断的。想截断应该使用fgets(a, MAX, stdin);
antijpn
2005-09-26
打赏
举报
回复
还以为是利用缓冲区溢出在进行攻击呢……略过……
c语言
缓冲区溢出
例子
,经典
缓冲区溢出
小
例子
经典
缓冲区溢出
小
例子
文章目录经典
缓冲区溢出
小
例子
0.说明1.基于
缓冲区溢出
的HelloWord2.永不停止的HelloWord0.说明 两个小程序,C语言编写,VC++6.0编译 调试用的OD。 小程序来源:“滴水逆向”的视频。1....
经典
缓冲区溢出
小
例子
经典
缓冲区溢出
小
例子
文章目录经典
缓冲区溢出
小
例子
0.说明1.基于
缓冲区溢出
的HelloWord2.永不停止的HelloWord 0.说明 两个小程序,C语言编写,VC++6.0编译 调试用的OD。 小程序来源:“滴水逆向”的视频...
关于
缓冲区溢出
攻击原理的简单
例子
(C语言编写)
一、什么是
缓冲区溢出
?
缓冲区溢出
是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,使得溢出的数据覆盖在合法数据上,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈...
C语言入坑指南-
缓冲区溢出
如果说之前所提到的一些
问题
可能只是影响部分功能的实现,那么
缓冲区溢出
将可能会造成程序运行终止,被不安全代码攻击等严重
问题
,因此我们不得不特别重视。 一个
缓冲区溢出
的
例子
对于下面的程序: #include<...
缓冲区溢出
攻击
缓冲区溢出
:指接口的一种状况,此时大量的数据被输入到数据缓冲区或数据存储区,超过了其所分配的存储能力,覆盖了其他信息,攻击这利用这样的状态破坏系统或插入特别编制的代码,以获得系统的控制权。 实例: 这...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章