일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- c#
- 깃
- 플러터
- C언어 포인터
- Algorithm
- Unity
- c# 윈폼
- dart 언어
- C# delegate
- 유니티
- Houdini
- C++
- c# 추상 클래스
- jupyter
- github
- c# winform
- vim
- c언어
- docker
- 도커
- git
- Data Structure
- HTML
- gitlab
- jupyter lab
- 구조체
- 다트 언어
- 포인터
- Python
- Flutter
- Today
- Total
nomad-programmer
[Reversing/OllyDbg] 설치 및 설정 본문
OllyDbg란?
OllyDbg는 윈도우용 어셈블러를 분석할 수 있는 디버거다. OllyDbg는 직관적인 사용자 화면을 제공하며 무료로 사용할 수 잇고 다양한 플러그인을 통해 기능을 확장할 수 있다. 현재 버전 2.01까지 제공 중이며 64비트 환경을 지원하기 위한 프로그램이 개발중이다.
OllyDbg는 프레임, 메뉴 바, 퀵 링크, 뷰 영역, 상태 바 이렇게 5개의 영역으로 구성된다.
- 프레임은 OllyDbg의 외부 골격을 형성하고 있으며 현재 어떤 프로그램의 무슨 모듈을 디버깅하고 있는지 표시하고 있다.
- 메뉴 바는 OllyDbg에서 제공하는 기능을 모두 담고 있다. 파일 다루기, 분석 화면에 대한 설명, 트레이스 기능 설정, OllyDbg 외부 플러그인 사용, 프로그램 옵션 설정, 윈도우 창 설정과 같은 다양한 기능을 사용할 수 있다.
- 퀵 링크는 리버싱 과정에서 자주 사용되는 기능을 아이콘 형태로 제공하고 있다. 분석 과정에서 필요한 기능은 퀵 링크에서 대부분 해결할 수 있다.
- 뷰 영역은 분석 화면을 보여주는 영역이다. 디버거를 실행하면 CPU 뷰를 보여주는 것이 기본 설정이다. 어떤 뷰 영역을 사용할지는 메뉴 바 또는 퀵 링크에서 설정할 수 있으며 하나의 화면에서 여러 개의 뷰를 동시에 사용할 수도 있다.
- 상태 바는 현재 진행 중인 작업을 보여준다. 왼쪽에서는 현재 OllyDbg가 어떤 동작을 수행하는지 보여주고 오른쪽에서는 디버거의 실행 상태를 보여주고 있다. Paused와 Running 두 가지 상태가 있으며, 단계적으로 디버깅하고 있는 상태가 Paused 이며 프로그램이 실행 중에 사용자의 입력을 기다리고 있는 상태가 Running 이다.
OllyDbg 기본 설정
메뉴 바에서 [Options] -> [Options...] 를 선택하면 OllyDbg 환경을 설정할 수 있는 메뉴를 확인할 수 있다. 대부분 기본 설정으로 사용하면 되지만, 디버깅을 시작하기 전에 반드시 해야 하는 설정이 있다.
OllyDbg는 실행 파일을 분석한 정보를 udd 확장자를 가진 파일에 저장하고 있다. 디버깅할 때 설정한 브레이크포인트를 다음 디버깅할 때에 똑같이 볼 수 있는 것이 udd파일에 디버깅 정보를 저장하고 있기 때문이다.
udd 파일이 저장될 디렉토리를 별도로 지정하지 않으면 OllyDbg 실행 파일이 저장된 폴더에 같이 저장되기 때문에 나중에 양이 늘어난 udd 파일을 정리할 때 좀 당황스럽게 된다. 따라서 별도로 udd 파일을 저장할 디렉토리를 지정하는 것이 좋다.
OllyDbg는 외부에서 개발된 확장 플러그인을 사용할 수 있도록 지원하고 있다. OllyDbg에서는 기본적인 분석 기능만 지원하고 메모리 덤프와 분석 결과에 대한 그래프 표현하는 것은 외부 플러그인을 이용해야 한다. 디버깅을 시작하기 전에 플러그인을 설치할 디렉토리를 별도로 지정해서 쉽게 관리할 수 있도록 만들어 두는 것이 좋다.
플러그인
플러그인은 OllyDbg에서 지원하지 못하는 기능을 제 삼자가 개발해서 실행 파일 형태로 제공하는 것이다. 인터넷에서 OllyDbg 플러그인을 무료로 내려받을 수 있는 사이트가 많이 있는데 대표적인 사이트가 TUTS4YOU.COM 이다.
https://tuts4you.com/e107_plugins/download/download.php?list.94
하드웨어 정보 보여주기, 어셈블러 분석 정보를 그래프로 표현하기, 메모리에 있는 내용을 파일로 저장하기, MSDN API를 쉽게 검색할 수 있는 기능 등 다양한 플러그인을 확인할 수 있다.
리버싱에 필수적인 OllyDumpEx 플러그인은 꼭 설치하자. 위의 플러그인 사이트에서 받을 수도 있지만 아래의 개발자 사이트에서도 받을 수 있다.
http://low-priority.appspot.com/ollydumpex/
플러그인 설치는 아주 쉽다. 파일 압축을 해제하고, OllyDbg 옵션 메뉴 [Options] -> [Options] -> 'Directories' -> 'Plugin Directory' 에서 설정한 플러그인 폴더에 복사하면 준비가 완료된다. 이제 OllyDbg 프로그램을 종료했다가 다시 실행하면 플러그인이 활성화된다.