티스토리 뷰

이전 포스팅에서도 언급 하였듯이,
<리버스 엔지니어링:역분석 구조와 원리>를 공부하고 정리할 겸 포스팅한 글입니다.

리버스 엔지니어링을 위해서는 디버깅 툴이 필요합니다.
윈도우 환경의 리버스 엔지니어링을 위해서 가장 많이 사용하는 툴은 올리디버거(OllyDbg)입니다.
(참고로 리눅스 환경에서는 gnu debugger, 즉 gdb를 사용합니다.)



올리디버거는 http://www.ollydbg.de 에서 구할 수 있습니다.


설치 후, 해당 폴더에서 Plugin 폴더와 UDD 폴더를 만듭니다.
그리고 BOOKMARK.DLL과 Cmdline.dll은 Plugin폴더로 이동시킵니다.
Option->Appearance->Directories를 열고 디렉토리의 경로를 지정한 후에 올리디버거를 다시 실행하면 플러그인 기능을 적용시킬 수 있습니다.

올리 디버거의 경우에는 마치 파이어폭스나 크롬의 부가 기능처럼 dll파일을 만들어 기능을 추가할 수 있습니다.
그것을 플러그인(Plugin)이라고 하는데요. 다양한 종류가 있으니 검색을 활용하시길.
(자주 사용되는 플러그인을 파일첨부 하였습니다.)

※ 주의 : 2.0 버전을 설치할 경우에 플러그인이 호환이 되지 않는 상황이 생길 수 있습니다.
             확실한 호환을 위해서는 1.10 버전을 사용하세요.

그리고 책에 보면 win32.hlp파일을 받아서 올리디버거와 설정하는 부분이 있는데요.
윈도우 7의 경우에는 해당 도움말 파일의 양식이 만료되었다고 하면서 적용되지 않더군요.. ㅠㅠ

ollydbg.ini파일을 수정하여 옵션 값을 설정할 수 있습니다. 

메뉴 중에 가장 중요한 부분은 <Debug>입니다. 실제 디버깅을 하는 동작들에 대한 메뉴입니다.
Step into는 call 또는 rep 명령어 만났을 때 순서대로 진행하지만,
Step over는 해당 단계를 건너띄게 됩니다.
Execute till return은 함수에서 리턴 전까지 실행합니다.

Comment기능을 이용해 주석을 달 수도 있습니다.

Breakpoint는 실행 중 breakpoint를 만났을 때 해당 프로그램의 실행을 그 시점에서 중지시킵니다.

Search for를 이용해 검색을 할 수 있습니다.




댓글