바이트 오더링은 데이터를 저장하는 방식을 말하며 디버깅을 할때 필요한 기본 개념이다.

이 방식은 크게 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 두 방식이 있다.

 

 

더보기

 

BYTE                 b          = 0x12;

WORD              w          = 0x1234;

DWORD           dw         = 0x12345678;

char                str[ ]       = "abcde";

 

 

엔디언 방식에 따라서 데이터를 저장하는 방식이 달라진다.

TYPE Name SIZE Big Endian Little Endian
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]

※ [61]은 'a'를 ASCII 문자로 나타낸것이다. 문자열의 마지막은 NULL로 끝나야 한다.

 

빅 엔디언 방식은 순착적인 반면 리틀 엔디언 방식은 역순으로 나타난다.(바이트 자체는 정상적인 순서로 저장된다.)

2바이트 혹은 4바이트와 같이 멀티 바이트인 경우에 바이트가 역순으로 저장되는 것이다.

str 문자열은 char 배열이기 때문에 바이트를 하나씩 연속해서 저장한다. 따라서 Endian 형식과 상관이 없다. 

'Basic Concepts > Reverse Engineering' 카테고리의 다른 글

가상메모리와 페이징  (0) 2020.02.01
IA-32(Intel Architecture 32) Register  (0) 2020.01.24

+ Recent posts