Linux内存映射函数mmap函数详解 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。 函数原型 void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset); int munmap(void* start,size_ 2023-11-09 Linux > 杂项 #转载
Linux堆内存管理深入分析(上) 前言近年来,漏洞挖掘越来越火,各种漏洞挖掘、利用的分析文章层出不穷。从大方向来看,主要有基于栈溢出的漏洞利用和基于堆溢出的漏洞利用两种。国内关于栈溢出的资料相对较多,这里就不累述了,但是关于堆溢出的漏洞利用资料就很少了。鄙人以为主要是堆溢出漏洞的门槛较高,需要先吃透相应操作系统的堆内存管理机制,而这部分内容一直是一个难点。因此本系列文章主要从Linux系统堆内存管理机制出发,逐步介绍诸如基本堆溢出 2023-11-09 Linux > 堆&栈 #转载
Linux堆内存管理深入分析(下) 0 前言回顾在上一篇文章中(链接见文章底部),详细介绍了堆内存管理中涉及到的基本概念以及相互关系,同时也着重介绍了堆中chunk分配和释放策略中使用到的隐式链表技术。通过前面的介绍,我们知道使用隐式链表来管理内存chunk总会涉及到内存的遍历,效率极低。对此glibc malloc引入了显示链表技术来提高堆内存分配和释放的效率。 所谓的显示链表就是我们在数据结构中常用的链表,而链表本质上就是将一些 2023-11-09 Linux > 堆&栈 #转载
free源码分析——1 free源码分析—__libc_free本章继续之前的glibc中的《malloc源码分析》系列开始分析free的源代码,malloc的源码分析可以查看博客里同类别文章下的《malloc源码分析—1》到《malloc源码分析—5》,因此free的源码中有一些结构和malloc相似的地方就不会做过多的介绍了。 首先在glibc的malloc.c中有如下定义, 1234strong_alias( __ 2023-11-09 C > 源码分析 #转载
free源码分析——2 free源码分析—_int_free根据上一章的分析可知,如果一个chunk不是由mmap分配得到,就会调用_int_free进行释放。下面来看, 123456789101112void __libc_free(void *mem) { ... p = mem2chunk(mem); if (chunk_is_mmapped(p)){ ... 2023-11-09 C > 源码分析 #转载
linux下system()/execve()/execl()函数使用详解 本节详细可参考http://www.cnblogs.com/akira90/archive/2012/12/05/2802809.html 1. execve函数12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 相关函数: fork,execl, 2023-11-09 Linux > 系统函数 #转载