# (Pesquisar padrão de desmontagem)
O comando number sign (#) pesquisa o padrão especificado no código de desmontagem.
# [Pattern] [Address [ L Size ]]
Parâmetros
Padrão
Especifica o padrão a ser pesquisado no código de desmontagem. O padrão pode conter uma variedade de caracteres curinga e especificadores. Para obter mais informações sobre a sintaxe, consulte Sintaxe curinga de cadeia de caracteres. Se você quiser incluir espaços em Padrão, deverá colocar o padrão entre aspas. O padrão não diferencia maiúsculas de minúsculas. Se você já tiver usado o # comando e omitir Pattern, o comando reutilizará o padrão usado mais recentemente.
Endereço
Especifica o endereço em que a pesquisa começa. Para obter mais informações sobre a sintaxe, consulte Sintaxe de intervalo de endereços e endereços.
Tamanho
Especifica o número de instruções a serem pesquisadas. Se você omitir Size, a pesquisa continuará até que a primeira correspondência ocorra.
Ambiente
Item | Descrição |
---|---|
Modos | Modo de usuário, modo kernel |
Destinos | Ao vivo, despejo de memória |
Plataformas | Tudo |
Informações adicionais
Para obter mais informações sobre depuração de assembly e comandos relacionados, consulte Depuração no modo assembly.
Comentários
Se você usou o # comando anteriormente e omitiu Endereço, a pesquisa começa onde a pesquisa anterior terminou.
Esse comando funciona pesquisando o texto desmontado para o padrão especificado. Você pode usar esse comando para localizar nomes de registro, constantes ou qualquer outra cadeia de caracteres que apareça na saída de desmontagem. Você pode repetir o comando sem o parâmetro Address para localizar ocorrências sucessivas do padrão.
Você pode exibir instruções de desmontagem usando o comando u (Unassemble) ou usando a janela Desmontagem no WinDbg. A exibição de desmontagem contém até quatro partes: deslocamento de endereço, código binário, mnemônico da linguagem assembly e detalhes da linguagem assembly. O exemplo a seguir mostra uma possível exibição.
0040116b 45 inc ebp
0040116c fc cld
0040116d 8945b0 mov eax,[ebp-0x1c]
O # comando pode pesquisar texto em qualquer parte da exibição desmontada. Por exemplo, você pode usar # eax 0040116b para encontrar a mov eax,[ebp-0x1c]
instrução no endereço 0040116d. Os comandos a seguir também encontram esta instrução.
# [ebp?0x 0040116b
# mov 0040116b
# 8945* 0040116b
# 116d 0040116b
No entanto, você não pode pesquisar mov eax*
como uma única unidade, pois mov e eax aparecem em diferentes partes da exibição. Em vez disso, use mov*eax
.
Como exemplo adicional, você pode emitir o comando a seguir para pesquisar a primeira referência à função strlen após o ponto de entrada main.
# strlen main
Da mesma forma, você pode emitir os dois comandos a seguir para encontrar a primeira instrução jnz após o endereço 0x779F9FBA e, em seguida, encontrar a próxima instrução jnz depois disso.
# jnz 779f9fba#
Quando você omite Padrão ou Endereço, seus valores são baseados no uso anterior do # comando. Se você omitir qualquer parâmetro na primeira vez que emitir o # comando, nenhuma pesquisa será executada. No entanto, os valores de Padrão e Endereço são inicializados mesmo nessa situação.
Se você incluir Padrão ou Endereço, seu valor será definido como o valor inserido. Se você omitir Address, ele será inicializado para o valor atual do contador do programa. Se você omitir Pattern, ele será inicializado para um padrão vazio.