-
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 ์์ญ์ ์นจ๋ฒ
'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 ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 3 :: Endian (0) 2020.07.08 REVERSING ์์ํ๊ธฐ - ๊ธฐ์ด ๊ฐ๋ 2 :: ๋ ์ง์คํฐ(Register) (0) 2020.07.08