实验代码之bufdemo.c
2019-05-27 21:43
225 查看
本章实验主要是将一个限制输入为4位的字符数据进行输入,如果输入数据在限制范围以内,则以正常字符输出,如果超出限制范围,则会侵占其它内存,从而报错。
/* Demonstration of buffer overflow */ #include <stdio.h> #include <stdlib.h> /* Implementation of library function gets() */ char *gets(char *dest) { int c = getchar(); char *p = dest; while (c != EOF && c != '\n') { *p++ = c; c = getchar(); } *p = '\0'; return dest; } /* Read input line and write it back */ void echo() { char buf[4]; /* Way too small! */ gets(buf); puts(buf); } void call_echo() { echo(); } /*void smash() { printf("I've been smashed!\n"); exit(0); } */ int main() { printf("Type a string:"); call_echo(); return 0; }
以下是正常输入限制4位字符以内代码:
zhaoxiaoan@zhaoxiaoan:/mnt/hgfs/CS2$ ./bufdemo Type a string:0123 0123 zhaoxiaoan@zhaoxiaoan:/mnt/hgfs/CS2$ ./bufdemo Type a string:aaaa aaaa
可知其正常。
以下是超出限制字符代码:
zhaoxiaoan@zhaoxiaoan:/mnt/hgfs/CS2$ ./bufdemo Type a string:012345 012345 *** stack smashing detected ***: <unknown> terminated 已放弃 (核心已转储)
显然发生了错误并进行报错。
这一段代码逻辑应该可以用于做一些简单的判断,减少时间成本,并且优化一些过程运算。
相关文章推荐
- 【ESP8266】app_IR_TxRx_demo中的RingBuf代码透析
- bufdemo.c代码分析
- bufdemo代码程序的运行与解释
- 【protobuf】 1.生成C++代码
- 恶意代码分析实战 第十五章课后实验
- Win7+VS2010+Matlab2011b下运行 Deformable Part Models代码-运行demo()-详细步骤
- [代码]创建,挂起,恢复,结束线程的demo
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
- 实验8 统计和输出一次考试中的最高分、最低分、平均分,以及在90~100、 80~89、 70~79、 60~69和60分以下各分数段的人数。程序代码如下(可复制):
- 第一行代码中Android定位Demo显示经纬度失败原因
- Python基于用户协同过滤算法的电影推荐代码demo
- 图像二值化后送入crnn进行ocr识别实验代码记录
- [脚本]结合轮廓显示,实现完整的框选目标(附Demo代码)
- 超火的漫画线稿上色AI出新版了!无监督训练,效果更美好 | 代码+Demo
- bufdemo.c程序gcc运行结果
- 微信小程序支付源码 Demo 后台服务端代码
- [ZigBee] 5、ZigBee基础实验——图文与代码详解定时器1(16位定时器)(长文)
- 史上最简单的 Mybatis 教程 · demo 代码
- CSAPP基本版实验学习日志:关于runaway代码的阅读以及在ubantu上的运行
- javascript时钟代码 DEMO-002