Freigeben über


# (Suchen nach Disassemblierungsmuster)

Der Befehl Zahlenzeichen (#) sucht im Disassemblierungscode nach dem angegebenen Muster.

# [Pattern] [Address [ L Size ]] 

Parameter

Muster

Gibt das Muster an, nach dem im Disassemblierungscode gesucht werden soll. Das Muster kann eine Vielzahl von Wildcardzeichen und Spezifizierern enthalten. Weitere Informationen zur Syntax finden Sie unter Zeichenfolgenplatzhaltersyntax. Wenn Sie Leerzeichen in Pattern einschließen möchten, müssen Sie das Muster in Anführungszeichen einschließen. Beim Muster wird die Groß-/Kleinschreibung nicht beachtet. Wenn Sie zuvor den # Befehl verwendet haben und Muster weglassen, verwendet der Befehl das zuletzt verwendete Muster.

Adresse

Gibt die Adresse an, an der die Suche beginnt. Weitere Informationen zur Syntax finden Sie unter Adress- und Adressbereichssyntax.

Größe

Gibt die Anzahl der zu durchsuchenden Anweisungen an. Wenn Sie Größe weglassen, wird die Suche bis zur ersten Übereinstimmung fortgesetzt.

Environment

Element BESCHREIBUNG
Modi Benutzermodus, Kernelmodus
Targets Liveabbild, Absturzabbild
Plattformen All

Zusätzliche Informationen

Weitere Informationen zum Debuggen von Assemblys und zugehörigen Befehlen finden Sie unter Debuggen im Assemblymodus.

Hinweise

Wenn Sie zuvor den # Befehl verwendet haben und Adresse weggelassen haben, beginnt die Suche dort, wo die vorherige Suche endete.

Dieser Befehl funktioniert, indem der disassemblierte Text nach dem angegebenen Muster gesucht wird. Sie können diesen Befehl verwenden, um Registernamen, Konstanten oder andere Zeichenfolgen zu suchen, die in der Disassemblierungsausgabe angezeigt werden. Sie können den Befehl ohne den Address-Parameter wiederholen, um nach aufeinander folgenden Vorkommen des Musters zu suchen.

Sie können Disassemblierungsanweisungen anzeigen, indem Sie den Befehl u (Unassemble) oder das Disassembly-Fenster in WinDbg verwenden. Die Disassemblierungsanzeige enthält bis zu vier Teile: Adressoffset, Binärcode, mnemonische Assemblysprache und Details zur Assemblysprache. Das folgende Beispiel zeigt eine mögliche Anzeige.

0040116b    45          inc         ebp            
0040116c    fc          cld                        
0040116d    8945b0      mov         eax,[ebp-0x1c] 

Der # Befehl kann innerhalb eines einzelnen Teils der Disassemblierungsanzeige nach Text suchen. Sie können beispielsweise #eax 0040116b verwenden, um die Anweisung unter der mov eax,[ebp-0x1c] Adresse 0040116d zu suchen. Die folgenden Befehle finden diese Anweisung ebenfalls.

#  [ebp?0x  0040116b 
#  mov  0040116b 
#  8945*  0040116b 
#  116d  0040116b 

Sie können jedoch nicht als einzelne Einheit suchen mov eax* , da mov und eax in verschiedenen Teilen der Anzeige angezeigt werden. Verwenden Sie stattdessen mov*eax.

Als zusätzliches Beispiel können Sie den folgenden Befehl ausgeben, um nach dem ersten Verweis auf die strlen-Funktion nach dem Einstiegspunkt Standard zu suchen.

# strlen main

Auf ähnliche Weise können Sie die folgenden beiden Befehle ausgeben, um die erste jnz-Anweisung nach der Adresse 0x779F9FBA und dann die nächste jnz-Anweisung danach zu finden.

# jnz 779f9fba# 

Wenn Sie Muster oder Adresse weglassen, basieren die Werte auf der vorherigen Verwendung des # Befehls. Wenn Sie bei der erstmaligen Ausgabe des # Befehls einen parameter weglassen, wird keine Suche ausgeführt. Die Werte von Pattern und Address werden jedoch auch in dieser Situation initialisiert.

Wenn Sie Muster oder Adresse einschließen, wird dessen Wert auf den eingegebenen Wert festgelegt. Wenn Sie Adresse weglassen, wird sie mit dem aktuellen Wert des Programmzählers initialisiert. Wenn Sie Das Muster weglassen, wird es mit einem leeren Muster initialisiert.