zoukankan      html  css  js  c++  java
  • 反汇编测试

    反汇编测试

    1、通过输入gcc -S -o week20191313.s week20191313.c

    将下面c程序”week0303学号.c“编译成汇编代码

    2、使用指令在64位的机器上产生32位汇编,然后使用gdb example指令进入gdb调试器

    gcc -g week20191313.c -o week20191313 -m32

    3、进入之后先在main函数处设置一个断点,再run一下,使用disassemble(disas)指令获取汇编代码

    用i(info) r(registers)指令查看各寄存器的值:

    可见此时主函数的栈基址为0xffffd3e8,用x(examine)指令查看内存地址中的值,但目前%esp所指堆栈内容为0,%ebp所指内容也为0

    首先,结合display命令和寄存器或pc内部变量,做如下设置:display /i $pc,这样在每次执行下一条汇编语句时,都会显示出当前执行的语句。

    开始调试

    endbr32

    push

    mov

    sub

    call

    add

    movl

    pushl

    call

    add

    mov

    add

    leave

    ret

    主函数的汇编代码

    f函数的汇编代码

    g函数的汇编代码

    f中每一条语句引起的变化情况

  • 相关阅读:
    LA 3882
    Codeforces 161D
    spoj PARTIT
    uva 10496 Collecting Beepers
    uva 10130 SuperSale
    spoj 3885
    NWERC 2012 Problem I Idol
    NWERC 2012 Problem E Edge Case
    【USACO 1.3.2】修理牛棚
    【USACO 1.3.1】混合牛奶
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15472457.html
Copyright © 2011-2022 走看看