바이트 오더링
바이트 오더링은 데이터 저장방식을 말한다.
바이트 오더링은 크게 두가지 방식이 존재하는데 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian)이다.
빅 엔디언은 UNIX 서버에 사용되는 RISC 계열의 CPU에서 사용된다. 또한 네트워크 프로토콜에서도 빅 엔디언이 사용된다.
리틀 엔디언은 Intel x86-x64 CPU에서 사용된다.
간단 예제
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] |
디버깅을 통한 리틀 엔디언 확인
위 코드를 빌드 후 ollyDbg를 이용하여 분석하였다.
main() 함수로 이동하여 전역변수의 주소를 확인 후 살펴 보았다.

40AC40(b)

40AC44(w)

40ㅈAC48(dw)

40AC4C(str)
