在IDA中进行搜索时,默认情况下会从当前位置开始,直到数据库中的最大地址(或对于“向上”搜索则是最小地址)。这对于小到中等大小的文件来说效果不错,但对于大文件,尤其是在调试时,数据库可能不仅包括输入文件,还包括运行时加载的多个附加模块,这时速度可能会变得很慢。
为了跳过不感兴趣的区域并提高速度,可以将搜索限制在一个地址范围内。为此,IDA依赖于选择。例如,考虑以下反汇编片段:
如果你进行二进制搜索值93
,指令在00000514
处会被找到:
ounter(lineounter(line
向下搜索二进制模式(不区分大小写):
搜索完成。在00000514处找到。
然而,如果在调用搜索之前选择的范围不包括该地址,搜索将失败:
ounter(lineounter(lineounter(line
向下搜索二进制模式(不区分大小写):
搜索失败。
命令“AskBinaryText”失败
用鼠标或按住Shift选择大区域可能相当繁琐,因此使用锚点选择可能更方便:
-
移动到预期选择的开始或结束位置并调用编辑 > 开始选择(或按 Alt
–L
)。 -
使用任何方式导航到选择的另一端(光标键、跳转操作、函数或段窗口、导航栏等)。 -
调用二进制搜索命令。搜索将仅在选择中进行。
学习资源
立即关注【二进制磨剑】公众号
原文始发于微信公众号(二进制磨剑):IDA技巧(121)限制搜索到地址范围
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论