#6928·angr

CFGFast 在所有架构上 (除了 x86 和 ARM) 在无法解码的指令中重新启动

作者: zardus创建于 2026年8月24日更新于 2026年9月8日

这条消息是由自动化过程生成的。当 VEX 无法解码指令时,`CFGFast` 将一个字节标记为 `nodecode`,并将其余的指令留空,因此线性扫描将在其中恢复,并以一个不属于指令边界的地址生成一个块。`cfg_fast.py:5770` 将 `nodecode_size = 1` 设置为默认值。唯一的例外是 x86 和 x86-64 上的 `ud`/`ud0`/`ud1`/`ud2` (5772-5792) 和 ARM `UND` (5793-5828)。其他所有不可解码的指令在其他架构上都采用默认的一个字节大小,而 `self._seg_list.occupy(real_addr + irsb_size, nodecode_size, "nodecode")` 在 5846/5853 中只标记了该字节。两个具体的案例,它们都在当前主机上升为 `size=0`/`Ijk_NoDecode`,而它们的邻居则正常升级: