type
status
date
summary
slug
tags
category
icon
password
最近在使用 angr 搞一些东西,在 angr 所依赖的 capstone 5.x 版本(图中使用的是截止本文发表时 capstone 的 5.x 版本的最新版 5.0.6) 中发现了一个 capstone 的问题。
问题如下图所示


显然,这条指令读取的是 W27 和 W8,写的是 NZCV (标志寄存器),但是 regs_access 的返回是读了 W8 写了 W27 和 NZCV。
查找相关 issues 发现了一个 2020 的 issues
AArch64 wrong register access read/write flags on "cmp" instruction
Updated Nov 13, 2021
并且在 2021 已经合并了
Fix cmp register access on aarch64
Updated Nov 13, 2021
就在我摸不到头脑的时候,突然注意到

next 是 6.x 的分支,也就是说这个bug确实修了但是 5.x 没修。
看了一下 commit ,改动也很简单。

在
printOperand
函数里对着改一下即可,然后编译一个动态链接库替换进去。