리버싱
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 바이트 이상의 크기의 자료형 저장 시 앞에서부터 순차 저장
- 리틀 엔디언: 역순으로 저장
- 문자열은 형식에 상관없이 동일하게 저장
- 빅 엔디언- 직관적. 대형 UNIX 서버에 사용되는 RISC 계열의 CPU, 네트워크 프로토콜에 사용.
- 리틀 엔디언- Intel x86 CPU에서 사용. 산술 연산과 데이터 타입의 확장 및 축소될 때 더 효율적
- 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 값들이 리틀 엔디언 형식으로 저장됨
반응형