리버싱

1부 3장 리틀 엔디언 표기법

오브의 별 2022. 4. 23. 12:38
반응형

안녕하세요, 오브입니다.

오늘은 

Hello World! 리버싱

3.1. 바이트 오더링

  • 바이트 오더링: 데이터 저장 방식. 디버깅 시 필요
  • 빅 엔디언: 2 바이트 이상의 크기의 자료형 저장 시 앞에서부터 순차 저장
  • 리틀 엔디언: 역순으로 저장
  • 문자열은 형식에 상관없이 동일하게 저장

3.1.1. 리틀 엔디언 & 빅 엔디언

  • 빅 엔디언- 직관적. 대형 UNIX 서버에 사용되는 RISC 계열의 CPU, 네트워크 프로토콜에 사용.
  • 리틀 엔디언- Intel x86 CPU에서 사용. 산술 연산과 데이터 타입의 확장 및 축소될 때 더 효율적

3.1.2. OllyDbg에서 리틀 엔디언 확인

  • OllyDbg에서 ‘LittleEndian.exe’ 열기
  • [Ctrl+G]로 ‘401000’ 주소로 가기(메인 함수임)
  • 40AC40(b), 40AC44(w), 40AC48(dw), 40AC4C(str)
  • [Ctrl+G]로 ‘40AC40’ 주소로 가기
  • w, dw 값들이 리틀 엔디언 형식으로 저장됨
    • 바이트 오더링: 데이터 저장 방식. 디버깅 시 필요
    • 빅 엔디언: 2 바이트 이상의 크기의 자료형 저장 시 앞에서부터 순차 저장
    • 리틀 엔디언: 역순으로 저장
    • 문자열은 형식에 상관없이 동일하게 저장
    3.1.1. 리틀 엔디언 & 빅 엔디언
    • 빅 엔디언- 직관적. 대형 UNIX 서버에 사용되는 RISC 계열의 CPU, 네트워크 프로토콜에 사용.
    • 리틀 엔디언- Intel x86 CPU에서 사용. 산술 연산과 데이터 타입의 확장 및 축소될 때 더 효율적
    3.1.2. OllyDbg에서 리틀 엔디언 확인
    • OllyDbg에서 ‘LittleEndian.exe’ 열기
    • [Ctrl+G]로 ‘401000’ 주소로 가기(메인 함수임)
    • 40AC40(b), 40AC44(w), 40AC48(dw), 40AC4C(str)
    • [Ctrl+G]로 ‘40AC40’ 주소로 가기

TYPE Name SIZE 빅 엔디언 리틀 엔디언
BYTE b 1 [12] [12]
WORD w 2 [12][34] [34][12]
DWORD dw 4 [12][34][56][78] [78][56][34][12]
char[] str 6 [61][62][63][64][65][00] [61][62][63][64][65][00]
  • w, dw 값들이 리틀 엔디언 형식으로 저장됨
반응형