ida - 有没有办法找到指令序列?
问题描述
我有以下 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)
返回搜索的最后结果?
(上面那个对我不起作用)
解决方案
怎么样:
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
, 并查找指令的特定字节,而不是查找文本。
推荐阅读
- c++ - Boost::signals2 和 const-ness
- python - 在 Python 3 中将 Latin-1 转换为 UTF-8 字符串时出错
- opengl - 生成一个四边形网格,稍后可以删除单个四边形
- python - Pandas - 排序、分组、添加列以查看移动日期窗口
- c - STM32H7,HAL_FLASH_Program 函数的奇怪行为
- reporting-services - 如何从上面的存储过程中为两个结果集创建数据集
- python - 检查列表理解中的表达式是否为空字符串
- r - 通过分组变量的第一个和最后一个值灵活过滤行
- python - 从另一个 python 文件导入函数,但使用原始文件中的定义
- javascript - 如何使用带有反应原生的打字稿将两个元素相乘?