系统栈的工作原理-0day漏洞利用原理(3)

news/2024/11/15 5:47:05/

讲清楚代码如何在系统栈工作的基本认知,一字一句的弄清楚 ,本篇内容:内存不同用途,栈与系统栈,寄存器与函数栈帧(上半部分)   要懂点C和汇编语言会好点,  恶补下《IBM X86 汇编》或者《Win32 汇编》,容易区分明白。

系统栈的工作原理

内存的不同用途

       缓冲区溢出就是在大缓冲区中的数据向小缓冲区复制的过程中,由于没有注意小缓冲区的边界,“撑爆”了较小的缓冲区,从而冲掉了和小缓冲区相邻内存区域的其他数据而引起的内存问题。缓冲溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。
成功地利用缓冲区溢出漏洞可以修改内存中变量的值,甚至可以劫持进程,执行恶意代码,最终获得主机的控制权。要透彻地理解这种攻击方式,我们需要回顾一些计算机体系架构方面的基础知识,搞清楚 CPU、寄存器、内存是怎样协同工作而让程序流畅执行的。根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行。但是不管什么样的操作系统、什么样的计算机架构,进程使用的内存都可以按照功能大致分成以下 4 个部分。

(1) 代码区: 这个区域存储着被装入执行的二进制机器代码,处理器会到这个区域取指并执行。
(2) 数据区: 用于存储全局变量等。
(3) 堆区:进程可以在堆区动态地请求一定大小的内存,并在用完之后归还给堆区。动态分配和回收是堆区的特点。
(4)栈区: 用于动态地存储函数之间的调用关系,以保证被调用函数在返回时恢复到母函数中继续执行。

 在 Windows 平台下,高级语言写出的程序经过编译链接,最终会变成PE文件(


http://www.ppmy.cn/news/107016.html

相关文章

C语言---数组

1、一维数组的创建和初始化 1.1、数组的创建 数组是一组相类型元素的集合。 数组的创建方式: type_t arr_name [const_n];//type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小。1.2、数组的初始化 数组的初始化是指&#x…

分片架构,Redis Cluster 分析

分片架构解决的问题 通过堆机器,提升读写性能,与存储性能 分片架构设计要点 分片规则 选择Cardinality大的作为分片键,尽可能保证数据分布均匀 常见分片键: 基于主键(业务型数据),基于时间…

Android平台OpenCV入门

一、导入OpenCV 别忘记把libopencv_java3.so添加进来。 二、初始化 OpenCVLoader.initDebug();三、常用方法 1. CvType 数据类型 以CV_64FC2为例,64指64位,F指浮点数,C指通道,2为2通道。 数值具体类型取值范围CV_8U8 位无符…

DERT(DEtection TRansformer) ONNX直接推理!!

目录 1.前言 2. ONNX模型 (1) backbone使用的是resnet50 (2) Transformer结构 (3)模型输出 3.代码展示(不收费!!!) 4.结果展示 5.源代码地址 1.前言 DETR DETR的全称是DEtection TRansformer,是Facebook提出的基于…

Redis(二)

Redis进阶 1. Redis为什么这么快?2. 缓存穿透2.1 概念2.2 解决方案 3. 缓存击穿3.1 概念3.2 解决方案 4. 缓存雪崩4.1 概念4.2 解决方案 5. redis集群5.1 主从同步5.2 哨兵模式(集群模式)1. 哨兵主要有两个重要作用2. 哨兵模式应用3. sentine…

apache网页与安全优化

apache网页与安全优化 一、网页压缩1、检查是否安装 mod_deflate 模块2、如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块3、配置 mod_deflate 模块启用4、检查安装情况,启动服务5、测试 mod_deflate 压缩是否生效 二、网页缓存…

大型复杂地质模型如何实现可视化?知名公司MineRP给你答案!

行业:采矿业 挑战:采矿业客户在寻找未开发的矿体和有效挖掘方面面临着越来越多的挑战;不同的采矿系统之间缺乏整合,呈现出零散的矿山运营视图;地质模型、采矿计划、时间表和点云以及其他需要可视化的矿山技术数据集可…

SM国密算法(二)-- OpenSSL库中分离算法

一、OpenSSL简介: OpenSSL 是用于传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的一个强大、商业级和功能齐全的工具包。它也是一个通用的密码学库,包含有RSA、SM4、DES、AES等诸多加密算法。 OpenSSL GitHub地址 二、移植过程 1. 文件目录 下载在…