20155328 《信息安全系统设计基础》第六周 课堂提交补充
20155328 《信息安全系统设计基础》第六周 课堂提交补充
第六周课上测试-3
编写一个程序w0603,运行以下代码:
short int v=-学号后四位;
unsigned short uv=(unsigned short)v;
printf("v=%d,uv=%u\n",v,uv);
在第3行设置断点用gdb调试,用p/x v,p/x uv查看变量的值,分析p/x v,p/x uv与程序运行结果的不同与联系。
gdb中调试如下:
程序运行如下:
可以看到gdb中用p/x显示的值为v=uv=0xeb30,而运行结果为v=-5328,uv=60208.
分析:%d打印的是原数值,%u打印时将有符号数化作无符号数,符号位变成数值位。
第六周课上测试-5
通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.c“编译成汇编代码:
int g(int x){return x+3;
}
int f(int x){int i = 学号后两位;return g(x)+i;
}
int main(void){return f(8)+1;
}
使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况。
Step1:进入gdb模式,在main函数处设置行断点,run后输入disassemble,得到汇编代码:
Step2:
输入i r(info registers),然后用x/4a SP的值看栈的值:
Step3:
输入命令display/i $pc,符号=>后跟着的是系统正在执行的命令,输入si,用i r查看这条命令执行结束后寄存器的值的变化,然后用x/4a SP的值看栈的值:
之后一直重复si i r x/4a SP的值 直到结束
缓冲区溢出漏洞实验
Step1:输入命令安装一些用于编译32位C程序的东西:
sudo apt-get update
sudo apt-get install lib32z1 libc6-dev-i386
sudo apt-get install lib32readline-gplv2-dev
Step2:输入“/bin/bash”使用bash:
Step3:在/tmp目录下撰写stack.c文件。编译该程序,并设置SET-UID。
Step4:在/tmp目录下编写exploit.c文件。输入gdb命令:
Step5:找到str起始地址,在下一行处设置断点,run,使用i r查看exp的值。编译exploit程序。先运行攻击程序exploit,再运行漏洞程序stack,观察结果:
转载于:https://www.cnblogs.com/zyqzyq/p/7751533.html
20155328 《信息安全系统设计基础》第六周 课堂提交补充相关推荐
- # 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod
20155337 2017-2018-1 <信息安全系统设计基础>第二周课堂实践+myod 因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多 ...
- 20135223何伟钦—信息安全系统设计基础第六周学习总结
第四章:处理器体系结构 ISA指令集体性结构--处理器支持的指令和指令的字节编码 HCL硬件控制语言-描述处理器设计 Y86--定义一个指令集体系结构,包括定义各种状态元素.指令集和他们的编码.一组编 ...
- 2017-2018-1 20155230 《信息安全系统设计基础》第二周课堂实验
因第二周电脑没电没能交上作业,所以写博客补上. 1-vi测试 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助 ...
- 信息安全系统设计基础第六周学习总结—20135227黄晓妍
第四章 ISA 指令集体系统结构:一个处理器支持的指令和指令的字节级编码. 不同的处理器家族有不同的ISA. Y86 本章定义的一个简单的指令集.包括各种状态元素.指令和它们的编码.一组编程规范和异常 ...
- # 2017-2018-1 20155224 《信息安全系统设计基础》第九周学习总结
2017-2018-1 20155224 <信息安全系统设计基础>第九周学习总结 教材学习内容总结 存储器 随机访问存储器(RAM): 静态RAM:用来作为高速缓存存储器,每个位存储在一个 ...
- 2018-2019-1 20165206 《信息安全系统设计基础》第九周学习总结
- 2018-2019-1 20165206 <信息安全系统设计基础>第九周学习总结 - 教材学习内容总结 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组.每个字节都有一 ...
- # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结
20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...
- 2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结
2018-2019-1 20165221 <信息安全系统设计基础>第一周学习总结 教材学习总结 有关vim 打开方式:vim [文件名] 按i会进入insert模式,可以对代码进行编辑 按 ...
- 2017-2018-1 20155227 《信息安全系统设计基础》第一周学习总结
2017-2018-1 20155227 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 快速浏览一遍教材,课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 一 ...
最新文章
- MSM USB插入流程代码分析
- 对Python认识和对我专业的影响
- 太阳的光和灯光有什么区别_防蓝光眼镜的原理是什么,为什么这么多人用?
- Flutter进阶—平台插件
- 免费手机电脑同屏神器——Mirroid
- win10共享打印机搜索不到计算机,大师告诉您Win10搜不到共享打印机的操作方案...
- linux:常用命令
- 计算机视觉论文-2021-09-06
- wamp下localhost目录Your Projects下项目无法打开解决方案
- 远程访问tomcat管理页面
- 【SAP PO】SAP PO 接口配置完整教程之二REST服务对接
- 罗克韦尔AB PLC(RSLogix 5000)在线修改程序的具体方法示例
- Python学习周报
- @5-1 CCF 2019-12-1 报数
- 关于友善之臂出的Nanopi R2S盒子的TTL乱码解决方法
- 前端面试精华帖:100个问题如果你回答出80个,那么请把你的简历给我
- 微型计算机故障处理基本原则,微机故障处理的一般性原则和方法
- 牛客第八场_E-Enigmatic Partition(神仙差分)
- oracle 数值向上取整,oracle数值函数
- FPGA云原生 Mailbox通信
热门文章
- 理解 Linux 的虚拟内存
- 阿里三面让我现场改造Spring框架,明天带他去爬山!
- StackOverflow上面 7个最好的Java答案
- 山东省第三届数据应用赛事来了!
- 让Python代码简洁的实用技巧!
- 一文读懂神经网络(附解读案例)
- 特征工程(四)HashingVectorizer
- 【廖雪峰python入门笔记】tuple_“元素可变”
- B站崩了上热搜,A站跟着躺枪!微信、支付宝:跟我们比起来这是小问题
- 英伟达GPU“屠榜”,谷歌TPU“退赛”,MLPerf最新推理榜单出炉