2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结

本文总结了2017-2018学年《信息安全系统设计基础》课程第5周的学习内容,包括机器级代码的概念、指令集结构、寄存器使用等基础知识,并介绍了如何使用odjdump进行反汇编操作。

2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结

教材学习内容总结

一、机器级代码
指令集结构ISA和机器级程序使用的存储器地址是虚拟地址
用可读性更好的文本格式来表示。
程序计数器(CS:IP)
整数寄存器(AX,BX,CX,DX)
条件码寄存器(OF,SF,ZF,AF,PF,CF)
浮点寄存器
一条机器指令只执行一个非常基本的操作。
输入odjdump -d即可实现反汇编
机器代码和它的反汇编表示的一些特性:
IA32指令长度从1到15个字节不等
设计指令格式的方式是,从某个给定位置开始,可以将字节唯一的解码成机器指令
反汇编器只是基于机器代码文件中的字节序列来确定汇编代码,不需要访问程序的源代码或汇编代码
反汇编器使用的指令命名规则与GCC生成的汇编代码使用的有些差别
ATT和INTEL的汇编代码格式有所差别。
二、代码示例
可以试一下反汇编的功能,
1074394-20171022185753396-1856429611.jpg
od sub.o | more
od sub.o > sub.txt
1074394-20171022190909334-1816771162.jpg
执行mostore,看看.s文件,
1074394-20171022193100552-2030339477.jpg
发现执行完汇编之后有反汇编之后,命令都会被加一个q的后缀

教材学习中的问题和解决过程

(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )

本章内容关于反汇编内容比较容易理解,最后的指数和浮点数运算指令感觉还可以,

代码托管

1074394-20171022201615771-1975329492.jpg

上周考试错题总结

main.c 调用了静态库libmath.a中的函数,编译main.c的命令是()
gcc -static main.c ./libmath.a -o main
gcc -static main.c -L. -lmath -o main
这两个答案都对

gcc hello.c产生的a.out属于()
可执行目标文件

Linux中,目标文件XXX.o中的代码和数据节是从地址0开始的。

很多的错题都是因为没注意看多选还是单选,导致只选了一个答案,

结对及互评

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2002/220/20
第二周300/5002/418/38
第三周500/10003/722/60
第四周300/13002/930/90
第五周300/16002/1120/110

转载于:https://www.cnblogs.com/zhuanyedajiesanshinian/p/7711612.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值