在usermode x64中是否有任何方案可以让硬件自动对每个内存加载和存储应用边界检查,而无需编译器的显式检测?我也不想依赖OS支持(例如mprotect系统调用)。
<begin: enforce all accesses within 0x10000000-0x10000100>
...
mov ___, ___ #hardware automatically performs range check
...
<end enforcement>
AFAIK,Intel MPX在每次检查内存访问之前都需要明确的bndcl / bndcu指令。
答案 0 :(得分:3)
没有。原因很简单,CPU不是水晶球,信息什么边界必须来自某处。该程序的任务是确定“what”并成为“somewhere”。