
栈
richard1230
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
对栈的一些理解
举例分析 小结: 对开辟栈帧的理解 之前总结过一篇有关函数栈帧的博客: 函数栈帧以及调用约定相关的一些总结 但是感觉自己还是有一点知识点没有弄懂,今天中午跟郭哥吃过饭一起探讨有关壳的问题的时候,顺便把这个问题请教了一下郭哥,终于弄明白了,在此要特地感谢他,这里把一些心得体会写出来; 先看一幅图(选自IDA权威指南): 注意图中是基于esp的栈帧!!! 下面是...原创 2018-03-24 14:55:49 · 517 阅读 · 0 评论 -
关于栈结构的一些总结
先看一个demo: 主函数: 进入f函数 f1函数 总结 能使得esp发生变化的指令: 前几天在分析一款软件的时候,发现在分析栈的时候晕圈了,索性今天就总结一波吧: 先看一个demo: void f1(int a, int b, int c) { int d = a + b + c; } int f(int a,int b) { int c...原创 2018-04-23 23:58:19 · 471 阅读 · 0 评论 -
函数栈帧以及调用约定相关的一些总结
栈分布 几种寻址方式: 栈分布 Ebp-4 局部变量开始 Ebp +0 原始ebp寄存器值 Ebp+4 返回值 Ebp+8形参1 Ebp+12 形参2 Ebp+16 形参3 局部变量1--->Ebp-4 局部变量开始 原始ebp寄存器值--->Ebp +0 原始ebp寄存器值 返回地址-->Ebp+4 返回值 形参1-->Ebp+8 形参2-->...原创 2018-06-09 00:50:52 · 268 阅读 · 0 评论 -
ARM平台下的函数调用过程
非叶子函数调用非叶子函数: 看下面一个例子: 0x390 bl func1; 0x394 ... 刚开始调用的时候: 1.将0x394(下一条指令的地址)存入LR寄存器; 2.push LR 3.push R11--------->push{R11,LR} 4.add r11,sp,#4 //保存栈低,因为sp是动态变化的;上面pu...原创 2018-07-22 21:39:00 · 865 阅读 · 0 评论