我最近一直在处理Address Sanitizer(ASAN)]的内部结构,后来我知道了ASAN的代码检测。
[插入1、2、4字节访问时,插入是:
ShadowAddr = (Addr >> 3) + Offset; k = *ShadowAddr; if (k != 0 && ((Addr & 7) + AccessSize > k)) ReportAndCrash(Addr);
我不明白line 3
中的AccessSize做什么,为什么在其中使用它。
我最近一直在处理Address Sanitizer(ASAN)的内部结构,后来我了解了ASAN的代码工具。当检测1,2,4字节访问时,检测为:...
如AddressSanitizerAlgorithm wiki中所述,影子存储器的每个字节编码相应的用户存储器的7个字节的状态: