就是说,能够访问超出image范围的内存,实现任意地址读(指任意高地址读)。eaxeax是我们的参数低4位,而rcx则是free_。v6->fileno;}注意到第22行的strcpy函数,它将a1按字节传入v6->name,根据文件结构可知,如果a1字符串足够长,就应该能从name溢出到malloc_buf,因为strcpy会一直拷贝直到src遇到'\x00'字符为止。文件结构中的name字段也是24个字符,而strcpy函数会在dest字符串尾部用'\x00'填充。因此,如果name填满24字节,就会有一个'\x00'溢出到malloc_buf处导致off-by-one漏洞。size;}首先通过fileno找到对应的文件,然后用memcpy将buf中的内容拷贝到fd->malloc_buf中。n;}通过memcpy将fd->malloc_buf的数据拷贝到buf里。system_open让fd->malloc_buf从unsortedbin或largebins中开辟内容,然后用write将它们写出来,就泄露了libc地址。所以one_gadget不行,还是得老老实实orw拿出flag)。