计算机安全实验:地址空间布局随机化与内存分配策略
需积分: 44 3 浏览量
更新于2024-08-10
收藏 1.61MB PDF 举报
"这篇文档主要介绍了EXEC系统调用的工作原理以及MALLOC库调用在内存管理中的应用,并给出了一个简单的C程序示例。此外,还提到了网络安全相关的教学实验,包括各种漏洞和攻击实验,以及安全机制的设计与实现实验。"
在计算机系统中,EXEC系统调用是一个关键的组成部分,它允许程序替换当前进程的执行映像,从而执行新的程序。在标题提及的"EXEC系统调用-必看!开关电源常用安规要求一览表"中,我们重点关注EXEC调用的过程:
1. **许可检查**:EXEC调用首先会确认目标文件是否具有执行权限。
2. **获取段和大小**:获取程序的代码段、数据段等信息,了解其内存需求。
3. **参数和环境获取**:准备程序运行所需的参数和环境变量。
4. **内存分配与释放**:分配新的内存空间以容纳新的程序,并释放旧的内存。
5. **复制栈**:将当前进程的栈复制到新分配的内存中。
6. **复制数据**:将程序的数据(包括代码和静态数据)复制到新的内存位置。
7. **处理权限位**:处理setuid和setgid权限,这可能会影响程序的执行权限。
8. **修正进程列表**:更新进程列表以反映新的程序状态。
9. **告知内核**:通知内核进程现在可以执行新程序。
在安全方面,文档提到栈的地址随机化,这通常是在第4或第5步进行,以增加栈溢出攻击的难度。malloc()是动态内存分配的库函数,它用于从堆中分配内存。malloc()通过brk()调用来扩展数据段。在实验任务中,学生被鼓励使用rand()和random()函数对栈和堆的地址进行随机化,以增强程序的安全性。
此外,该文档还提到了一个由杜文亮博士等人开发的计算机安全教育实验机制——SEED,它包括了一系列的实验,覆盖了缓冲区溢出、返回导向编程(Return-to-libc攻击)、格式化字符串漏洞、竞争条件、Chroot沙盒、TCP/IP攻击、DNS欺骗、跨站脚本攻击等多个网络安全主题。这些实验旨在帮助学生理解和防御各种网络攻击,并涉及权限管理、加密、地址空间布局随机化等安全机制的设计与实现。
实验的分类依据其复杂度,从小型实验(需要2小时课堂时间或一周作业时间)到大型综合实验(适合作为期末项目,需要4至6周时间)。这些实验为学习者提供了深入实践和探索计算机安全的机会,有助于提升网络安全意识和技能。
2024-06-30 上传
2022-06-05 上传
2022-07-06 上传
2021-05-10 上传
2009-07-22 上传
2021-05-13 上传
2022-01-31 上传
2021-08-11 上传
Sylviazn
- 粉丝: 29
- 资源: 3881
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载