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 |