※ 빅 엔디언(Big Endian) : 데이터를 저장할 때 사람이 보는 방식과 동일하게 앞에서부터 순차적으로 저장
※ 리틀 엔디언(Little Endian) : 데이터를 저장할 때 역순으로 저장한다. 즉, 저장되는 바이트의 순서가 뒤집어져 있다.
1. 바이트 오더링 예시
BYTE b = 0x12;
WORD w = 0x1234;
DWORD dw = 0x12345678;
char str[] = "abcde";
- 2바이트 이상의 크기를 가진 자료형을 저장할 때(WORD, DWORD), 위처럼 차이가 발생함을 알 수 있다.
- 1바이트 자료형인 BYTE와 문자열인 str은 Endian 형식에 상관없이 동일하다.
- 문자열이란 char배열이기 때문에 각 바이트를 하나씩 연속한다고 생각하면 되기 때문에 동일한 순서로 저장된다.
2. 빅 엔디언 특징
- 사람이 보기에 직관적이다.
- 대형 UNIX 서버에 사용되는 RISC 계열의 CPU에서 많이 사용된다.
- 네트워크 프로토콜에 사용된다.
- 따라서 애플리케이션 개발에 사용된 데이터를네트워크로 송수신할 때, 리틀 엔디안으로 작성되었다면
빅 에디안 형식으로 타입을 변경해야한다.
3. 리틀 엔디언 특징
- intel x86 CPU에서 사용된다.
- 산술 연산과 데이터의 타입이 확장/축소될 때 더 효율적이다.
'리버싱' 카테고리의 다른 글
OllyDbg를 이용한 리버싱 기초 (0) | 2023.03.21 |
---|---|
리버싱 개요 (0) | 2023.03.21 |