reversing/WinDbg

운영체제 심볼 경로 설정과 로드

코끼리_땃쥐 2023. 2. 21. 13:18
반응형

WinDbg 실행 후 심볼 경로를 확인하기 위해 .sympath 명령을 사용하면 다음과 같이 나온다.

 

0:000> .sympath
Symbol search path is: srv* Expanded Symbol search path is: cache*;SRV*https://msdl.microsoft.com/download/symbols

 

첫 줄을 보면 심볼 경로가 srv*로 설정돼 있는데  srv*은 심볼 서버를 사용하겠다는 키워드다. 원래 사용법은 srv*symbolstore처럼 srv*뒤에 심볼 서버 경로나 URL을 적어주는 것인데, srv*만 적으면 기본값으로 마이크로소프트 웹 심볼 서버 URL이 적용돼 별도로 운영체제에 대한 심볼 서버를 적어주지 않아도 된다.

실제로 WinDbg에 적용된 심볼 경로는 두 번째 줄에 출력됐다. SRV* 뒤에 자동으로 마이크로소프트 웹 심볼 서버의 URL인 https://msdl.microsoft.com/download/symbols 가 붙어서 실제로 WinDbg에 적용된 심볼 경로설정을 보여주고 있다.

 

Symbol information

Microsoft Internet Symbol Server The data you requested cannot be retrieved. You have reached this page because either you or an application that you are running has tried to retrieve debugging data from Microsoft. The requested data is either not availabl

msdl.microsoft.com

 

맨 앞의 cache*는 심볼 서버에서 받아온 심볼 파일들을 로컬 시스템의 심볼 캐시 폴더에 저장하라는 의미다. cache* 키워드가 없으면 캐시를 이용하지 않아 항상 서버에서 심볼파일을 다시 가져온다.

WinDbg가 내부적으로 사용하는 심볼 캐시 말고 자신이 원하는 폴더를 심볼 캐시로 사용하고 싶은 경우에는 다음과 같이 명시적으로 폴더 이름을 지정할수도 있다.

 

cache*C:\Symbols;SRV*https://msdl.microsoft.com/download/symbols

 

이렇게 하면 WinDbg의 기본 캐시 폴더가 아니라 C:\Sybols 폴더에 심볼 파일들을 저장 하고 심볼 파일이 필요할 때 여기부터 심볼 파일이 존재하는지 검색한다.

 

cache*키워드를 사용하지 않고 다음과 같이 srv* 키워드로 캐시 폴더를 지정할 수도 있다.

 

SRV*C:\OsSymbols*https://msdl.microsoft.com/download/symbols

 

SRV는 심볼 서버를 사용한다는 의미이고, C:\OsSymbols는 다운로드한 심볼 파일을 저장해 놓을 경로다. 명시적으로 운영체제 심볼 파일들만 캐시할 폴더를 지정하고 싶은 경우 이렇게 사용할 수 있다.

현재 기본값으로 적용된 심볼 경로는 WinDbg의 File 메뉴에서 Symbol File Path... 를 선택해 확인 할수도 있다.

 

반응형