(搜索反汇编模式)
数字符号 (#) 命令搜索反汇编代码中的指定模式。
# [Pattern] [Address [ L Size ]]
参数
模式
指定要在反汇编代码中搜索的模式。 模式 可以包含各种通配符和说明符。 有关语法的详细信息,请参阅 字符串通配符语法。 如果要在 Pattern 中包含空格,则必须将模式括在引号中。 模式不区分大小写。 如果以前使用 # 过 命令,但省略 了 Pattern,则命令将重复使用最近使用的模式。
Address
指定搜索开始的地址。 有关语法的详细信息,请参阅地址和地址范围语法。
大小
指定要搜索的指令数。 如果省略 Size,搜索将继续,直到出现第一个匹配项。
环境
项 | 说明 |
---|---|
模式 | 用户模式、内核模式 |
目标 | 实时、故障转储 |
平台 | 全部 |
其他信息
有关程序集调试和相关命令的详细信息,请参阅 在程序集模式下调试。
注解
如果之前使用了 # 命令,并且省略了 Address,则搜索从上次搜索结束的位置开始。
此命令的工作原理是搜索指定模式的反汇编文本。 可以使用此命令查找寄存器名称、常量或反汇编输出中显示的任何其他字符串。 可以在不使用 Address 参数的情况下重复该命令,以查找模式的连续匹配项。
可以使用 u (Unassemble) 命令或使用 WinDbg 中的 反汇编窗口查看反汇编 说明。 反汇编显示最多包含四个部分:地址偏移量、二进制代码、汇编语言助记键和汇编语言详细信息。 以下示例显示了可能的显示。
0040116b 45 inc ebp
0040116c fc cld
0040116d 8945b0 mov eax,[ebp-0x1c]
命令 # 可以搜索反汇编显示的任何单个部分内的文本。 例如,可以使用 # eax 0040116b 查找 mov eax,[ebp-0x1c]
地址为 0040116d 的指令。 以下命令也会找到此指令。
# [ebp?0x 0040116b
# mov 0040116b
# 8945* 0040116b
# 116d 0040116b
但是,不能以单个单元的形式搜索 mov eax*
,因为移动和 eax 出现在显示的不同部分。 请改用 mov*eax
。
作为另一个示例,可以发出以下命令,在入口点main后搜索对 strlen 函数的第一个引用。
# strlen main
同样,可以发出以下两个命令,在地址0x779F9FBA之后查找第一个 jnz 指令,然后查找之后的下一个 jnz 指令。
# jnz 779f9fba#
如果省略 Pattern 或 Address,则其值基于以前对 命令的使用 # 。 如果在首次发出 # 命令时省略任一参数,则不会执行搜索。 但是,即使在这种情况下, Pattern 和 Address 的值也会初始化。
如果包含 Pattern 或 Address,则其值将设置为输入的值。 如果省略 Address,则会将其初始化为程序计数器的当前值。 如果省略 Pattern,则会将其初始化为空模式。