20145314郑凯杰《信息安全系统设计基础》第5周学习总结 part B

在前四天的学习中,我主要对课本知识进行了总结,在本周后三天的学习过程中,我进行实践并截图。

http://www.cnblogs.com/5314zkj/p/5958665.html

教材学习内容总结

教材第三章

上一次的博客中已经涵盖了很多知识了,今天主要做到补充及实践:

①操作数的三种类型:

立即数,也就是常数值。
在ATT格式的汇编代码中,立即数的书写方式是“”后跟一个用标准C表示法表示的整数。任何一个能放进32 位字中的数值都可以用做立即数,不过汇编器在可能时会使用一个或两个字节的编码。

寄存器,表示某个寄存器的内容

存储器,根据计算出来的地址(有效地址)访问某个存储器的位置。
有效地址的计算方式: Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

  • 栈是一个数据结构,可以添加或者删除数据,总是遵循“先进后出”原则。
  • 栈顶:总是从栈的这端插入和删除元素。
  • 栈顶元素的地址是所有栈中元素地址中最低的。

控制

  • 条件码:描述最近的算数或者逻辑操作的属性,可以检测这些寄存器来执行条件分支指令。
  • CF:进位标志,最近操作使高位产生进位,用来检测无符号操作数的溢出
  • ZF:零标志,最近操作得出的结果为0
  • SF:符号标志,最近操作得到的结果为负数
  • OF:溢出标志,最近操作导致一个补码溢出-正溢出或负溢出。
  • leal不改变任何条件码
  • CMP和SUB指令行为一样,只是CMP只设置条件码而不更新目标寄存器。
  • 访问条件码的方式:根据条件码的某个组合,将一个字节设置成0或1;可以条件跳转到程序某个其他的部分;有条件的传送数据。
  • SET指令根据计算t=a-b的设置条件码
  • jmp指令是无条件跳转,可以是直接跳转,即跳转目标是作为指令的一部分编码;也可以是间接跳转,即跳转目标从寄存器或存储器位置中读出的,写法是‘*’后面跟一个操作数指示符。
  • 条件跳转只能是直接跳转的。
  • 当执行PC相关的寻址时,程序计数器的值是跳转指令后面那条指令的地址,而不是跳转指令本身的地址。

转移控制(稍后也会着重对此进行实践)

****call****

call指令和转移指令相似,同样分直接和间接,直接调用的目标是标号,间接调用的目标是*后面跟一个操作数指示符,和JMP一样。

CALL指令的效果是将返回地址入栈,并跳转到被调用过程的起始处。返回地址是还在程序中紧跟在call后面的那条指令的地址。

ret

ret指从栈中弹出地址,并跳转到这个位置。
在上学期的汇编语言学习中,call和ret常被用来进行子函数、子模块的调用。

实践步骤

P107 用简单C语言程序汇编与反汇编:

图2:

汇编之后:

图3:

用 objdump -d zkj5314.o 反汇编之后:

图4:

接下来用实验楼的实验四:

代码如下:

图5:

接下来进行汇编:

图6:

图7:

汇编完成,进行反汇编:

图8:

两个代码成功:

接下来附上GIT链接和截图:

图9:

http://git.oschina.net/qiaokeli26/Linux/tree/master

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/50 1/2 20/20
第二周 176/600 2/4 38/38
第三周 /1100 /7 /60
第四周 /1350 /9 /90

