返回介绍

6.3 搜索数据库

发布于 2024-10-11 21:05:42 字数 2330 浏览 0 评论 0 收藏 0

在 IDA 中,你可以轻松导航到你知道的位置。IDA 设计了许多类型的数据显示来总结特定类型的信息(名称、字符串、导入等),以方便你查找这些信息。但是,哪些功能可帮助你对数据库进行更一般的搜索呢?如果仔细查看一下搜索菜单,你会发现大量选项,它们绝大多数都要求你选择某个类别中的下一个选项。例如,Search ▶Next Code 命令将光标移动到下一个包含指令的位置。你可能还希望了解跳转菜单中的选项,这其中许多选项提供了大量位置供你选择。例如,使用 Jump▶Jump to Function 命令可以打开所有函数,你可以迅速选择一个函数并导航到该函数所在的位置。虽然这些扫描搜索功能通常非常有用,但下面这两种通用搜索功能更值得详细讨论:文本搜索和二进制搜索。

6.3.1 文本搜索

IDA 文本搜索相当于对反汇编列表窗口进行子字符串搜索。通过 Search▶Text(热键:ALT+T)命令启动文本搜索,即打开如图 6-7 所示的对话框。许多直观的选项规定了与搜索有关的细节。如图所示,IDA 允许你搜索 POSIX 类型的正则表达式。这里的 标识符 (Identifier )搜索有些用词不当。实际上,它将搜索限制于仅查找完整的词,并且能够匹配反汇编行中的任何完整的词,包括操作码助记符或常量。对 401116 进行标识符搜索将无法找到名为 loc_401116 的符号。

enter image description here

图 6-7 Text Search (文本搜索)对话框

选择 Find all occurences (查找所有结果),IDA 将在一个新的窗口中显示搜索结果,你可以根据搜索条件轻松导航到任何一个匹配结果。最后,使用 CTRL+T 或 Search▶Next Text (搜索▶下一个文本)命令可重复前一项搜索,以找到下一个匹配结果。

6.3.2 二进制搜索

如果需要搜索特定的二进制内容,如已知的字节序列,这时就不能使用文本搜索功能,而应使用 IDA 的二进制搜索工具。文本搜索针对反汇编窗口进行搜索,但是,你可以认为二进制搜索仅搜索十六进制视图窗口。根据你指定搜索字符串的方式,你可以搜索十六进制或 ASCII 字符串。使用 Search ▶Sequence of Bytes(搜索▶字节序列)或 ALT+B 即可启动二进制搜索。Binary Search(二进制搜索)对话框如图 6-8 所示。要搜索一个十六进制字节序列,应将搜索字符串指定为以空格分隔的两位十六进制值组成的列表,如 CA FE BA BE ,这与搜索 ca fe ba be 的结果相同,无论你是否选中 Case-sensitive (区分大小写)选项都是如此。

enter image description here

图 6-8 Binary Search 对话框

要搜索内嵌的字符串数据(有效搜索十六进制窗口中的 ASCII 字符串),你必须将搜索字符串用引号括起来。使用 Unicode Strings 选项可以搜索你所搜索的字符串的 Unicode 版本。

Case-sensitive 选项可能会引起混淆。在搜索字符串时,它的作用相当简单。如果没有选中 Case-sensitive 选项,则搜索 hello 时会出现 HELLO。但是,在进行十六进制搜索时,如果没有选中 Case-sensitive 选项,情况会有所不同。如果对 E9 41 C3 进行不区分大小写的搜索,你会惊奇地发现, E9 61 C3 出现在了搜索结果中。这是因为,0x41 对应于字符 A,而 0x61 则对应于字符 a,所以 IDA 认为这两个字符串相互匹配。所以,即使你指定了进行十六进制搜索,但 0x41 却等同于 0x61 ,因为你并没有指定进行区分大小写的搜索。

说明  在进行十六进制搜索时,如果希望将搜索限定为完全匹配,你必须选中 Case-sensitive 选项。在你搜索特定的操作码序列而非 ASCII 文本时,这点尤为重要。

使用 CTRL+B 或 Search ▶Next Sequence of Bytes(搜索▶下一个字节序列)可以搜索随后的二进制数据。最后,你并没有必要在十六进制视图窗口中进行二进制搜索。IDA 允许你在活动的反汇编窗口中指定二进制搜索条件,如果你成功找到与搜索条件相匹配的字符串,反汇编窗口将跳转对相应的位置。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文