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的倍数作为地址。