站在C语言的肩膀上学汇编(1):栈

https://m.toutiao.com/is/eLmPEod/

  1. C语言函数的局部变量保存在栈上;
  2. C语言函数的调用信息保存在调用栈上;

站在C语言的肩膀上学汇编(2):'运行时栈'上的调用信息

  1. C语言利用栈溢出攻击;

站在C语言的肩膀上学汇编(3):栈溢出攻击

C语言中很多概念都与'运行时栈'相关,但它对C层是透明的,要想真正了解这些概念, 就需要去汇编层了解'运行时栈'的实现。

1. C语言函数的局部变量保存在栈上

栈示意图

  1. 这是汇编中的栈示意图,rsp是汇编里的寄存器,像C语言里的指针变量一样存储的是内存地址,rsp里存的一直是栈顶的内存地址。
  2. 栈的操作有:
  • 压栈伪代码:push 0x02
  • 压栈示意图

  • 出栈伪代码:pop param, 同理会导致rsp往上移动, 并把栈顶的元素赋值给param;
  • 增加栈大小:sub $0x10,$rsp, 类似于C语言中'*rsp=*rsp-0x10'向下移动16个字节(0x10为16进制)
  • 注:栈顶是向内存地址小的方向移动。

    验证'函数局部变量保存在栈上。'

    源码示意图

    main函数对应的汇编代码

    验证局部变量保存在栈上

    从图中可知

    1. 给main函数在栈上分配了16个字节;

    sub $0x10,%rsp C语言伪代码为*rsp=*rsp-0x10(10进制的16),栈顶向前移动了16字节,也就是给main函数在栈上分配了。

    2. 由movl $0x1,-0x4(%rbp) 以及movl $0x2,-0x8(%rbp) 可知,对应的c语言代码为a = 1; b = 2;1保存在$rbp-0x4处; 2保存在$rbp-0x8处。

    1. 用p &a打印出a的地址,p $rbp-0x4打印出栈上的地址, 比对这两个地址均为0x7fffffffde3c, 说明c语言里局部变量的地址是在栈上的。

    创作不易,若帮助到了您,求点赞、转发。 谢谢!

    (0)

    相关推荐

    • 站在C语言的肩膀上学汇编(2):栈

      懒人利器2021-01-18 21:01:12 C语言函数的局部变量保存在栈上; C语言函数的调用信息保存在调用栈上; C语言可以利用栈溢出攻击: C语言中很多概念都跟运行时栈相关,但它对C层是透明的 ...

    • 32位以及64位栈迁移的具体分析与学习

      前言 这次来学习下栈迁移技术吧,全片构成为先了解原理,然后再分别以 32位程序及64位程序以图文的形式来具体学习! 原理 栈迁移正如它所描述的,该技巧就是劫持栈指针指向攻击者所能控制的内存处,然后再在 ...

    • 栈溢出技巧(下)

      基于报错类的栈保护 canary这个值被称作金丝雀("canary")值,指的是矿工曾利用金丝雀来确认是否有气体泄漏,如果金丝雀因为气体泄漏而中毒死亡,可以给矿工预警.在brop中 ...

    • 一次受益颇多的CTF(RE/PWN)

      前言 这个是Hgame_CTF第三周的题目,难度一周比一周大,而且还涉及了多方面的知识,一整期做下来对或许会有一个比较大的提升.其中有一道逆向,是通过监控本地端口来获取输入的,第一次接触这种输入模式, ...

    • 站在C语言的肩膀上学汇编1栈

      C语言函数的局部变量保存在栈上; C语言函数的调用信息保存在调用栈上 https://m.toutiao.com/is/J7R7f85/ 站在C语言的肩膀上学汇编(2):'运行时栈'上的调用信息 C语 ...

    • 文学类文本阅读之语言特色类题型汇编

      文学类文本阅读之语言特色类题型汇编

    • 最稳妥的赚钱模式是什么?就是站在优秀同行的肩膀上

      我能想到的最稳妥的赚钱模式就是站在巨人的肩膀上.              看的一清二楚.              我们啊,永远不要去做先行者,你要是想做开拓者就预示着要承担一定的试错风险,消耗掉你 ...

    • 站在600万辆肩膀上 一汽丰田开始加速奔跑

      9月15日,在北京司马台长城脚下的古北水镇,一汽丰田举办了以"感恩有你为伴"的品牌日活动,庆祝品牌600万销量的达成. 成立14年以来,一汽丰田第一个100万辆的达成用了五年时间, ...

    • 历年高考语言表达连贯题汇编(含解析)

      一.[2019年高考江苏卷]在下面一段文字横线处填入语句,衔接最恰当的一项是(3分) 在南方,芭蕉栽植容易,几乎四季常青.  ▲  至于月映蕉影.雪压残叶,那更是诗人画家所向往的了. ①它覆盖面积大, ...

    • 福州地铁方言报站中的语言社会学及珍贵字音的传承

      福州地铁方言报站中的 语言社会学.心理学及珍贵字音的传承 语 音:榕 城.小 丹 一.有关"末班车"福州方言有按文读说"末班车",也有口语化通俗说"尾 ...

    • 高考语文语言表达连贯题汇编含解析

      一.[2019年高考江苏卷]在下面一段文字横线处填入语句,衔接最恰当的一项是(3分) 在南方,芭蕉栽植容易,几乎四季常青.  ▲  至于月映蕉影.雪压残叶,那更是诗人画家所向往的了. ①它覆盖面积大, ...

    • 站在前人的肩膀上看世界,少走弯路

      站在前人的肩膀上看世界,少走弯路 长图