• 反汇编测试


    反汇编测试

    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中每一条语句引起的变化情况

  • 相关阅读:
    Path文件操作实例
    Cache缓存对象缓存对象
    Session对象实例
    移动端适配问题
    webpack4 优化性能
    webpack源码分析
    wepack源码解析1
    webpack面试题
    asnyc await
    node 知识
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15472457.html
Copyright © 2020-2023  润新知