没有合适的资源?快使用搜索试试~ 我知道了~
C语言的内存漏洞分析与研究1
需积分: 0 0 下载量 8 浏览量
2022-08-03
11:40:58
上传
评论
收藏 115KB PDF 举报
温馨提示
试读
3页
引言随着并行技术、 分布式技术以及虚拟技术的相互融合、 相互促进, 云计算、 大数据和人工智能有了突飞猛进的发展, 软件系统规模越来越大, 结构越来越复杂,软件
资源详情
资源评论
资源推荐
2019.06
! 引言
随
着并行技术! 分布式技术以及虚拟技术的相互融
合! 相互促进" 云计算! 大数据和人工智能有了突飞猛
进的发展" 软件系统规模越来越大" 结构越来越复杂"
软件系统稳定性和可靠性变得越来越难保障# 为了保障
软件系统的稳定性和可靠性" 各软件公司在会在软件生
命周期各个阶段投入大量人力和物力来保证软件质量$
"
语言具有数据类
型丰富多样" 开发时灵活方便%
指针直接对硬件操作即对物理地址的直接访问& 具有大
量库函数" 这些使得程序执行效率高’ 并且具有兼顾低
级编程语言和高级编程语言& 通过对位& 字节和内存地
址进行操作进而对系统软件进行访问和操作等优势$
由于
"
语言对内存空间的访问操作& 接
近底层硬件"
"
语言程序具有执行效
率高& 可移植性强等特点受到操
作系统& 企业数据库管理系统& 嵌入式软件等相关软件
的青睐$
但
"
语言缺乏对内存边界检查" 内存越界主要
包含
数据越界读写 (如
"
语言编译器没有对数组或
缓冲区进
行边界检查)& *野指针操作+ 和堆栈溢出等" 而这些
都有可能程序存在严重的安全漏洞" 在一定程度上降低
了程序的可靠性和安全性’ 不对接收参数类型做校验"
这都使得程序存在一定的安全隐患’ 安全保护机制和异
常处理机制的缺失使得
"
语言在编译时不能及时发
现漏
洞或异常" 但在程序运行后有可能会出现各种安全隐
患" 而这些安全隐患或漏洞一旦被攻击者或非法用户窃
取信息或恶意篡改" 有可能造成无法估计的损失" 程序
的安全性大大降低$
# 常见内
存错误分析
计算机的内存采用的
是分区管理" 程序与程序所占
用的内存是相互独立的" 是不能相互访问的" 并且每个
程序的内存采用的也是分区管理$ 通常情形下"
"
语
言
程序的内存分配分为以下几种方式%
(
!
) 从
静态存储区域分配$ 生命周期较长% 程序所
占用内存在编译时已分配好" 变量值所占用内存从函数
使用开始到程序的整个运行期间都存在$ 如全局变量!
$%&%’(
变
量$
(
)
) 在
栈上创建$ 生命周期只存在于函数的执行过
程中" 分配容量有限$ 在函数执行时" 函数内局部变量
的存储单元在栈上创建" 随着函数执行结束存储空间被
自动释放$
(
*
) 从
堆上分配" 亦称动态内存分配$ 内存空间的
生存周期由开发人员调用
+&,,-(
或
.
/0
申
请内存时开
始" 到调用
12
//
或
3
/,/%/
时
被释放时结束$ 如果调用了
+&,,-(
或
.
/0
" 却
没有调用
12
//
或
3
/,/%/
来
释放存储空
间" 容易发生内存泄露$
总体来说" 在
"
语言中常见的内存漏洞是缓
冲区溢
出! 指针非法使用和内存泄露$
)
45 缓冲区溢出
缓
冲区溢出的原因主要是因为在
"
语
言中缺失对
数组下标越界检查或缓冲区边界检查" 是指向已经分
配好固定存储空间存放数据" 如果向内存空间写入数
据时超出了已分配好的空间" 就会占用相邻的存储空
间" 覆盖相邻内存单元的内容" 从而引发不可预知的
程序错误$
作者简介:
刘
素娇 (
678)
9
)
" 女" 实验师" 硕士" 研究
方向% 计算机基础教学及网络$
收稿日期:)
:!79:*9)!
" 语言的内存漏洞分析与研究
刘素娇
(
河南护理职业学院,河南 安阳 ;<<:::)
摘
要:
" 语言允许开发人员直接对内存操作
,方便灵活,提高了程序的执行效率,但这也在一定程度
上牺牲了安全性。程序一旦发生内存错误,将会非常棘手,编译时不能自动发现这些漏洞,只有在程
序运行时才会出现,而这些漏洞所导致的后果 (如数据错误、内存泄露、系统崩溃、系统被攻击、用户
数据被窃取等) 很难捕捉到,测试也很难重现。
关
键词:
内存错误;
指针;内存测试
1
52
DOI:10.16184/j.cnki.comprg.2019.06.057
袁大岛
- 粉丝: 32
- 资源: 305
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0