IDA 技巧(48) IDA 中的搜索

admin 2024年9月26日11:08:08评论41 views字数 1681阅读5分36秒阅读模式

IDA中搜索

我们已经讨论过如何在列表选择视图中进行搜索,那么如果您需要搜索IDA中的其他位置,该怎么办?

文本搜索

在搜索文本内容时,相同的快捷键对(AltT开始,CtrlT继续)几乎在IDA显示文本的任何地方都可以使用:

  • 反汇编 (IDA 视图)
  • 十六进制视图
  • 反编译输出 (伪代码)
  • 输出窗口
  • 结构和枚举窗口
  • 列表选择视图

这种搜索会匹配当前视图中的任何文本,例如指令和注释(如果有)。

对于主窗口,此操作也可以通过搜索 > 文本... 菜单项访问。

IDA 技巧(48) IDA 中的搜索

文本搜索

提示“(慢!)”指的是在进行文本搜索时,IDA必须渲染搜索范围内的所有文本行,这可能会非常慢,尤其是对于大二进制文件。然而,如果您需要正则匹配或在注释中搜索文本,等待是值得的。

二进制搜索

可以通过快捷键对AltB/CtrlB或搜索 > 字节序列... 来访问此功能,该功能允许在数据库中搜索字节序列(包括字符串文本)和模式(包括调试期间的进程内存)。

IDA 技巧(48) IDA 中的搜索

二进制搜索

输入行接受以下输入:

  1. 字节序列(以空格分隔): 01 02 03 04

  2. 带通配符字节的字节序列: 68 ? ? ? 0 将匹配 68 C4 1A 48 0068 D8 1A 48 00

  3. 一个或多个选定基数(十六进制、十进制或八进制)的数字: 根据当前处理器字节序,数字会转换为所需的最小字节数。例如,04469E0 在x86(一个小端处理器)上会转换为 E0 69 44

  4. 带引号的字符串文本: 例如 "Error"。该字符串将根据编码选择器中指定的编码转换为字节。如果选择了“所有编码”,将使用所有配置的编码进行搜索。

    搜索二进制字符串

    IDA 技巧(48) IDA 中的搜索

  5. 宽字符字符串常量(例如 L"test"): 仅使用UTF-16将此类字符串转换为原始字节。

立即数搜索

如前所述,同一指令操作数可以在IDA中以不同方式表示。例如,一个这样的指令:

test dword ptr [eax], 10000h

也可以显示为:

test dword ptr [eax], 65536

甚至:

test dword ptr [eax], AW_HIDE

因此,如果您对 10000h 进行文本搜索,IDA 会找到第一种变化形式但找不到其他两种。在x86上,您可以使用二进制搜索 10000 十六进制(将转换为字节序列 00 00 01),但这对使用非字节边界指令编码的处理器不起作用,或者如果无关的指令恰好匹配该字节序列,则可能会给出许多误报。因此,立即数值搜索更为理想的理由如下:

  1. 它只检查具有数值操作数或数据项的指令,提高搜索速度并减少误报。
  2. 它比较操作数的数值,因此任何表示方式的变化都不会影响匹配,这意味着它会找到上述三种变化中的任何一种。

可以通过快捷键对AltI/CtrlI或搜索 > 立即数值... 来使用。

IDA 技巧(48) IDA 中的搜索

立即数值搜索

该值可以使用C语法(十进制、十六进制、八进制)在任何数值基中输入。

搜索方向

默认情况下,所有搜索都从当前位置向“下”执行,即朝着增加的地址。您可以通过在单独的搜索对话框中勾选“向上搜索”或者预先通过搜索 > 搜索方向 进行更改。当前设置的值将显示在菜单项以及IDA的状态栏中。

IDA 技巧(48) IDA 中的搜索

搜索方向

“下一次搜索”命令和快捷键(CtrlT,CtrlB,CtrlI)也使用此设置。

查找所有出现的匹配

IDA 技巧(48) IDA 中的搜索

查找所有出现

此复选框允许您将整个数据库或视图中的搜索结果列出,您可以随时检查,而不是一次次查看每次搜索命中。

IDA 技巧(48) IDA 中的搜索

查找所有列表

选择搜索类型

这不是一个权威指南,但这里有一些建议:

  1. 由程序显示的文本(例如提示或错误信息): 引号子字符串的二进制搜索(注意:如果字符串不是硬编码而是在外部文件或资源流中,则此方法不起作用)。
  2. 魔数或错误代码: 直接搜索(在某些情况下,数值的二进制搜索也可以)。
  3. 没有明显交叉引用的地址: 地址值的二进制搜索(仅当引用实际直接使用该值而不是以某种方式计算它时才成功)。
  4. 特定指令操作码模式: 字节序列的二进制搜索(可能带有通配符字节)。
  5. 没有固定编码的指令: 助记符和/或操作数的文本搜索(可能为正则)。

交流群

添加小助手微信加入: OxCSorder

更多文章

立即关注【二进制磨剑】公众号

👉👉👉【IDA 技巧合集】👈👈👈
👉👉👉【Github 安全项目合集】👈👈👈

原文始发于微信公众号(二进制磨剑):IDA 技巧(48) IDA 中的搜索

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月26日11:08:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA 技巧(48) IDA 中的搜索https://cn-sec.com/archives/3124044.html

发表评论

匿名网友 填写信息