自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 内存分配器 ptmalloc2梳理

最近看了一些内存分配器的资料,找了一大堆,感觉读起来都不是很顺畅,今天终于找到了比较好的资料,特来分享。下文是从一篇论文中截取的部分关于ptmalloc2的描述:2 Glibc Heap 管理机制 Glibc 的堆分配器是基于 Doug Lea 早期的dlmalloc 分配器发展而来的 ptmalloc2 分配器, 具有速度快、碎片度低、线程安全的特点。本章以当前流行的 glibc 2.19 版本为例, 说明其堆的分配机制。 2.1 相关结构 ...

2021-12-02 15:43:03 666 2

翻译 ptmalloc 内存分配器(2)

第 2 部分:了解 GLIBC 堆实现欢迎回到这个关于理解和利用glibc堆的系列!在本系列的第一部分中,我解释了malloc和free的基本行为。我们看到,在幕后,malloc通过分配内存块来处理内存分配请求。每个块不仅存储程序员将与之交互的 malloc 返回的“用户数据”区域,还存储与该块关联的元数据。我们看到了堆管理器的基本块分配策略是如何工作的,并且我们看到了当没有已经释放的块可以回收来为请求提供服务时,如何从堆的顶部创建新的块。在这篇文章中,...

2021-11-22 20:05:42 214

翻译 ptmalloc 内存分配器

Arm堆利用第 1 部分:了解 GLIBC 堆实现在前面的文章中,我已经讨论过的内存破坏漏洞,一个老的(但重要)类叫做“堆栈缓冲区溢出”,以及我们如何,因为攻击者可以利用这些漏洞采取远程程序的控制,并使其运行我们的shellcode。对于使用称为“堆栈金丝雀”的漏洞利用缓解措施的应用程序,事实证明,这些堆栈缓冲区溢出漏洞可能更难被攻击者利用,并且通常需要额外的漏洞才能可靠地利用它们。当开发人员使用各种基于堆栈的漏洞利用缓解措施时,攻击者通常...

2021-11-22 16:18:08 265

转载 brk和sbrk

brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: 每个进程可访问的虚拟内存空间为3G,但在程序编译时,不可能也没必要为程序分配这么大的空间,只分配并不大的数据段空间,程序中动态分配的空间就是从 这一块分配的。如果这块空间不够,malloc函数族(realloc,calloc等)就调用sbrk函数将数据段的下界移动,sbrk函数在内核的管 理下将虚拟地址空间映射到内存,供malloc函数使用。(参见linux内核情景分析)#include <u...

2021-10-27 17:19:02 1009

原创 sbrk、brk、mmap、munmap

一、系统调用(System Call):在Linux中,4G内存可分为两部分——内核空间1G(3~4G)与用户空间3G(0~3G),我们通常写的C代码都是在对用户空间即0~3G的内存进行操作。而且,用户空间的代码不能直接访问内核空间,因此内核空间提供了一系列的函数,实现用户空间进入内核空间的接口,这一系列的函数称为系统调用(System Call)。比如我们经常使用的open、close、read、write等函数都是系统级别的函数(man 2 function_name),而像fopen、fc

2021-10-27 11:34:12 416

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除