굳이 통일하지 않고 두 개를 쓰는 이유
: CPU 설계 방식에 따라 데이터를 가장 낮은 단위부터 처리하는 게 유리할 때가 있고, 높은 단위부터 처리하는 게 유리할 때가 있음.
사용 예시
설명에 앞서 예시를 한 번에 보고 가는 게 이해에 훨씬 큰 도움이 될 것 같아서 예시를 먼저 들겠음.
ex) 0x406299294961
빅 엔디안 : 40 62 99 29 49 61
리틀 엔디안 : 61 49 29 99 62 40
빅 엔디안
순서 그대로 저장.
장점
- 가독성 : 사람이 읽는 순서와 똑같음
- 비교 연산 : 숫자를 읽을 때 앞에서부터 읽어서 빠르게 처리 가능
단점
- 연산할 땐 하위 바이트부터 해야 해서 비효율적임
리틀 엔디안
작은 바이트부터 저장.
장점
- 산술 연산 : 하위 바이트부터 계산하므로 효율적임
- 유연한 형변환 : 4바이트 정수의 하위 1바이트만 읽고 싶을 때, 주소값을 바꾸지 않고 그대로 읽으면 됨.
단점
- 읽을 때 불편함.
보안 관점에서의 빅 엔디안과 리틀 엔디안
: 보안의 관점에서 엔디안은 저장 방식을 넘어서 취약점을 찾고, 데이터를 복구하는 결정적인 단서가 될 수 있음.
- 메모리 오염 공격 - 엔디언에 맞게 주소값을 입력하지 않으면 페이로드가 작동하지 않아 시스템 크래시나 공격 실패가 될 수 있음. (CTF의 경우엔 본인이 실패하는 거고, 보안의 경우는 해커가 실패한 거라 알 수 있음)
- 엔디안 불일치 - 호스트와 네트워크 간 엔디언 변환을 빠뜨리면 IDS/방화벽이 침입 탐지 규칙을 전혀 인지하지 못하게 됨
- 리버싱과 악성코드 분석 - 바이트 순서를 잘못 해석하면 C2 서버 주소나 암호화 키 등의 핵심 단서를 엉뚱하게 파악하게 됨
- 안티 디버깅과 혼란 기법 - 의도적으로 꼬아놓은 엔디안 로직은 분석 도구의 자동화를 방해하고, 악성행위를 은닉하는 방패가 될 수 있음.
'SWUFORCE > 워게임' 카테고리의 다른 글
| [추가 공부]diff (0) | 2026.02.17 |
|---|---|
| whatsdifferent (0) | 2026.02.17 |
| littlevsbig (0) | 2026.02.10 |
| Hefty Image (0) | 2026.02.09 |
| [Dreamhack]Exercise: SSH (0) | 2026.01.30 |