개인노트

[리버싱] 2.디버거 본문

Reversing

[리버싱] 2.디버거

BillnairK 2017. 7. 1. 23:03

디버깅을 시작하기 위해서는 전문적인 디버거를 사용해야한다. 디버거는 여러가지 종류가 있지만 여기서는 OllyDbg를 사용하기로 한다.

OllyDbg는 한눈에 보기 쉬운 인터페이스 구조와 여러가지 Plugin을 사용할 수 있는 Win32 디버거이며 무료로 제공되고 가겹고 빨라 많이 사용된다.


  << http://www.ollydbg.de/


디버깅을 하기 위해서 올리디버거(OllyDbg)라는 프로그램을 다운로드 한다.



왼쪽의 Files 밑에 Odbg200.zip을 다운로드 받고 압축을 해제한 후


ollydbg.exe를 실행한다.


HelloWorld.exe

↑ Download 


HellowWorld.exe를 받았다면 올리디버거를 통해 열어준다.


<그림 2-1>

1. Close Window : Disassembler Code 표시하며 Comment, label 보여주며 코드를 분석하여 loop, jump 정보를 표시한다.

2. Register Window : CPU Register 값을 실시간으로 표시하며 register 값은 수정이 가능하다.

3. Dump Window : Memory 주소 위치를 Hex ASCII/유니코드 값으로 표시하며 수정 또한 가능하다.

4. Stack Window : ESP Register 가리키는 프로세스 Stack Memory 실시간으로 표시하고 수정도 가능하다.


[ EP ]


<그림 2-1>의 Close Window에서 회색 부분은 디버거가 멈춘 곳이고 EP(Entry Point)라고 하며 Helloword.exe의 실행 시작 주소이다.


EP(Entry Point) 란 ?

Windows 실행 파일(exe, dll, sys...)의 코드 시작점을 의미한다. 프로그램이 실행 될 때 CPU에 의해 가장 먼저 실행되는 코드 시작 위치이다.



1. Address : 프로세스의 가상메모리(Virtual Address) 주소

2. Instruction : IA32 or x86  CPU명령어

3. Disassembled Code : OP code를 보기 쉽게 어셈블리어로 변환한 코드 

4. Comment : 디버거에서 자체적으로 추가한 주석










'Reversing' 카테고리의 다른 글

[리버싱] 3.OllDbg 기본 명령어  (0) 2017.07.02
[리버싱] 1.시작  (0) 2017.07.01
Comments