20145314郑凯杰《信息安全系统设计基础》第5周学习总结 part B的更多相关文章

  1. 20165223《信息安全系统设计基础》第九周学习总结 & 第八周课上测试

    目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 ...

  2. 20145314郑凯杰《信息安全系统设计基础》GDB调试32位汇编堆栈分析

    20145314郑凯杰<信息安全系统设计基础>GDB调试32位汇编堆栈分析 本篇博客将对第五周博客中的GDB调试32位汇编堆栈进行分析 首先放上以前环境配置的图: 图1: 测试代码: #i ...

  3. 20145314郑凯杰《信息安全系统设计基础》第9周学习总结 PART B

    20145314郑凯杰<信息安全系统设计基础>第9周学习总结 PART B 明确教材学习目标 注意每个系统调用的参数.返回值,会查帮助文档 阅读教材,完成课后练习(书中有参考答案),考核: ...

  4. 20145314郑凯杰《信息安全系统设计基础》第八周复习总结 Part A

    20145314郑凯杰<信息安全系统设计基础>第八周复习总结 Part A 学习知识点内容总结 复习线索:http://group.cnblogs.com/topic/73069.html ...

  5. 20145314郑凯杰《信息安全系统设计基础》第7周学习总结 part B

    20145314郑凯杰<信息安全系统设计基础>第7周学习总结 part B 上篇博客反思与深入 首先根据本周第一篇博客,娄老师给我的评论,我开始进行局部性的深入研究: 分为两个步骤,一是知 ...

  6. 20145314郑凯杰《网络对抗技术》PE文件病毒捆绑(插入捆绑)的实现

    20145314郑凯杰<网络对抗技术>PE文件病毒捆绑(插入捆绑)的实现 一.本节摘要 简介:每个应用程序内部都有一定的空间(因为文件对齐余留的00字段)可以被利用,这样就可以保证被插入的 ...

  7. 20145314郑凯杰《网络对抗技术》实验9 web安全基础实践

    20145314郑凯杰<网络对抗技术>实验9 web安全基础实践 一.实验准备 1.0 实验目标和内容 Web前端HTML.能正常安装.启停Apache.理解HTML,理解表单,理解GET ...

  8. 20145314郑凯杰《网络对抗技术》实验5 MSF基础应用

    20145314郑凯杰<网络对抗技术>实验5 MSF基础应用 1.0 MS08_067安全漏洞 1.1 实验目标 了解掌握metasploit平台的一些基本操作,能学会利用已知信息完成简单 ...

  9. 20145314郑凯杰 《Java程序设计》第10周学习总结

    20145314郑凯杰 <Java程序设计>第10周学习总结 代码托管: 学习内容总结 网络编程 会打手机吗? 第一个问题:会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛 ...

随机推荐

  1. Angular2+ 基本知识汇总

    Angular是Google推出的Web前端开发框架,从12年发布起就受到了强烈的关注,他首次提出了双向绑定的概念,让人耳目一新. Angular 2特性 就在2016年9月中旬,时隔4年,Googl ...

  2. Hibernate的大对象映射

    1在持久类中直接声明是java.sql.Blob类型 2在.hbm.xml文件中配置一下信息 <!-- 映射大对象 (就是字符长度超过255和图片想转换成二进制的数据)--> <!- ...

  3. 启动原生Hadoop集群或伪分布环境

    一:启动Hadoop 集群或伪分布安装成功之后,通过执行./sbin/start-all.sh启动Hadoop环境 通过jps命令查看当前启动进程是否正确~ [root@neusoft-master ...

  4. 第九课——MySQL优化之索引和执行计划

    一.创建索引需要关注什么? 1.关注基数列唯一键的数量: 比如性别,该列只有男女之分,所以性别列基数是2: 2.关注选择性列唯一键与行数的比值,这个比值范围在0~1之前,值越小越好: 其实,选择性列唯 ...

  5. elasticsearch的store属性 vs _source字段

    众所周知_source字段存储的是索引的原始内容,那store属性的设置是为何呢?es为什么要把store的默认取值设置为no?设置为yes是否是重复的存储呢? 我们将一个field的值写入es中,要 ...

  6. JAVA—List集合总结

    List接口总结: List接口是Collection接口的子接口,从其名称可以看出,是一个元素有序(并不是按大小排序,具有顺序索引,类似于数组),默认按照元素的添加顺序设置元素的索引,List和Se ...

  7. BBS项目部署之数据库的处理

    一  数据库的处理: 1.1上传bbs.sql(数据库中的数据) 1.2在mysql中创建bbs库,并导入数据库SQL脚本 在mysqld的文件夹中: mysql> create databas ...

  8. Keras + Ubuntu环境搭建

    安装Theano (环境参数:Ubuntu 16.04.2  Python 2.7) 安装 numpy 和 scipy 1.sudo apt-get install python-numpy pyth ...

  9. Jmeter+jenkins如何快速搭建接口和性能测试持续集成解决方案-[基于windows篇]

    最近在用Jmeter本来想写一个详细的使用教程,突然看到有前辈已经写好了不错的教程,特此"借花献佛"整理出来分享给大家! Jenkins + Jmeter 构建接口.性能测试持续集 ...

  10. css 自定义滚动条

    我遇到的场景: 对于iframe窗口,自带滚动条是整个窗口的大小.有时需要顶部或底部固定,则滚动条不应该触碰到顶部或底部. 那么首先打开iframe时应该去掉滚动条 scrolling="n ...