
嵌入式开发
胶泥~life~
一个被生活鞭打锤击的还不服输的人儿。。。
展开
-
栈越界攻击分析
1,栈帧简介:之前几期学习分享了关于栈帧系列知识的学习,我们知道函数调用过程中,每一个调用函数都是以栈帧为单位,在其内存空间上做相关操作,每一个调用函数的栈帧存有其返回地址,调用函数结束后,根据返回地址回到上层栈帧空间,直至main()函数的调用。如下是栈帧的空间分布:2,栈越界攻击介绍及原理栈越界实质上来说,其实也即是上图缓存区域存放的数据超过其大小。缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不原创 2020-06-13 10:23:15 · 1172 阅读 · 0 评论 -
全局对象,静态对象,字串和字面常量访问指令分析(X86)
上节,我们学习了函数中栈变量生成和访问的汇编指令分析,对函数体内的局部变量和局部对象的生成与访问有了一定的了解,本节我们学习全局对象,静态对象及字串、字面常量的汇编访问指令分析机制。一,全局对象,静态对象的访问指令分析:示例代码如下#include <stdio.h>#include <stdlib.h>class a{public: a() { m_a = 3;...原创 2020-06-13 10:15:32 · 388 阅读 · 0 评论 -
嵌入式c++开发 --函数参数传递机制
函数参数传递机制本节主要学习函数传参的汇编指令过程,涉及各种不同的参数类型,通过反汇编函数调用过程,观察函数参数与寄存器的交互流程,本节涉及到的参数类型如以下几种:char、int、double、long long int、class、struct、指针、引用,string,相关示例代码如下:#include<stdio.h>#include<string>#include<stdlib.h>class A{public:A(){原创 2020-06-07 20:39:29 · 990 阅读 · 0 评论 -
ARM平台下函数调用指令与返回机制分析
ARM平台下函数调用指令与返回机制分析测试程序:#include<stdio.h>int fun2(int a,int b){ return a+b;}class Test{public: Test(); ~Test(); void fun1();private: int m_test;};Test::Test(){ m_test = 5;}Test::~Test(){}void Test::fun1(){ int num = m_tes原创 2020-06-07 20:36:18 · 1677 阅读 · 0 评论