ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • REVERSING ์‹œ์ž‘ํ•˜๊ธฐ - ๊ธฐ์ดˆ ๊ฐœ๋…1 :: ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(RAM)
    SECURITY/REVERSING 2020. 7. 8. 15:07

    ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(RAM)

    RAM (Random Access Memory)

    : ๋ฐ˜๋„์ฒด ํšŒ๋กœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ฆฌ๋กœ๋กœ, ์ฃผ๊ธฐ์–ต ์žฅ์น˜์ด๋‹ค.

     ์–ด๋Š ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ ์ง€ ์ ‘๊ทผํ•˜๋Š” ๋ฐ ๋™์ผํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. (cf. ํ•˜๋“œ ๋””์Šคํฌ, ํ”Œ๋กœํ”ผ ๋””์Šคํฌ ๋“ฑ)

     

     

     

     

    - Code ์˜์—ญ

    : ์ฝ”๋“œ ์ž์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ. Hex / BIN ํŒŒ์ผ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.

     ํ”„๋กœ๊ทธ๋žจ ๋ช…๋ น์ด ์œ„์น˜ํ•˜๋Š” ๊ณณ์œผ๋กœ , ๊ธฐ๊ณ„์–ด๋กœ ์ œ์–ด๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค.

     'read only' ์˜์—ญ์œผ๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€. ์“ฐ๊ธฐ ๋“ฑ์˜ ๋ณ€๊ฒฝ ์ž‘์—…์ด ๋“ค์–ด์˜ค๋ฉด 'access violation' ์ด ๋ฐœ์ƒํ•œ๋‹ค.

     

    ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์œ ์ง€๋˜๋Š” ์˜์—ญ์ด๋‹ค.

     

    - Data ์˜์—ญ

    : ์ „์—ญ๋ณ€์ˆ˜(global), ์ •์ ๋ณ€์ˆ˜(static), ๋ฐฐ์—ด(array), ๊ตฌ์กฐ์ฒด(structure) ๋“ฑ์„ ์ €์žฅ

     ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋Š” BSS(Block Stated Symbol) ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.

     -> Data ์˜์—ญ์ด ๋Ÿฐํƒ€์ž„ ์ด์ „์— ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด, BSS ๋Š” ๋Ÿฐํƒ€์ž„ ์ดํ›„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ

         (-> BSS ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ณต๊ฐ„์ ์œผ๋กœ ๋ณด๋ฉด ๋” ํšจ์œจ์ ์ด๊ธฐ๋„ ํ•˜๋‹ค)

     

    ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์ƒ์„ฑ๋˜๊ณ  ์ข…๋ฃŒ๋˜๋ฉด ์‹œ์Šคํ…œ์— ๋ฐ˜ํ™˜ํ•œ๋‹ค.

    static ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ๊ณต๊ฐ„๋งŒ ํ• ๋‹น๋˜๊ณ , ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

     

    ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์œ ์ง€๋˜๋Š” ์˜์—ญ์ด๋‹ค.

     

    ์ฃผ์˜! ํ•จ์ˆ˜ ๋‚ด (main ํ•จ์ˆ˜ ํฌํ•จ) ๋ณ€์ˆ˜๋“ค์€ ์ด๊ณณ์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค. -> Stack 

     

     

    - Heap ์˜์—ญ

    : ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•  ๋•Œ ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ

     ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ’์— ์˜ํ•ด์„œ๋งŒ ์ฐธ์กฐ๋˜๊ณ  ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ์ด๋‹ค.

     

    -> malloc, new ๋“ฑ๋“ฑ

     

     

     

    - Stack ์˜์—ญ

    : ํ”„๋กœ๊ทธ๋žจ์ด ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž„์‹œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

     ์ง€์—ญ๋ณ€์ˆ˜(local), ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด ๊ฐ’ ๋“ฑ ์ž ์‹œ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์˜์—ญ์ด๋‹ค.

     ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ๋˜๊ณ , ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ์‹œ์Šคํ…œ์— ๋ฐ˜ํ™˜๋œ๋‹ค. 

     

    Last In First Out !!

     

    ๋‹ค๋ฅธ ์˜์—ญ๋“ค์€ ํ•˜์œ„ ์˜์—ญ์œผ๋กœ๋ถ€ํ„ฐ ํ• ๋‹น๋˜์ง€๋งŒ Stack ์˜์—ญ์€ ์ƒ์œ„ ์˜์—ญ๋ถ€ํ„ฐ ํ• ๋‹น๋œ๋‹ค.

     

    * Heap ์˜์—ญ์ด ์ปค์ง€๋ฉด Stack ์˜์—ญ์ด ์ž‘์•„์ง€๊ฒŒ ๋˜๊ณ , ์—ญ๋„ ์„ฑ๋ฆฝํ•œ๋‹ค.

      -> Heap Overflow : Heap ์ด Stack ์˜์—ญ์„ ์นจ๋ฒ”

      -> Stack Overflow : Stack ์ด Heap ์˜์—ญ์„ ์นจ๋ฒ”

    ๋Œ“๊ธ€

Designed by Tistory.