Reversing&Write up/Study

[HandRay] OllyDbg 사용법과 Data Expression

Jubil 2018. 1. 11. 10:23
반응형

Window XP를 쓰는 이유 : ASLR이 없기 때문임.


Assembly : 기계어와 1대 1 대응. 프로그래밍 언어 중 가장 기계어와 가까움 (저급 언어)


OllyDbg

  • code 영역 : 코드가 기계어와 어셈블리 명령으로 보임.

  • Register 영역 : Register를 볼 수 있음.

  • Dump 영역 : 메모리를 볼 수 있음.

  • Stack 영역 : 현재 Stack 메모리의 값을 확인할 수 있음.


  • ;(세미콜론) : 주석을 달 수 있음.

  • F8 : Step Over 한 줄씩 내려가지만 함수를 다 돌리고 넘어감..

  • F7 : Step Into 한 줄씩 내려가지만 함수 안으로 진입함.

  • 원하는 위치 클릭 + F4 : 원하는 위치로 한 번에 이동.

  • F2 : Break Point 설정 / 해제.

  • F9 : 쭉 실행하다가 Break Point를 만나면 멈춤.

  • Ctrl+G : 원하는 주소의 메모리를 볼 수 있음.


  • Release 모드 설정 : main 함수를 호출하는 패턴을 확인하기 위함.

  • Project -> Setting -> C/C++ Optimizations Default : 최적화 옵션을 Default로 지정.


  • Stub code : main 함수 실행하기 전, 준비 코드.

  • 콘솔 창을 모니터링 하면서 main 함수를 찾을 수 있음.

  • 함수 프롤로그, 에필로그 : 함수의 시작과 끝.


  • MOV [Destination], [Source] : Source의 값을 Destination으로 복사함.

  • MOVS : 문자열을 복사할 때 사용. ESI가 가르키는 주소에 있는 데이터를 EDI가 가리키는 주소로 복사함.

  • ADD [Destination], [Source] : Destination = Destination + Source

  • SUB [Destination], [Source] : Destination = Destination - Source

  • PTR : 자료형을 재정의 해줌. (자료를 다룰 때 사용, 혼자 쓰이지 않음)

  • XOR [Destination], [Source] : Destination = Destination ^ Source


Data Expression

  • BYTE : 1byte

  • WORD : 2byte

  • DWORD : 4byte

  • QWORD : 8byte


반응형