디버거란? 오류 수정기. 프로그램의 오류를 찾아내기 위한 소프트웨어의 총칭. 대상으로 하는 프로그램을 1명령마다 분할해서 실행시키고, 그때의 레지스터값이나 프로그램 계수기, 플래그중앙 처리 장치의 내부 상황을 나타낸다. 트레이서라고도 한다.

[네이버 지식백과] 디버거 [debugger] (용어해설)

 

다음으로 대표적인 디버거들의 특징에 대해 설명하겠습니다.

 

1) OllyDbg - http://www.ollydbg.de/

 

 

   OllyDbg 는 유저모드 디버깅 도구 입니다. 무료 소프트웨어이지만 상당히 많은 기능을  제공하고 있습니다. 얼마전까지는 32Bit 모드 디버깅만 가능했지만 현재는 64Bit 모드 디버깅도 지원됩니다.

  간단한 어셈블리 프로그래밍에도 활용 할 수 있습니다. GUI 인터페이스를 제공하기 때문에 사용하기 편리하여 많은 사용자들이 이용하고 있습니다.

OllyDbg 가 많은 사용자들을 확보할수 있었던 이유는 다양한 Plug-in 때문이라고 생각 합니다.

Plug-in을 이용하면 디버거의 여러가지 기능을 추가 할 수 있습니다. 온라인 상에서 배포 되는 다양한 Plug-in을 사용해도 되지만 직접 만들어서 아용 해도 됩니다.

 

2) WinDbg

  

 

   WinDbg 는 마이크로소프트에서 제공하는 디버거 입니다. 유저 / 커널 모드 디버깅이 가능합니다.

하지만 OllyDbg 에 비해 사용하기 어렵습니다. 그 이유는 GUI 인터페이스를 제공하지 않기  때문입니다. WinDbg는 윈도우 제작사에서 제공하는 프로그램인 만큼 다양한 분야에 응용이 가능합니다. 파일이나 커널 디버깅 이외에도 응용프로그램이 문제가 생겼을때 생성되는 덤프 파일을 분석하여 문제가 발생한 원인을 찾아 내는데 사용할 수도 있습니다. WinDbg를 이용하면 커널 디버깅을 통해서 윈도우 내부 구조에 대해서 어느정도 파악 할 수 있습니다.

'0x011 Tool' 카테고리의 다른 글

[Windows] Resource Hacker  (0) 2017.12.29
[Windows] .NET Reflector  (0) 2017.12.29
[Windows] Process Explorer  (0) 2017.12.29
[Windows] HxD  (0) 2017.12.29
[Windows] PEiD  (0) 2017.12.29

1) FS 레지스터를 이용하여 TEB 구조체에 접근한다. ( TEB는 현재 실행되고 있는 Thread에 대한 정보를 가지고 있다.  )
2) TEB + 0x30 에 위치한 PEB 구조체에 접근한다. ( PEB 구조체는 실행 중인 프로세스에 대한 정보를 담아두는 구조체이다. )
3) PEB 구조체 내에 0x00c 에 위치한 Ldr 멤버 현재 로드된 DLL 에 대한 정보를 링크드리스트 형태로 가지고 있다.

Windbg 명령어
1) db : Byte 단위로 메모리를 표시
2) dd : double Word 단위로 메모리 표시
3) dt : type을 표시( 구조체 등 )

'0x003 Reversing > 04. Theory' 카테고리의 다른 글

[Linux] ShellCode 제작 방법  (0) 2017.12.29
[Tip] IDA Map 연동  (0) 2017.12.29
[Tip] IoT 펌웨어 분석 환경 구성  (0) 2017.12.29
[Windows] Hooking Immunity Debugger  (0) 2017.12.29

+ Recent posts