-
REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 3 :: EndianSECURITY/REVERSING 2020. 7. 8. 17:13
Endian = Endianness
: ์ปดํจํฐ์ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐฐ์ดํ๋ ๋ฐฉ์
(Byte Order : byte ๋ฐฐ์ดํ๋ ๋ฐฉ๋ฒ)
* ์ค์ํ ์ด์
๋๋ผ๋ง๋ค ์ธ์ด, ์ฑ ๋ฑ ์ด๋์๋ถํฐ ์ฝ๋์ง(์ผ/์ค) ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ์ ์์ด์๋ ์ด๋์๋ถํฐ ์ฝ์์ง์ ๋ํด ๋ช ํํ ๊ท์น์ ์ ํด๋์ด์ผ ํ๋ค.
* ์ ๋
์กฐ๋์ ์ค์ํํธ์ <๊ฑธ๋ฆฌ๋ฒ ์ฌํ๊ธฐ> ์ ์์ธ๊ตญ ๋ฆด๋ฆฌํผํธ ์ด์ผ๊ธฐ์์ ๋ฌ๊ฑ์ ๊นฐ ๋ ๋ญํญํ ๋(big-end) ๋ฅผ ๋จผ์ ๊นจ๋ ์ฌ๋๋ค(๋น ์๋์ธ)๊ณผ ๋พฐ์ฃกํ ๋(little-end)๋ฅผ ๋จผ์ ๊นจ๋ ์ฌ๋๋ค(๋ฆฌํ ์๋์ธ) ์ฌ์ด์ ๊ฒฉ๋ก ์ด ๋ฒ์ด์ง ๋ฐ์ ๋ฐ๋ก ๊ฒ์ด๋ค.
- Big Endian
: ํฐ ๋จ์์ ๋ฐ์ดํธ๊ฐ ์์ ์ค๋ ๋ฐฉ๋ฒ
ex. 0x34642345 : 34 64 23 45
์ฌ๋์ด ์ซ์๋ฅผ ์ฝ๊ณ ์ฐ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊ทธ๋ฅผ ํธํ๊ฒ ํด์ฃผ๋ ๊ฒฝํฅ์ด ์๋ค.
ํ์ง๋ง ํ์ ๋ฐ์ดํธ๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ณ์ ์ฃผ์์ 2๋ฐ์ดํธ(16 bit) ๋๋ 3๋ฐ์ดํธ(8 bit) ๋ฅผ ๋ํด์ผ ํ๋ค.
* 'ํฐ ๋จ์์ ๋ฐ์ดํธ' ๋ผ๋ ๊ฒ์ ์ด์ง์ ์์ ์์ ๋ณด์์ผ ํ๋ค.
0x123456 ์ด๋ผ๋ 16์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋, ์ฃผ์ ์์ผ๋ก๋ ๋ฎ์ ์ฃผ์ -> ๋์ ์ฃผ์๋ก 12 34 56 ์ด ์ ์ฅ๋๋ค.
ํ์ง๋ง ์ด์ง์์์๋ ์์ ๋นํธ๋ก ๊ฐ์๋ก ๊ฐ์ด ์ปค์ง๋ค.
์ฆ, 12 34 56 ์ ๋จ์๋ 2^23 , ... , 2^1, 2^0 ์ด ๋๋ค!
- Little Endian
: ์์ ๋จ์์ ๋ฐ์ดํธ๊ฐ ์์ ์ค๋ ๋ฐฉ๋ฒ
ex. 0x34642345 : 45 23 64 34
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ ํ์ ๋ฐ์ดํธ๋ค๋ง ์ฌ์ฉํ ๋ ๋ณ๋์ ๊ณ์ฐ์ด ํ์ ์๋ค.
ex. 0x 3B :: 3B 00 00 00
์ฆ, ํ์ ๋ฐ์ดํธ๋ฅผ ์ป๊ธฐ ํธํ๋ค.
์ด ๋์ด ๋ฐฐ์ด์์์ ์ ์ฅ์ ์ ์ฅ ๋ฐฉ์์ด ๋ค๋ฅธ๊ฑฐ์ง ์ถ๋ ฅํด๋ณด๋ฉด ๋๊ฐ์
4byte ์ฉ ๋์ด์ ์ ์ฅํ๋ค. word ๋จ์๋ผ์ !! 32 bit~
- ๊ทธ๋ฆฌ๊ณ ๊ฐ endian ๋ค์ ํ์ฉํ๋ ๋ถ์ผ
Big Endian Little Endian UNIX ์์ ์ฌ์ฉํ๋ RISC ํ๋ก์ธ์์์ ์ฌ์ฉ Intel ๊ณ์ด์ ํ๋ก์ธ์์์ ์ฌ์ฉ ๋คํธ์ํฌ์์ ์ฌ์ฉ ์์์๋ถํฐ Stack ์ PUSH ๋ค์์๋ถํฐ Stack ์ PUSH (๋ ๋๋ฆฌ๋ค) ๋น๊ต ์ฐ์ฐ์ ์ฉ์ด ์์น ์ฐ์ฐ์ ์ฉ์ด (CARRY ๋ฐ์ ์) ํ์ ์ ์ฝ๊ฑฐ๋ ํ๋ณํ ์ ์ฉ์ด Littel Endian ์ ์์ ์๋ถํฐ ์ฌ๋ฆผ์๋ฅผ ํ๋จ ํ ํฐ ์๋ฆฟ์๋ฅผ ๊ณ์ฐํ๋ฏ๋ก ์์น ์ฐ์ฐ์ด ๋น ๋ฅด๋ค.
๋ฐ๋ฉด ์ซ์๋ฅผ ๋น๊ตํ ๋ ํฐ ์๋ฆฟ์๋ถํฐ ๋น๊ตํ์ฌ ์์์๋ถํฐ Stack ์ PUSH ํ๋ Big Endian ์ด ๋ ๋น ๋ฅด๋ค.
์ค๋๋ ์๋ ํ๋ก์ธ์๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํธ๋ฅผ ๋์์ ์ฝ์ด๋ค์ฌ ๋ง์ ์ ์ํํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก ๋ Endian ์ฌ์ด์ ์ฌ์ค์ ์ฐจ์ด๊ฐ ์๋ค๊ณ ํ ์ ์๋ค.
'SECURITY > REVERSING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 01 ๋ช ๋ น์ด (0) 2020.07.14 REVERSING ์์ํ๊ธฐ - VMware & Ubuntu Linux 32 bit and 64 bit ์ค์นํ๊ธฐ (1) 2020.07.09 REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 4 :: ์ด์ ๋ธ๋ฆฌ ์ธ์ด (0) 2020.07.08 REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 2 :: ๋ ์ง์คํฐ(Register) (0) 2020.07.08 REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 1 :: ๋ฉ๋ชจ๋ฆฌ ์์ญ(RAM) (0) 2020.07.08