PPswaggy  

实验一:反汇编一个c程序

  • 过程
    - 1.编写简单的c语言程序
    - 2.反汇编指令 gcc –S –o main.s main.c -m32
    - 3.将无用信息删除后的最后结果

  • 分析
    - 模拟堆栈

  • 总结:计算机在工作时,给每个函数执行时先将函数的地址推入底层堆栈,再将足够的连续的一片内存分给函数程序,函数所需的参数在函数被调用之前就存入栈,方便时常的访问。栈中内存从高地址运行至低地址,一行一行直至函数运行完,或者执行call的指令调用了其他的函数,通过ret指令返回到主函数,最后通过leave指令释放栈。在栈执行中会使用寄存器来保存各种数据或者数据中的地址,eax为累加寄存器,ebx为基址寄存器,ecx计数寄存器,edx数据寄存器;也有专门储存指令的寄存器eip,和堆栈的指针寄存器esp,ebp。

posted on 2020-10-17 23:16  PPswaggy  阅读(95)  评论(1编辑  收藏  举报