zoukankan      html  css  js  c++  java
  • 20145208 《信息安全系统设计基础》第5周学习总结

    20145208 《信息安全系统设计基础》第5周学习总结

    教材学习内容总结

    • 本章学习内容是汇编语言,现在直接写汇编的机会不多了,但一定要能读懂,信息安全的核心思维方式“逆向”在这有很好很直接的体现,反汇编就是直接的逆向工程。

    • 本章重点是3.7,但没有3.1-3.6的基础也是不行,如果想真正的提高动手能力,3.11如何用GDB调试汇编要好好练习一下,不过大多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

    • 实验练习的结果

    • 我的实验练习的c语言代码如下:

    • 去掉以.开头的语句后的汇编代码:

    • 注释了栈帧情况的汇编代码:

    • 通过gdb调试可执行文件查看eip, ebp, esp 等寄存器内容如何变化。
    • 一开始调试的时候总是出问题,查阅资料后了解,在linux中gdb调试汇编文件需要先用gcc -g3 -o * *.c的命令来将c语言文件编译成可调试汇编的可执行文件。
    • 在64位中rip就是eip,rbp就是ebp,rsp就是esp。
    • 通过调试过程中的stepiprint /x $***可以查询到相应寄存器的内容:

    • 由上图可以看到三个寄存器的初始值

    • 由上图可以看到三个寄存器在执行完第一条指令之后的内容的变换

    • 内容再次改变,如果想观察三个寄存器的每一步的变化可以重复上述步骤。

    • 通过上图不难发现rip寄存器(也就是eip),他身为程序计数器的内容就是下一条指令的地址。

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

    • 将C语言文件编译成汇编文件并查看汇编文件内的内容

    • 将C语言文件编译成可执行文件并查看可执行文件的二进制内容

    • 将可执行文件反编译成汇编代码:

    课后作业中的问题和解决过程

    问题一

    • 教材第113页习题3.1中对操作数260(%ecx,%edx)的求值遇到了问题
    • 按照公式算出来是(264),在这里卡住了,再看了下一个空的时候才反应过来换算成16进制计算是(0x108),得出答案0x13。

    问题二

    • 教材121页的习题3.9,和前面的习题3.5类似,都是汇编代码转成c语言代码,但是有所不同,稍稍复杂一点,涉及到了算数和逻辑操作,一开始做起来不适应。
    • 前后对照并且动手做了两遍之后就会觉得顺手多了,上一条语句的值直接用在下面的语句中,一开始可能看不习惯,但是动手很重要,做了两次就可以将看到的汇编代码代入到C语言的相应位置了,相比较C语言翻译成汇编语言来说,汇编语言反翻译成C语言相对容易一点,可能是因为更习惯C语言的原因。

    问题三

    • 教材148页的习题3.29,因为前面对于switch语句在汇编中的示例没有仔细阅读,在做题的时候找不到对应的跳转表序号
    • 仔细阅读之后了解C语言中case对应的序号对应着跳转表中的序号,需要注意的时候跳转表中的序号从0开始的。

    代码托管

    代码托管链接

    代码及托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/2 20/20 学会了虚拟机安装和Ubuntu的基本操作
    第二周 56/56 1/3 20/40 学会了Ubuntu终端下的C语言编写
    第三周 110/166 1/4 30/70 熟悉了gdb的基本操作,了解了计算机信息表示和处理
    第四周 110/166 1/4 10/80 复习了前几周的知识
    第五周 42/208 1/4 10/80 复习了前几周的知识

    参考资料

  • 相关阅读:
    MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录3
    19c上ADG主库sys密码修改会影响备库同步吗?
    MySQL中sql_mode的设置
    [自制工具]批量后台更新统计信息
    openssl加解密实战
    [自制工具]简便易用的ADDM报告生成工具
    MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录2
    MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记录1
    Windows11如何设置经典的右键菜单
    MVC3过滤器实现多语言
  • 原文地址:https://www.cnblogs.com/20145208cy/p/5965288.html
Copyright © 2011-2022 走看看