IDA提供了专用的搜索工具,多种不同的搜索方式,帮助我们在IDA数据库中快速搜索内容,并导航到页面上的指定位置。该软件设计了许多类型的数据显示来总结特定类型的信息(如字符串、名称),以方便我们查找这些信息。
今天我来总结IDA常见的几种搜索工具,使用它我们能快速获取想要的信息。
一、扫描搜索
IDA为搜索专门提供了一整个Search菜单,如下图1。在Search菜单下分布有各式各样的搜索功能,就比如next code,IDA会帮我们快速扫描搜索数据库,扫描后将光标移动到下一个包含指令的位置;再比如next void,可快速将光标跳到下一个void方法的位置。
以上的搜索方式通常是非常有用的,记住他们的快捷键可以方便我们日常的反编译操作,不过,接下来的两种搜索方式更值得一提。
二、文本搜索
文本搜索是绝大多数文本编辑器会带有的功能,IDA也不例外。我们可以通过上图1的text打开文本搜索界面,或者通过Alt + T快捷键打开。
勾选“Regular expression”可以启用正则表达式搜索功能,这里IDA采用的是POSIX类型的正则表达式;勾选“Identifier”是启用标识符搜索功能,它仅限制查找完整的单词,且不仅仅是单词,还可以是操作码助记符或者是常量;另外,Search Up表示从当前位置向上搜索。
搜索完成后,IDA会将搜索出来的词语高亮出来,如下图3,是我搜索“ebp”文本的结果。
我们还可以勾选“Find all occurrences”表示搜索全部结果,此时IDA会在一个新的窗口中展示出所有搜索出来的内容,我们可以根据它轻松导航到其中的任意一个匹配结果的位置上。
三、二进制搜索
如果我们要搜索特定的二进制内容,此时就不可以使用文本搜索了,我们应该使用的是IDA提供的二进制搜索工具。这是因为IDA的文本搜索,针对的搜索主体是反汇编窗口内容,而二进制搜索针对的搜索主体是十六进制视图窗口。
点击Search菜单中的“sequence of bytes”或者快捷键Alt + B打开二进制搜索界面,具体界面见图5。
我们可以使用“Unicode strings”功能搜索对应字符串的Unicode版本,我们可以在右侧切换搜索的进制数,如Hex(16进制)、Decimal(10进制)和Octal(8进制)。
这就是有关IDA搜索工具的全方位讲解教程了,主要讲述了IDA文本搜索和二进制搜索工具的打开和使用方式。了解这方面的相关知识,有利于我们对IDA的进一步使用,更多关于IDA的相关教程,我们可到城东书院网站上进行了解查看。