ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REVERSING ์‹œ์ž‘ํ•˜๊ธฐ - ๊ธฐ์ดˆ ๊ฐœ๋… 3 :: Endian
    SECURITY/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 ์‚ฌ์ด์— ์‚ฌ์‹ค์ƒ ์ฐจ์ด๊ฐ€ ์—†๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    ๋Œ“๊ธ€

Designed by Tistory.