20155322 2017-2018-1《信息安全系统设计》第五周学习总结
20155322 2017-2018-1《信息安全系统设计》第五周学习总结
教材学习内容总结
教材学习中的问题和解决过程
-
问题:如何理解逆向?
-
解决:通过在百度搜索,我在百度百科中找到了答案:逆向工程(又称逆向技术),是一种产品设计技术再现过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能特性及技术规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。其主要目的是在不能轻易获得必要的生产信息的情况下,直接从成品分析,推导出产品的设计原理。软件逆向工程有多种实现方法,主要有三:
- 1.分析通过信息交换所得的观察。
最常用于协议逆向工程,涉及使用总线分析器和数据包嗅探器。在接入计算机总线或网络的连接,并成功截取通信数据后,可以对总线或网络行为进行分析,以制造出拥有相同行为的通信实现。此法特别适用于设备驱动程序的逆向工程。有时,由硬件制造商特意所做的工具,如JTAG端口或各种调试工具,也有助于嵌入式系统的逆向工程。对于微软的Windows系统,受欢迎的底层调试器有SoftICE。 - 2.反汇编,即使用反汇编器,把程序的原始机器码,翻译成较便于阅读理解的汇编代码。这适用于任何的计算机程序,对不熟悉机器码的人特别有用。流行的相关工具有OllyDebug和IDA。
- 3.反编译,即使用反编译器,尝试从程序的机器码或字节码,重现高级语言形式的源代码。
- 1.分析通过信息交换所得的观察。
-
问题:指令集体系结构(Instruction-Set Architecture, ISA)
-
解决:通过阅读CSDN上的博客我找到相关知识辅助我理解:
一个处理器支持的指令和指令的字节级编码就是这个处理器的ISA,包括很多个部分:- 指令集
- 指令集编码
- 基本数据类型
- 一组编程规范
- 寄存器
- 寻址模式
- 存储体系
- 异常事件处理
- 中断
- 外部I/O
-
作用:ISA在编译器编写者(CPU软件)和处理器设计人员(CPU硬件)之间提供了一个抽象层:
- 处理器设计者:依据ISA来设计处理器
- 处理器使用者(如:写编译器的牛*程序员):依据ISA就知道CPU选用的指令集,就知道自己可以使用哪些指令以及遵循哪些规范
- 定义处理器上的软件如何构建,这是ISA的最重要内涵,现代处理器都是支持高级语言编程、操作系统等等特性,ISA要定义出指令集内的指令是如何支撑起C语言里堆栈、过程调用,操作系统里异常、中断,多媒体平台里数字图像处理、3D加速等等。
代码调试中的问题和解决过程
代码托管
(statistics.sh脚本的运行结果截图)
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第三周 | 200/200 | 2/3 | 10/20 | |
第四周 | 100/300 | 1/4 | 10/30 | |
第五周 | 200/500 | 2/5 | 10/40 |
-
计划学习时间:10小时
-
实际学习时间:10小时
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)