如何设置条件断点来修改 ZF(零标志)

逆向工程 艾达 蟒蛇 数据中心
2021-07-08 14:28:48

在 IDA 中,我需要设置一个断点,一旦它命中,我想检查是否ZF等于 1,如果等于,我想将其更改为 0。

我不知道该怎么做:
在此处输入图片说明

我在 IDC 或 IDAPython 中搜索了示例脚本,但没有找到显示它的内容。
我该怎么做?

2个回答

移位 + f2

Message("zf flag when bp hit = %x\n" , GetRegValue("zf"));
SetRegValue(0,"zf");
Message("zf flag after setting it %x\n" , GetRegValue("zf"));

结果

zf flag when bp hit = 1
zf flag after setting it 0

由于在您的情况下 ZF 的最终值将为零,因此无需检查初始值而只需始终将其归零:

ZF=0,0

所述,0在端部将确保表达式的结果为0,因此IDA将继续程序的执行。