how2pwn | double-free利用剖析

环境:glibc2.23 demo   老样子首先从一个demo程序开始看起: #include <stdio.h> #include <stdlib.h> int main() { void *p1,*p2,*p3; unsigned long* ptr; p1=mallo…

how2pwn | unsafe-unlink利用剖析

环境:glibc2.23 demo   看到这了我就假设你已经看过我的malloc四部曲和free了,接下来我们将利用这些利用技巧来更深层次的理解内存管理。首先还是从简单的入手,假设有如下代码: #include <stdio.h> #include <stdlib.h> i…

Linux堆结构 | free原理跟踪分析

  free函数的讲解我们同样以hello,world程序开始,有如下代码: #include <stdio.h> #include <stdlib.h> int main() { free(malloc(0x100)); return 0; }   我们之前已经分析过了第一…

Linux堆结构 | malloc原理跟踪分析(二)

  在上一个章节,我们已经大致认识到了malloc的堆块在内存中的结构,接下来我们就开始从源码角度分析内存分配的原理: void * __libc_malloc (size_t bytes) { mstate ar_ptr; void *victim; void *(*hook) (size_t, …