Tag Archives: windbg

Livekd – 커널 라이브 디버깅

Livekd – 커널 라이브 디버깅 우리는 지금까지 커널 디버깅을 위하여, 가상의 머신과 호스트 머신, 2개의 머신이 필요하였었다. 이와 같은 불편함을 감소 시키기 위해, 로컬에서 디버깅 할 수 있는 환경을 Livekd를 이용하여 진행할 수 있다. Livekd는 Windbg의 로컬 디버깅에서 제한된 아래와 같은 기능을 이용할 수 있다. 레지스터 확인 덤프 생성 호출 스택 확인 로컬 머신에서 실행

Read More

Windbg – Display Memory Command D, DD, DW, DB

Windbg – Display Memory Command D, DD, DW, DB 메모리의 내용을 확인할 때 Windbg에서 사용하는 명령어로 매우 자주 사용되는 명령으로, 아래와 같이 사용할 수 있다. D 지정한 범위의 메모리 내용을 표시 DD range 지정한 범위의 메모리 내용을 DWORD(32bit)로 표시 DW range 지정한 범위의 메모리 내용을 WORD(16bit)로 표시 DB range 지정한 범위의 메모리 내용을 BYTE(8bit)로 표시

Read More

역분석 – 디어셈블러(디버거, Debugger)

디어셈블러는 프로그램/하드웨어에서 오류인 버그(Bug)를 세부적으로 추적하여, 분석하는 행위를 말하며, 이와 같은 행위를 일반적으로 디버깅(ㅊ)이라고도 한다. 그리고 이러한 버그를 추적할 수 있는 도구를 디버거(Debugger)라고 한다. 그런데 프로그램의 오류를 찾을 때, CPU에서의 처리 과정을 분석해야 하다 보니 자연스럽게 기계어와 가까운 어셈블리어를 이용하게 되어, 디버거라 하면 디어셈블러를 포함하여 생각하는 게 일반적이다(정식 명칭은 “디어셈블 디버거”이다). 이는 사용분야에 따라 유저

Read More

windbg를 이용한 poll 추척 – Gflags

이 도구는 Windbg를 설치하면 함께 설치되는 도구로서, 커널 디버깅 시 유용한 기능을 제공한다. 대표적으로 윈도우에서 발생하는 페이지 풀 오류를 찾기 위해 먼저 Enable poll tagging를 활성화 하여, 힙 태그를 통해 오류시 사용된 힙의 태그을 확인할 수 있어, 장애 해결에 도움을 준다. HeapMon을 사용할 때에도 Gflags를 이용하여 활성화 하여야 한다. [그림] Heap, Pool 관련 문제를 추적하기

Read More