본문 바로가기

30./32. Malware Analysis

OllyDbg에서 DLL 파일 디버깅 하기

ollydbg는 실행파일(.exe) 분석작업을 진행한다. 하지만 때론 DLL을 로드하여 리버싱해야하는 상황이 발생한다. 어플리케이션과 연결된 DLL을 디버깅 방법을 설명한다.


- 어플리케이션 실행 파일과 연결된 DLL을 디버깅할 때


Run the principal program (the program use the dll you can debug) and put in EVENTS the mark in STOP IN DLL LOAD. 

Olly stop in the load of any dll, go to view-executables, right click FOLLOW ENTRY and you can view the entry point of the dll, you can put a BP here, or a BPM in the code section of the dll, and you can debug the dll.  


1. ollydbg 실행

2. Debugging Options 열기 (단축키: Alt + O)

3. Events Tab 클릭

4. [v] Pause on new module(DLL)

- 대상 프로그램에서 새로운 모듈(DLL)을 사용할 때 마다 브레이크가 걸린다.

5. Executable modules 창에서 디버깅 하길 원하는 DLL파일이 보일때 까지 F9키를 누른다.

6. 해당 모듈을 찾았으면 Analyse code(Ctrl+A) 한 후 작업





HWP Buffer overfloew 취약점 분석




※ 잉카 인터넷 시큐리티 대응센터 분석팀 PDF 참조.




EtcDocGroup.DFT를 찾기위해 HWP.exe 분석하던중 DLL을 찾으면 바로 찾을 수 있으므로  DLL로딩 될 때마다 Pause를 시켜 모든 모듈을 본았다.

버전 : Ollydbg201g



DLL이란? [Dynamic Linking library]

 OS/2, 윈도즈 등의 운영 체계(OS) 본래 기능으로, 소프트웨어의 루틴을 몇 개의 파일로 나누어 디스크에 두고 필요한 것만을 실행 메모리에 실어서 사용하기 위한 파일. DLL로 사용되는 파일은 확장자가 ‘dll’로 되어 있기 때문에 ‘DLL 파일’이라고 부른다. DLL의 장점은 루틴을 공통으로 사용하는 것이다. 루틴의 함수 집단을 자료집이라고 하는데, 보통 실행 파일을 작성할 때 자료집을 포함해서 컴파일하는 경우가 많다. 그러나 이 방법은 동일 루틴을 다수의 실행 파일이 갖게 되어 비효율적이다. DLL은 다수의 실행 파일에 공유될 수 있기 때문에 디스크 용량이나 메모리를 절약할 수 있다. 또 프로그램을 수정하려는 경우, DLL 파일만을 수정함으로써 완료되는 경우도 있다. 윈도즈 등에서는 OS 기능은 물론 DLL을 애플리케이션과 공유할 수도 있으나, DLL 파일 등의 애플리케이션이 공유되고 있는지는 이용자 수준에서는 판단하기가 어렵다

 네이버 사전