반응형
이전에 사용하던 Olly 가 플러그인 충돌과 사용상에 불편함이 있어서 간소화 했다.

필요없는 플러그인은 제외하고 어셈코드에 하이라이트 기능으로 보기 쉽게 하였다..

기본 Olly에 몇가지 플러그인이 포함되어 있고 ini 파일 수정만 한정도이ㄷ.


이것저것 훨 가벼워지고 에러없이 잘 작동한다.. ㅎㅎ
반응형


Unable to write to memory of debugged process (7FFDA002..7FFDA002).

Ollydbg 실행시에 위와 같은 에러가 뜨는 경우가 있다. 적잖이 짜증이 난다.

이는 Ollydbg 플러그인 설정이 잘못 되어 있기 때문이다.

Ollydbg 탭에 보면 Plugins > OllyHelper > Options..

Auto Clear the debug bit.  에 체크가 되어있다면 체크를 풀어주면 된다.

반응형

프로그램 디버깅 하고 분석할 때 아주 유용한 도구입니다.

OllyDBG는 Win32 API에 최고. MFC 관련은 IDA PRO Disassemble 추천.

 

OllyDbg가 디버거로써는 뛰어나지만, reverse analyzing 면에서는 IDA Pro 가 독보적이죠~

OllyDbg는 Win32 API 인 경우 충실히 label (ex: CreateFile, ExitProcess, etc) 을 달아주지만,
RunTime/MFC library 인 경우 거의 label (ex: printf, strcpy, CString::CString() etc) 정보를 주지 못합니다.


소개하는 플러그인은 IDA Pro에서 자동으로 추가되는 label 과 comment 까지 그대로 OllyDbg 에서 쓸 수 있도록 도와줍니다.


사용법은


1. 플러그인 설치
2. IDA Pro 실행 -> 원하는 파일 오픈  (=> IDA가 욜씨미 분석을 하겠죵)
3. 맵파일 생성 : File\Produce file\Create Map file 메뉴 선택 => 나타나는 dialog 의 모든 체크박스에 체크 해주시고...
4. OllyDbg 실행 -> 동일 파일 오픈
5. 맵파일 로드 : Plugins\MapConv\Replace label 메뉴 선택 => 파일오픈 dialog에서 해당 *.map 파일 선택

 

OllyDbg 단축키

출처: http://home.t-online.de/home/Ollydbg/quickst.htm

Ctrl+F2 프로그램 재실행
Alt+F2 프로그램 닫기
F3 새 프로그램 열기
F5 활성화 되어 있는 윈도우 최대화, 혹은 원복
Alt+F5 olly 디버거 윈도우를 항상 위로
F7 Step into (함수 진입)
Ctrl+F7 Animate into (entering functions)
F8 Step over (executing function calls at once)
Ctrl+F8 Animate over (executing function calls at once)
F9 실행
Shift+F9 Pass exception to standard handler and run
Ctrl+F9 Execute till return
Alt+F9 Execute till user code
Ctrl+F11 Trace into
F12 Pause
Ctrl+F12 Trace over
Alt+B Open Breakpoints window
Alt+C Open CPU window
Alt+E Open Modules window
Alt+L Open Log window
Alt+M Open Memory window
Alt+O Open Options dialog
Ctrl+T Set condition to pause Run trace
Alt+X Close OllyDbg
F2 Toggle breakpoint
Shift+F2 Set conditional breakpoint
F4 Run to selection
Alt+F7 Go to previous reference
Alt+F8 Go to next reference
Ctrl+A Analyse code
Ctrl+B Start binary search
Ctrl+C Copy selection to clipboard
Ctrl+E Edit selection in binary format
Ctrl+F Search for a command
Ctrl+G Follow expression
Ctrl+J Show list of jumps to selected line
Ctrl+K View call tree
Ctrl+L Repeat last search
Ctrl+N Open list of labels (names)
Ctrl+O Scan object files
Ctrl+R Find references to selected command
Ctrl+S Search for a sequence of commands
Asterisk (*) Origin
Enter Follow jump or call
Plus (+) Go to next location/next run trace item
Minus (-) Go to previous location/previous run trace item
Space ( ) Assemble
Colon (:) Add label
Semicolon (;) Add comment
ctrl+위, 아래 화살표키 디스어셈블 위치 지정


소프트아이스와 함께 가장 많이들 사용하시는 올리디버거입니다. 소프트아이스와 같은 커널 디버거는 아니지만 사용하기 쉽고 기능도 많들으며 보기 좋은 인터페이스를 가지고 있습니다.

※ 제가 수정한 ollydbg.ini.fix를 사용하시면 좀 더 음침한(?) 인터페이스가 됩니다. ^^;

※ 한가지 주의할 점은 다음과 같습니다.
디 버그 모드로 빌드할 경우, *.exe 파일과 함께 *.pdb 파일이 생성되는데 (물론, 릴리즈 모드로 빌드하여도 옵션을 설정하면 *.pdb 파일을 생성할 수 있습니다.) 이것은 심볼(Symbol) 파일로 OllyDbg에서는 이 파일을 참조하여 디버깅시 사용자에게 추가적인 정보를 제공합니다. 그런데 이 파일이 위치하는 디렉토리의 경로명 중에 공백이 있을 경우 OllyDbg에서는 찾질 못하네요. 따라서 디렉토리 명에 공백이 들어가지 않도록 주의하시기 바랍니다. 소스 파일의 경로 또한 마찬가지입니다.

※ 버그가 있군요.
위 내용도 그렇고 올리에서는 디버깅 심볼 관련 파일들의 패스를 잘 찾지 못하는 것 같습니다. 소스 파일의 경우 패스가 길어지니까 올리에서는 패스를 엉뚱하게 인식하네요. 아마 버그인듯 합니다. Ollydbg Users Forum에는 그런 버그 리포트가 없지만요... -_-ㅋ 암튼 해결책은 간단한 패스에서 처음부터 개발작업을 하던지 빌드할 때만 간단한 패스로 옮겨와서 빌드해야 할 것입니다.

 

이 프로그램을 가지고 원래 우리가 작성한 프로그램을 역 어셈블 할 수 있다.


처음 프로그램을 설치하고 option 의 appearance에서 두개의 폴더설정을 현재의 프로그램이 있는 폴더를 설정한다.


그리고 visual c++의 project를 설치할 때 release mode와 minimize size를 해서 프로젝트를 만들어준다.


cf ) Minimize size와 Release Mode 그리고 Maximize speed와 Release Mode의 차이점....

speed와 size의 Trade-off가 된다. 이것은 이 util을 가지고 프로그램의 내부를 들여다보면 알 수 있다.

+ Recent posts