다음을 통해 공유


#(디스어셈블리 패턴 검색)

숫자 기호(#) 명령은 디스어셈블리 코드에서 지정된 패턴을 검색합니다.

# [Pattern] [Address [ L Size ]] 

매개 변수

패턴

디스어셈블리 코드에서 검색할 패턴을 지정합니다. 패턴 에는 다양한 와일드카드 문자와 지정자가 포함될 수 있습니다. 구문에 대한 자세한 내용은 문자열 와일드카드 구문을 참조하세요. 패턴에 공백을 포함하려면 패턴을 따옴표로 묶어야 합니다. 패턴은 대/소문자를 구분하지 않습니다. 이전에 명령을 사용 # 했으며 패턴을 생략한 경우 명령은 가장 최근에 사용한 패턴을 다시 사용합니다.

주소

검색이 시작되는 주소를 지정합니다. 구문에 대한 자세한 내용은 주소 및 주소 범위 구문을 참조하세요.

크기

검색할 명령 수를 지정합니다. 크기를 생략하면 첫 번째 일치 항목이 발생할 때까지 검색이 계속됩니다.

Environment

항목 Description
모드 사용자 모드, 커널 모드
대상 라이브, 크래시 덤프
플랫폼 모두

추가 정보

어셈블리 디버깅 및 관련 명령에 대한 자세한 내용은 어셈블리 모드에서 디버깅을 참조하세요.

설명

이전에 명령을 사용하고 Address# 생략한 경우 이전 검색이 종료된 위치에서 검색이 시작됩니다.

이 명령은 디스어셈블된 텍스트에서 지정된 패턴을 검색하여 작동합니다. 이 명령을 사용하여 레지스터 이름, 상수 또는 디스어셈블리 출력에 표시되는 다른 문자열을 찾을 수 있습니다. Address 매개 변수 없이 명령을 반복하여 패턴의 연속 항목을 찾을 수 있습니다.

u(언어셈블) 명령을 사용하거나 WinDbg의 디스어셈블리 창을 사용하여 디스어셈블리 명령을 볼 수 있습니다. 디스어셈블리 디스플레이에는 주소 오프셋, 이진 코드, 어셈블리 언어 니모닉 및 어셈블리 언어 세부 정보의 최대 네 부분으로 구성됩니다. 다음 예제에서는 가능한 디스플레이를 보여 주세요.

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

명령은 # 디스어셈블리 디스플레이의 단일 부분 내에서 텍스트를 검색할 수 있습니다. 예를 들어 # eax 0040116b를 사용하여 주소 0040116d에서 명령을 찾을 mov eax,[ebp-0x1c] 수 있습니다. 다음 명령도 이 명령을 찾습니다.

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

그러나 mov 및 eax가 디스플레이의 다른 부분에 표시되므로 단일 단위로 검색 mov eax* 할 수 없습니다. 대신 mov*eax 을(를) 사용하세요.

추가 예제로 다음 명령을 실행하여 진입점 기본 후 strlen 함수에 대한 첫 번째 참조를 검색할 수 있습니다.

# strlen main

마찬가지로 다음 두 명령을 실행하여 주소 0x779F9FBA 후 첫 번째 jnz 명령을 찾은 다음 그 후 다음 jnz 명령을 찾을 수 있습니다.

# jnz 779f9fba# 

Pattern 또는 Address를 생략하면 해당 값은 명령의 이전 사용을 기반으로 합니다#. 명령을 처음 실행할 # 때 두 매개 변수를 생략하면 검색이 수행되지 않습니다. 그러나 패턴 및주소 의 값은 이 상황에서도 초기화됩니다.

Pattern 또는 Address를 포함하면 해당 값이 입력된 값으로 설정됩니다. Address를 생략하면 프로그램 카운터의 현재 값으로 초기화됩니다. 패턴을 생략하면 빈 패턴으로 초기화됩니다.