2018-2019 20165301《信息安全系统设计基础》第三周学习总结
2018-2019 20165301《信息安全系统设计基础》第三周学习总结
-
学习目标
- 理解逆向的概念
- 掌握X86汇编基础,能够阅读(反)汇编代码
- 了解ISA(指令集体系结构)
- 理解函数调用栈帧的概念,并能用GDB进行调试
-
学习任务
- 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下
教材3.1-3.7节中练习,重点:3.1,3.3,3.5,3.6,3.9,3.14,3.15,3.16,3.22,3.23,3.27,3.29,3.30,3.33,3.34 - 喜欢听课的可以参考蓝墨云班课视频,完成蓝墨云班课中的测试。
- 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下
-
教材学习内容总结
- 汇编语言:汇编语言是直接面向处理器的程序设计语言,由一条条指令构成
- 虚拟地址:存储器系统是将多个硬件存储器和操作系统软件组合起来的。
- 如何生成汇编文件
- 使用gcc编译器
gcc -Og -S mstore.c
- 如何反汇编
- 使用OBJDUMP
objdump -d mstore.o
- 通用目的寄存器:x86-64的中央处理单元(cpu)包含一组16个存储64位值的通用目的寄存器
- 操作数指示符
- 立即数
- 寄存器
- 内存引用
- 数据传送指令
movb
传送字节movw
传送字movl
传送双字movs
符号位扩展movz
零扩展
- 压入和弹出栈数据
pushq
压入栈popq
弹出栈
- 一元操作和二元操作
INC
加1DEC
减1NEG
取负NOT
取补ADD
加SUB
减IMUL
乘XOR
异或OR
或AND
与
- 移位操作
SHR
逻辑右移SAR
算术右移
int *pa
具体含义是pa为一个指针变量,它指向一个整型变量
-
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 60/60 | 0/0 | 3/3 | |
第二周 | 100/160 | 0/0 | 3/6 | |
第三周 | 100/260 | 2/2 | 3/9 |