20145331 《信息安全系统设计基础》第5周学习实践部分总结及代码分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20145331 《信息安全系统设计基础》第5周学习实践部分总结及代码分析相关的知识,希望对你有一定的参考价值。

第三章实践内容及代码分析:

一、过程截图:

技术分享

反汇编:objdump -d wsc.o

一、建立wsc1.c的c文件,并转成汇编代码:

wsc.c:

技术分享

wsc.o:(查看用od xxx)

技术分享

 

二、输入命令,得到二进制格式代码,并输入od wsc.o进行查看:

技术分享

三、反汇编:objdump -d wsc.o,得到反汇编代码:

技术分享

技术分享

四、反汇编代码分析:

1、反汇编代码和一般汇编代码相比操作指令后面没有后缀。

2、代码分析:代码逻辑是g函数调用f函数,main函数调用g函数,以第一个为例,通过代码对栈帧进行分析:

g函数:
g调用f,先保存%ebp,将%ebp设为栈帧开始的位置,将栈指针减8,等于在栈上多分了8个字节(然而只用了四个字节,还有四个字节没用)。
将相对%ebp,偏移量为-4位置里的值(y)传给%eax,再从%eax传到%edi,然后调用f,此时返回地址也压入栈中。
f函数:
压一个%ebp,设置%ebp位置,将%edi的值(y)传到相对于%ebp偏移量为-4的位置上,再传到%eax上,将y+7的值覆盖到%eax上作为返回值传递,弹出%ebp,控制转移回g。





以上是关于20145331 《信息安全系统设计基础》第5周学习实践部分总结及代码分析的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

20145331 《信息安全系统设计基础》实验四 外设驱动设计