[hellollvm] 词法分析:缕清楚了文件的包含关系(五)
还是从硬件断点
2 hw watchpoint keep y *(unsigned long *)0x555569fb71e0
stop only if *(unsigned long *)0x555569fb71e0==93825335973472
stop only if *(unsigned long *)0x555569fb71e0==93825335973472
出发跟对forward.h的分析
之前我对IncludeMacroStack这个堆栈上压入的文件包含情况进行分析
p (**(clang::Lexer **)(0x555569d844b8 + 0x38)).MIOpt.MacroLoc.ID
$7 = 969998
$7 = 969998
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*0)).MIOpt.MacroLoc.ID
$6 = 324889
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-1)).MIOpt.MacroLoc.ID
$7 = 271772
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-2)).MIOpt.MacroLoc.ID
$8 = 213834
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-3)).MIOpt.MacroLoc.ID
$6 = 324889
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-1)).MIOpt.MacroLoc.ID
$7 = 271772
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-2)).MIOpt.MacroLoc.ID
$8 = 213834
p (**(clang::Lexer **)(0x555569d844b8 + 0x38*-3)).MIOpt.MacroLoc.ID
今天我跟踪了词法分析对forward.h之前的包含关系locale_base_api.h的处理
我通过对
p TheLexer->BufferStart
进行了硬件断点跟踪。
听ISCA 2025。 加州大学河滨分校(UC Riverside)作《SpecASan: 使用推测地址消毒技术缓解瞬态执行攻击》论文报告。 SpecASan 在硬件层面扩展了 ARM 的内存标记扩展(MTE)机制,其核心实现是在处理器的推测执行流水线中增加了标签检查与延迟逻辑:当推测执行的内存访问指令进行MTE 标签比对时,如果检测到标签不匹配(即内存安全违规),SpecASan 会在微架构层面阻止该访问及其依赖指令影响缓存、分支预测器等微架构状态,将这些操作延迟到推测执行被确认提交(commit)之后才允许执行;这样即使攻击者试图通过 Spectre 类攻击在推测路径上访问非法内存并通过侧信道泄露信息,由于违规访问被硬件拦截且未留下微架构痕迹,攻击者无法通过时间测量等侧信道手段获取敏感数据,从而在保留推测执行性能优势的同时有效防御了瞬态执行攻击。 补充背景: SpecASan 的提出源于研究人员发现原生 MTE 在面对推测执行攻击时存在漏洞(如 TIKTAG 攻击可在 4 秒内以超过 95% 成功率泄露 MTE 标签),SpecASan 通过硬件级的推测感知延迟机制填补了这一安全缺口。