GDB调试例子的汇编堆栈

  • 代码
  • 直接-m32编译出现问题
  • 编译64位Linux版本32位的二进制文件,需要安装一个库,使用指令sudo apt-get install libc6-dev-i386
  • 编译成功,进入gdb调试界面
  • 在main处设置断点、运行并获取汇编代码查看各寄存器状态

  • 主函数栈基址为0xffffd104,值为0

  • call指令将下一条指令地址入栈,%esp、%ebp值发生变化

  • 上一个函数的基址入栈,从当前%esp开始作为新基址,原地址压栈保存

  • 为传参做准备

  • 实参计算在%eax中进行

  • f函数汇编代码

  • 实参入栈

  • call指令将下一条指令的地址入栈




  • 计算short+int

  • pop %ebp指令将栈顶弹到%ebp中,同时%esp增加4字节



  • ret指令将栈顶弹给%eip


堆栈情况

指令

%esp

%ebp

堆栈

movl$0x8,(%esp)

0ffffd104

0ffffd108

0x0

call 0x8048401

0ffffd100

0ffffd108

0x8 0x0

push %ebp

0ffffd100

0ffffd108

0x804842e 0x8 0x0

mov %esp,%ebp

0ffffd0fc

0ffffd108

0xffffd108 0x804842e 0x8 0x0

mov 0x804a01c,%edx///

0ffffcf6c

0ffffcf6c

0xffffcf78 0x804842e 0x8 0x0

call 0x80483ed

0ffffd0f8

0ffffd0fc

0xa 0xffffd108 0x804842e 0x8 0x0

push %ebp

0ffffd0f4

0ffffd0fc

0x804841a 0xa 0xffffd108 0x804842e 0x8 0x0

mov %esp,%ebp

0ffffd0f0

0ffffd0fc

0xffffd0fc 0x804841a 0xa 0xffffcd108 0x804842e 0x8 0x0

movzwl 0x804841a,%eax

0ffffd0f0

0ffffd0f0

0xffffd0fc 0x804841a 0xa 0xffffcd108 0x804842e 0x8 0x0

ret

0ffffd0f4

0xffffd0fc

0x804841a 0xa 0xffffcd108 0x804842e 0x8 0x0

leave

0ffffd0f8

0ffffd0fc

0xa 0xffffcd108 0x804842e 0x8 0x0

ret

0ffffd100

0ffffd108

0x804842e 0x8 0x0

leave

0ffffd104

0ffffd108

0x8 0x0

ret

0xffffd10c

0x0

 

20145316GDB调试汇编堆栈的更多相关文章

  1. GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 分析过程 这是我的C源文件:click here 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb ...

  2. 20145212——GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 测试代码 #include <stdio.h> short val = 1; int vv = 2; int g(int xxx) { return xxx + ...

  3. gdb调试汇编堆栈过程的学习

    gdb调试汇编堆栈过程的学习 以下为C源文件 使用gcc - g code.c -o code -m32指令在64位的机器上产生32位汇编,然后使用gdb example指令进入gdb调试器: 进入之 ...

  4. 20145223《信息安全系统设计基础》 GDB调试汇编堆栈过程分析

    20145223<信息安全系统设计基础> GDB调试汇编堆栈过程分析 分析的c语言源码 生成汇编代码--命令:gcc -g example.c -o example -m32 进入gdb调 ...

  5. GDB调试汇编堆栈

    GDB调试汇编堆栈 分析过程 C语言源代码 int g(int x) { return x+6; } int f(int x) { return g(x+1); } int main(void) { ...

  6. 赵文豪 GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb example指令进入gdb调试器: 使用gdb调 ...

  7. 20145337 GDB调试汇编堆栈过程分析

    20145337 GDB调试汇编堆栈过程分析 测试代码 #include<stdio.h> short addend1 = 1; static int addend2 = 2; const ...

  8. 20145208 GDB调试汇编堆栈过程分析

    20145208 GDB调试汇编堆栈过程分析 测试代码 #include<stdio.h> short addend1 = 1; static int addend2 = 2; const ...

  9. 20145320GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 在这里首先感谢卢肖明的分析博客,为后面的同学减少了很多分析的负担. 分析过程 使用gcc - g example.c -o example -m32指令在64位的机器上产生 ...

随机推荐

  1. 日常工作生活中的做人做事道理[持续更新ing]

    1.凡是预则立,不预则废 2.不能用特殊案例说明事情本身的发展规律 3.任务不能拖,需主动出击,想方设法完成 4.工作要有细致化的沟通和安排 5.解决问题和安排任务可以逆向思维的去想 6.问题要举一反 ...

  2. Swift语言实战晋级

    Swift语言实战晋级基本信息作者: 老镇 丛书名: 爱上Swift出版社:人民邮电出版社ISBN:9787115378804上架时间:2014-12-26出版日期:2015 年1月开本:16开页码: ...

  3. Android开发学习总结(一)——搭建最新版本的Android开发环境

    Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...

  4. 在 ServiceModel 客户端配置部分中,找不到引用协定“WebServiceTest.WebServiceSoap”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素

    原文  http://blog.csdn.net/bugdemo/article/details/9083497 主题 技术 在引用WebService后,程序运行到实例化WebService时报错, ...

  5. iOS网络编程--NSConnection的同步连接与异步连接

    // // ZFViewController.m // 0628-表单验证 // // Created by zfan on 14-6-28. // Copyright (c) 2014年 zfan. ...

  6. linux chromuim安装常用插件(flash,手势,拖拽,广告屏蔽)

    1.本机kali2.0  64位,kali基于Debian.文章所用的所有插件请到http://files.cnblogs.com/files/yuuyuu/chromium_plugins.tar. ...

  7. 【Android UI设计与开发】3.引导界面(三)实现应用程序只启动一次引导界面

    大部分的引导界面基本上都是千篇一律的,只要熟练掌握了一个,基本上也就没什么好说的了,要想实现应用程序只启动一次引导界面这样的效果,只要使用SharedPreferences类,就会让程序变的非常简单, ...

  8. Eclipse 中的重构功能

    Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有了重构,您可以只关注于 ...

  9. 在mac os下的Apache服务器的cgi中运行python

    我是搬运工.. Running Python Programs on the Mac OS X Apache Web Server The Mac OS X operating system incl ...

  10. Codeforces Round #275 Div.1 B Interesting Array --线段树

    题意: 构造一个序列,满足m个形如:[l,r,c] 的条件. [l,r,c]表示[l,r]中的元素按位与(&)的和为c. 解法: 线段树维护,sum[rt]表示要满足到现在为止的条件时该子树的 ...