[Windows] Debugger
디버거란? 오류 수정기. 프로그램의 오류를 찾아내기 위한 소프트웨어의 총칭. 대상으로 하는 프로그램을 1명령마다 분할해서 실행시키고, 그때의 레지스터값이나 프로그램 계수기, 플래그 등 중앙 처리 장치의 내부 상황을 나타낸다. 트레이서라고도 한다.
1) OllyDbg - http://www.ollydbg.de/
OllyDbg 는 유저모드 디버깅 도구 입니다. 무료 소프트웨어이지만 상당히 많은 기능을 제공하고 있습니다. 얼마전까지는 32Bit 모드 디버깅만 가능했지만 현재는 64Bit 모드 디버깅도 지원됩니다.
간단한 어셈블리 프로그래밍에도 활용 할 수 있습니다. GUI 인터페이스를 제공하기 때문에 사용하기 편리하여 많은 사용자들이 이용하고 있습니다.
OllyDbg 가 많은 사용자들을 확보할수 있었던 이유는 다양한 Plug-in 때문이라고 생각 합니다.
Plug-in을 이용하면 디버거의 여러가지 기능을 추가 할 수 있습니다. 온라인 상에서 배포 되는 다양한 Plug-in을 사용해도 되지만 직접 만들어서 아용 해도 됩니다.
2) WinDbg
WinDbg 는 마이크로소프트에서 제공하는 디버거 입니다. 유저 / 커널 모드 디버깅이 가능합니다.
하지만 OllyDbg 에 비해 사용하기 어렵습니다. 그 이유는 GUI 인터페이스를 제공하지 않기 때문입니다. WinDbg는 윈도우 제작사에서 제공하는 프로그램인 만큼 다양한 분야에 응용이 가능합니다. 파일이나 커널 디버깅 이외에도 응용프로그램이 문제가 생겼을때 생성되는 덤프 파일을 분석하여 문제가 발생한 원인을 찾아 내는데 사용할 수도 있습니다. WinDbg를 이용하면 커널 디버깅을 통해서 윈도우 내부 구조에 대해서 어느정도 파악 할 수 있습니다.