본문 바로가기

취약점 분석/windbg

windbg symbol path 설정

반응형

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