Windbg에서 심볼패스 설정하기.
참고주소 : https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path
windbg를 이용하여 디버깅 시에, 심볼패스를 설정해 주면 디버깅 시에 도움이 되는 관련 DLL 심볼 정보들을 이용하여 더욱 편하게 디버깅을 진행할 수 있다.
windbg에서 symbol path를 설정하는 방법을 간단히 살펴보자.
windbg는 ms에서 제공하는 윈도우 맞춤 디버거로, 당연히 ms 홈페이지에서 자세한 설명을 제공하고 있다. symbol path를 설정하는 다양한 방법은 위 '참고주소'에서 다양하게 다루고 있다.
ms에서도 cache를 사용하여 locally하게 심볼을 사용할 것을 추천하고 있고, 인터넷과 연결이 될 시 심볼서버를 이용하는 게 가장 효율적이라 말하고 있다.
이에 로컬캐시와 심볼서버를 둘 다 이용하는 방법 두가지를 따로 설명하고자 한다.
1. 심볼서버 명시 시에 같이 로컬캐시 선언.
심볼서버를 명시할 시에 srv*명령어를 사용하는데, symbolstore(심볼서버주소) 명시 전에 *localcache를 나타낼 수 있도록 명령어를 지원하고 있다.
따라서 설정 방법은 ".sympath srv*[로컬캐시경로설정]*[symbolstore주소]"가 되며, symbolstore주소는 보통 msdl의 symbols를 이용한다.
2. 캐시와 심볼서버를 각각 명시.
symbols cache는 cache*[로컬캐시경로]를 통해 선언할 수 있고, symbolstore설정은 1번에서 다루었듯이 srv*[symbolstore주소]를 통해 명시할 수 있다.
이 둘을 단지 결합하여 ".sympath cache*[로컬캐시경로];srv*[symbolstore주소]"가 된다.
중간에 ';'로 구분됨에 주의하자.
3. 이후에 간단하게 심볼패스 설정
심볼패스는 매번 설정을 해주어야하는데, 매번 저렇게 설정해주는 것이 번거롭다면
".symfix c:\symbols(로컬캐시경로!)"만 해주면 간단하게 설정이 가능하다.
4. 리로드!!!!
[※심볼패스 설정이 완료되었다면 항상 .reload를 통해 변경된 사항이 반영되도록 한다.]
'취약점 분석 > windbg' 카테고리의 다른 글
(임계영역) CriticalSection API 함수 정리 (0) | 2019.02.23 |
---|---|
windbg 포인터 참조하기 (0) | 2018.09.06 |
Trace 명령어 (0) | 2018.09.03 |
Windbg LFH 동작시킨 상태로 디버깅하는 방법 (0) | 2018.07.19 |
힙 디버깅 (0) | 2018.05.09 |