首页 > 解决方案 > 有没有办法找到指令序列?

问题描述

我有以下 python 脚本来查找“CMP”指令。

find_text(xref.frm, 0, 0, "CMP.*", SEARCH_UP|SEARCH_REGEX)

但这会返回 CMP 指令的第一个实例,而我想要的那个位于较低地址中。

所以我想知道是否有办法找到一个指令序列,比如

find_text(xref.frm, 0, 0, "CMP.*MOV.*CMP.*", SEARCH_UP|SEARCH_REGEX)

返回搜索的最后结果?

(上面那个对我不起作用)

标签: ida

解决方案


怎么样:

result = find_text(xref.frm, 0, 0, "CMP.*", SEARCH_UP|SEARCH_REGEX)
while result != BADADDR:
    print(hex(result))
    result = find_text(result + get_item_size(result), 0, 0, "CMP.*", SEARCH_UP|SEARCH_REGEX)

此外,您可以使用find_binary, 并查找指令的特定字节,而不是查找文本。


推荐阅读