2016-01-20 30 views
1

我正在实施一个大学任务的原型堆栈保护机制。 我试图“硬化”的测试二进制文件是一个静态链接的精灵二进制文件,它有多个堆栈,它们被硬编码为精灵区段。不同的堆栈由防护页(4096字节部分)分隔。 警卫页面应该是不可访问的,类似于mprotect的PROT_NONE会执行的操作。我已经尝试使用objcopy --set-section-flags on readonly,但溢出其中一个堆栈仍然导致数据被写入到guard页面,这意味着它显然仍然是可写的。ELF二进制使部分无法访问

如何仅使用精灵节标志(或类似的精灵属性)使这样的节不可访问?

回答