栈
richard1230
这个作者很懒,什么都没留下…
展开
-
对栈的一些理解
举例分析小结:对开辟栈帧的理解之前总结过一篇有关函数栈帧的博客: 函数栈帧以及调用约定相关的一些总结 但是感觉自己还是有一点知识点没有弄懂,今天中午跟郭哥吃过饭一起探讨有关壳的问题的时候,顺便把这个问题请教了一下郭哥,终于弄明白了,在此要特地感谢他,这里把一些心得体会写出来; 先看一幅图(选自IDA权威指南): 注意图中是基于esp的栈帧!!! 下面是...原创 2018-03-24 14:55:49 · 481 阅读 · 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 · 433 阅读 · 0 评论 -
函数栈帧以及调用约定相关的一些总结
栈分布几种寻址方式:栈分布Ebp-4 局部变量开始Ebp +0 原始ebp寄存器值Ebp+4 返回值Ebp+8形参1Ebp+12 形参2Ebp+16 形参3局部变量1--->Ebp-4 局部变量开始原始ebp寄存器值--->Ebp +0 原始ebp寄存器值返回地址-->Ebp+4 返回值形参1-->Ebp+8形参2-->...原创 2018-06-09 00:50:52 · 251 阅读 · 0 评论 -
ARM平台下的函数调用过程
非叶子函数调用非叶子函数: 看下面一个例子:0x390 bl func1;0x394 ...刚开始调用的时候:1.将0x394(下一条指令的地址)存入LR寄存器;2.push LR3.push R11--------->push{R11,LR}4.add r11,sp,#4 //保存栈低,因为sp是动态变化的;上面pu...原创 2018-07-22 21:39:00 · 781 阅读 · 0 评论