zoukankan      html  css  js  c++  java
  • Linux内核分析.:反编译简单c程序

    作者:xujianguo 原创作品转载请注明出处
    《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000


    c程序部分代码如下:

    int g(int x)

    {

      return x + 5;

    }

    int f(int x)

    {

      return g(x);

    }

    int main(void)

    {

      return f(9) + 1;

    }

    实验分析如下:

     

     实验楼没法用,晚点分析,抱歉@!

     

    .file

       "main.c"
    .text
    .globl g
    .type g, @function
    g:
    .LFB0:
    .cfi_startproc
    pushl %ebp
    .cfi_def_cfa_offset 8
    .cfi_offset 5, -8
    movl %esp, %ebp
    .cfi_def_cfa_register 5
    movl 8(%ebp), %eax
    addl $5, %eax
    popl %ebp
    .cfi_restore 5
    .cfi_def_cfa 4, 4
    ret
    .cfi_endproc
    .LFE0:
    .size g, .-g
    .globl f
    .type f, @function
    f:
    .LFB1:
    .cfi_startproc
    pushl %ebp
    .cfi_def_cfa_offset 8
    .cfi_offset 5, -8
    movl %esp, %ebp
    .cfi_def_cfa_register 5
    subl $4, %esp
    movl 8(%ebp), %eax
    movl %eax, (%esp)
    call g
    leave
    .cfi_restore 5
    .cfi_def_cfa 4, 4
    ret
    .cfi_endproc
    .LFE1:
    .size f, .-f
    .globl main
    .type main, @function
    main:
    .LFB2:
    .cfi_startproc
    pushl %ebp
    .cfi_def_cfa_offset 8
    .cfi_offset 5, -8
    movl %esp, %ebp
    .cfi_def_cfa_register 5
    subl $4, %esp
    movl $9, (%esp)
    call f
    addl $1, %eax
    leave
    .cfi_restore 5
    .cfi_def_cfa 4, 4
    ret
    .cfi_endproc
    .LFE2:
    .size main, .-main
    .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2"
    .section .note.GNU-stack,"",@progbits

     

     

    课程总结:

        计算机是由软件和硬件组成, 计算机硬件是由CPU、输入输出设备、存储设备等组成,软件分为系统软件和应用软件。系统软件是计算机系统的骨架,而应用软件是它的枝叶。计算机通过执行指令完成基本工作.计算机能够识别机器语言和汇编语言,机器语言类似1和0组合起来的数据流,而汇编语言更加接近底层。

  • 相关阅读:
    POJ3421(质因数分解)
    POJ2236(并查集入门)
    POJ3111(最大化平均值)
    POJ2976(最大化平均值)
    POJ3104(二分搜索)
    POJ3258(最大化最小值)
    POJ2456(最大化最小值)
    POJ1063Cable master(二分搜索)
    Numpy模块(一)
    Django简介
  • 原文地址:https://www.cnblogs.com/emochuanshuo/p/4322557.html
Copyright © 2011-2022 走看看