Reversing/Reversing2017. 6. 27. 03:47

OllyDbg 기본 명령어

 

Restart [Ctrl+F2]: 처음부터 디버깅 다시 시작 (디버깅을 당하는 프로세스를 종료하고 재실행)

Step Into [F7]: 하나의 OP Code 실행(CALL 명령을 만나면, 그 함수 코드 내부로 따라 들어감)

Step Over [F8]: 하나의 OP Code 실행(CALL 명령을 만나면, 따라 들어가지 않고 그냥 함수 자체를 실행함)

Execute till Return [Ctrl+F9]: 함수 코드 내에서 RETN 명령어까지 실행(함수 탈출)

Execute till Cursor [F4]: 커서의 위치까지 실행 (디버깅 하고 싶은 위치까지 바로 갈 수 있음)

 

※ OllyDbg를 켜면 동작중인 디버거가 발견되었습니다. 디버거를 종료한 후 다시 실행하시기 바랍니다라는 경고문구가 뜨는 경우가 있는데, 제어판에서 Delfino를 언인스톨해주면 정상적으로 OllyDbg를 사용할 수 있다.

 

 

OllyDbg 디버거 동작 명령

 

Go to [Ctrl+G]: 원하는 주소로 이동(코드/메모리를 확인할 때 사용, 실행은 되지 않음)

Execute till Cursor [F4]: cursor 위치까지 실행(디버깅하고 싶은 주소까지 바로 갈 수 있음)

Comment [;]: 코멘트 추가

User-defined Comment: 마우스 우측 메뉴 Search for User-defined Label

Set/Reset Breakpoint [F2]: BP설정/해제

Run [F9]: 실행(BreakPoint가 걸려있으면 그 지점에서 실행이 정지)

Show the Current EIP [*]: 현재 EIP의 위치를 보여줌

Show the previous Cursor [-]: 직전 커서의 위치를 다시 보여줌

Preview CALL/JMP Adress [Enter]: 커서가 CALL/JMP등의 명령어에 위치해 있다면, 해당 주소를 따라가서 보여줌(실행되지 않음, 간단히 함수의 내용을 확인할 때 유용)

Edit Data [Ctrl+E]: 데이터 편집

Assemble [Space]: 어셈블리 코드 작성 및 수정


 

 

Assembly 기초 명령어

 

CALL _ADDR_: ADDR 주소의 함수를 호출

JMP _ADDR_: ADDR 주소로 점프

PUSH _VALUE_: 스택에 VALUE 저장

RETN: 스택에 저장된 복귀 주소로 점프

INC _REG_: 해당 레지스터(REG)에 값을 1 증가

DEC _REG_: 해당 레지스터에 값을 1 감소

JMP SHORT _ADDR_: ADDR 주소로 점프(짧은 거리, JMP와 다른점은 추후 서술)

CMP A B: A와 B의 값을 비교

JE _ADDR_: Jump if Equal. 직전 CMP문에서 같으면 ADDR 주소로 점프, 아니면 그대로 진행

 

 

용어

 

VA: Virtual Address, 프로세스의 가상 메모리

OP Code: Operation Code, CPU 명령어. Byte Code라고도 함.

PE: Portable Executable, Windows 실행파일(exe, dll, sys )

 

'Reversing > Reversing' 카테고리의 다른 글

Calling Convention (함수 호출 규약)  (0) 2017.07.02
Abex’ Crackme #2  (0) 2017.06.30
Stack Frame  (0) 2017.06.27
Abex' Crackme #1  (0) 2017.06.27
Hello, World! 디버깅하기  (0) 2017.06.26
Posted by BinZIP