2017-2018-1 20155307 《信息安全系统设计基础》第5周学习总结
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的汇编代码格式有所差别。
二、代码示例
可以试一下反汇编的功能,
od sub.o | more
od sub.o > sub.txt
执行mostore,看看.s文件,
发现执行完汇编之后有反汇编之后,命令都会被加一个q的后缀
教材学习中的问题和解决过程
(一个模板:我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。 )
本章内容关于反汇编内容比较容易理解,最后的指数和浮点数运算指令感觉还可以,
代码托管
上周考试错题总结
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/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 | |
第五周 | 300/1600 | 2/11 | 20/110 |