zoukankan      html  css  js  c++  java
  • 反汇编测试(20191213兰毅达)

    反汇编测试

    任务详情

    1 通过输入gcc -S -o main.s main.c 将下面c程序”week0303学号.c“编译成汇编代码
    int g(int x){
    return x+3;
    }
    int f(int x){
    int i = 13;
    return g(x)+i;
    }
    int main(void){
    return f(8)+1;
    }

    1. 参考http://www.cnblogs.com/lxm20145215----/p/5982554.html,使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况。提交照片,要有学号信息。
      Step1:进入gdb模式,在main函数处设置行断点,run后输入disassemble,得到汇编代码:

      Step2:
      输入i r(info registers),然后用x/4a SP的值看栈的值:
      Step3:
      输入命令display/i $pc,符号=>后跟着的是系统正在执行的命令,输入si,用i r查看这条命令执行结束后寄存器的值的变化,然后用x/4a SP的值看栈的值:








      之后一直重复si i r x/4a esp的值 直到结束
      中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况如下:
  • 相关阅读:
    ros论坛
    python--dict和set类型--4
    python--条件判断和循环--3
    python--list和tuple类型--2
    Unicode与UTF-8互转(C语言实现)
    spring mvc 返回JSON数据
    值得学习的C语言开源项目和库
    mudos源码分析
    Freemarker使用总结
    Maven详解
  • 原文地址:https://www.cnblogs.com/1301cn/p/15490032.html
Copyright © 2011-2022 走看看