第三周学习记录 缓冲区实验

一实验步骤

由于机器是64位,而实验是在32位环境下进行,因此,先配置实验环境。

sudo apt-get update

sudo apt-get install -y lib32z1 libc6-dev-i386

sudo apt-get install -y lib32readline-gplv2-dev安装32位C语言环境。

利用sudo sysctl -w kernel.randomize_va_space=0指令关闭随机化地址,方便查找地址。

sudo su

cd /bin

rm sh

ln -s zsh sh

使用zsh代替 /bin/bash来重现缓冲区溢出的情形。

在编译时利用fno-stack-protector关闭堆栈保护机制,-z execstack 允许执行栈,实现编译。

二实验结果:

原文地址:https://www.cnblogs.com/x20165335/p/9786198.html

时间: 2024-08-09 02:34:27

第三周学习记录 缓冲区实验的相关文章

2019年7月15日~7月21日 第三周学习记录

这周步入了对JAVA学习的正轨.本来是计划这周的最后写这篇博客的,但是前两天电脑出了一些问题送去修理了,所以耽误了两天. 本周通过在腾讯课堂刷网课来学习JAVA,平均每天2~3个小时,由于是从零基础开始学,所以内容没有那么多.但正因为这样才发现了JAVA和C语音.C++的不同之处.JAVA通过不同的虚拟机(JVM)来实现跨平台,我认为这也是它为什么特别受欢迎的原因之一.完成了自己的第一个手工javac程序的helloworld.java.学习了一些java相关的编译过程当中的规则和规约,java

20172327 2017-2018-2 《程序设计与数据结构》第三周学习总结

20172327 2017-2018-2 <程序设计与数据结构>第三周学习总结 教材学习内容总结 讨论对象的创建和使用对象引用变量. 探索String类提供的服务. 描述如何组织成Java标准类库包. 探索随机和数学课提供的服务. 讨论如何使用NumberFormat和DecimalFormat类格式输出. 介绍枚举类型. 教材学习中的问题和解决问题 暂无 代码学习中的问题和解决过程 问题1:在做项目pp0301时,出现了下面这中情况 问题1解决方案:通过仔细的分析,我发现代码是对的,主要是数

王之泰201771010131《面向对象程序设计(java)》第三周学习总结

王之泰201771010131<面向对象程序设计(java)>第三周学习总结 第一部分:理论知识复习部分 第一章 回顾了Java"白皮书"的关键性语句,再次理解了以前未理解的句子.对Java语言的十多种特性又有了更深刻的理解和不同角度的体会. 第二章 继续使用eclipse实验开发程序,在jdk源文件中仔细欣赏体会了标准代码的范例,以此来规范自己的编写风格. 第三章 第三章中复习了Java的基本语法,着重复习了运算符的使用和文件的输入输出,深刻理解了例如:控制流程语句等五种

张季跃 201771010139《面向对象程序设计(java)》第三周学习总结(改)

张季跃 201771010139<面向对象程序设计(java)>第三周学习总结 第一部分:理论知识学习部分 3.6字符串 u(1)Java字符串是Unicode字符的序列,它是组织字符的基 本数据结构,用法类似于字符数组. u (2)有内置的字符串类型,而是在标准Java类库中提供了一 个Java预定义类String.在Java中,字符串被当作对象 来处理. u      (3)程序中需要用到的字符串可以分为两大类: –创建之后不会再做修改和变动的不可变字符串String类: –创建之后允许再

杨其菊201771010134《面向对象程序设计(Java)》第三周学习总结

<面向对象程序设计(Java)>第三周学习总结 第一部分:理论知识 这周课程没有新进度,由于感觉对基础语法的不熟悉,复习了一遍前三章的细碎知识,学到一些之前不知道的原理: 1.计算机高级语言按程序的方式可以分为两种:编译型和解释型 编译型:C,C++,Objective-C,Pascal等: 解释型:Ruby,Python, 半编译型:Visual Basic, java:既是编译型语言又是解释型语言. 2.classpath 环境变量的设置:如果使用1.5以上的版本,完全可以不用设置这个环境

20172313 2018-2019-1 《程序设计与数据结构》第三周学习总结

20172313 2018-2019-1 <程序设计与数据结构>第三周学习总结 教材学习内容总结 概述 队列是一种线性集合,其元素从一端加入,从另一端删除:队列的元素是按FIFO方式处理的.第一个进入的元素,也就是第一个退出的元素. 队列有队头(front)和队尾(rear),数据从队尾进入队列,从队头出队列,队头(front)指向队列的第一个数据,队尾(rear)指向队列中的最后一个数据. JavaAPI中的队列 Java集合API提供了java.util.Stack类,它实现了栈集合.但它

2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

2018-2019-20172329 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 <Java软件结构与数据结构>第五章-队列 一.概述 1.队列是什么? 队列是种线性集合,其元素从一端加入,从另一端删除:注:队列是按照先进先出的方式处理的.从队列中删除元素的次序,与放置元素的次序是一样的. 2.队列的构成 (1)方法: 操作 描述 enqueue 向队列末端添加一个元素 dequeue 从队列前段删除一个元素 first 考察队列前端的那个元素 isempty

20172324 2018-2019-1 《程序设计与数据结构》第三周学习总结

20172324 2018-2019-1 <程序设计与数据结构>第三周学习总结 教材学习内容总结 概述 队列是一种线性集合,也就是FIFO,举一个例子,银行排队.元素从队列末端进入,从队列前端退出. 操作 说明 enqueue(add/insert) 向队列末端添加一个元素 dequeue(remove/serve) 从队列前段删除一个元素 first(front) 考察队列前端的那个元素 isempty 判定队列是否为空 size 确定队列的元素数目 Java API中的队列 API中提供的

2018-2019-1 20165214 《信息安全系统设计基础》第三周学习总结

20165214 2018-2017-1 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 1.实际上gcc命令调用了一系列程序,将源代码转化成可执行代码. 2.存储器系统的实际实现是将多个硬件存储器和操作系统软件组合起来. 3.ISA:指令集体系结构,它定义了处理器状态.指令的格式.以及每条指令对状态的影响. 4.程序计数器(在IA32中,通常称为"PC",用%eip表示),指示将要执行的下一条指令在存储器中的地址. 5.操作系统负责管理虚拟地址空间,将虚拟地址翻