假设我们对 Glibc malloc 和 free 的实现一无所知,malloc 了一大堆内存后在挨个 free 掉,会发现 free 的顺序实际上决定是否将内存返回给 OS ,看最后一个system bytes:
- 还给 OS 的情况: https://godbolt.org/z/9n8GMY5cd
- 不还给 OS 的情况: https://godbolt.org/z/467d37hh7
下一步是读 malloc 的源码,估计是用一个 linked list 来管理 heap 内存的

假设我们对 Glibc malloc 和 free 的实现一无所知,malloc 了一大堆内存后在挨个 free 掉,会发现 free 的顺序实际上决定是否将内存返回给 OS ,看最后一个system bytes:
下一步是读 malloc 的源码,估计是用一个 linked list 来管理 heap 内存的
1 tyzandhr Feb 8, 2023 via Android 不是新发现了。建议用 tcmalloc |
2 nopnewbie Feb 8, 2023 嗯,现在你已经学会 ptmalloc2 的源码了,那么你就可以就来做几道 glibc heap overflow 的 pwn 吧。 |
3 bfdh Feb 8, 2023 内存空洞 |