fastbin中对分配堆size的检查

malloc检查

fastbin中堆块的结构如图

其中size of previous chunk 和 size of chunk各占去8bytes(x64)。

在进行malloc分配堆块的时候,会进行对待分配内存的检查,但只是检查堆块大小标志位和将分配的堆块的大小是否符合,所以只需在构造时利用字节错位等,找到合适的位置,保证这个地址的数据满足是0x******** 000000××的形式。"xx" + 0x10在fastbin的范围内便能够通过检验。

 1.因为在比较中,后者是4bytes,所以只要保证选取的size of data的低4bytes满足0x000000xx即可,而前面无所谓即为0x********。

2.没有对其检查,所以可以随意搞偏移,而不必要找8的倍数作为地址。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。