Jastes 2022. 5. 12. 16:18


Computer Architecture

 

Computer Architecture

1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋Š” PC์„ค๊ณ„๋ฅผ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ , ์ด๋“ค์„ ์กฐ๋ฆฝํ•ด์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์™„์„ฑํ•œ ๊ฒƒ์ด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ! ๋”๋ณด๊ธฐ ๐Ÿ“œ๊ฐœ์š”๐Ÿ“œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture)

dystopia050119.tistory.com

ํ€ด์ฆˆ๋Š” ๋”ฑํžˆ ์„ค๋ช… ์•ˆ ํ• ๊ป˜์š” ์ €๊ฑฐ ๋ดค์œผ๋ฉด ์ง„์งœ๋กœ ๊ธฐ์ดˆ๋‹ˆ๊นŒ ์–ด์งœํ”ผ ๋ชจ๋ฅด์‹œ๋ฉด ๋‹ค์‹œ ๋ฐฐ์›Œ์•ผํ•ด์š”


Background: Windows Memory Layout

๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ(Memory Layout) : ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory)์˜ ๊ตฌ์„ฑ

 ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด OS๋Š” ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋ฉฐ, CS์—์„  ์ด ๊ณต๊ฐ„์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์ ˆํ•œ ์˜์—ญ์— ์ €์žฅ
ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šฉ๋„๋ณ„๋กœ ๊ตฌํš, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ตฌ์—ญ์— ์ €์žฅํ•จ
์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋†“๊ธฐ ๋•œ์— OS๋Š” ๊ฐ ๊ตฌ์—ญ์— ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋Š” ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ์ง๊ด€์  ์ดํ•ด

SW ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํ•ต์‹ฌ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ถ„์„ํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋™์ž‘์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

Computer Architecture

1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋Š” PC์„ค๊ณ„๋ฅผ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ , ์ด๋“ค์„ ์กฐ๋ฆฝํ•ด์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์™„์„ฑํ•œ ๊ฒƒ์ด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ! ๋”๋ณด๊ธฐ ๐Ÿ“œ๊ฐœ์š”๐Ÿ“œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture)

dystopia050119.tistory.com

์œ„ ๋งํฌ์— ๋ฐฐ์› ๋“ , ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋™์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฉด๋ฐ€ํ•œ ์—ฐ๊ด€์„ฑ์ด ์žˆ์ฃ .
๋”ฐ๋ผ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋™์ž‘์„ ์ž์„ธํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„ํ•ฉ๋‹ˆ๋‹ค.


๊ฐœ์š”๐Ÿงพ

  • ์„น์…˜
    • .text
    • .data
    • .rdata
  • ์Šคํƒ
  • ํž™

ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

์œˆ๋„์šฐ์˜ PEํŒŒ์ผ์€ PE ํ—ค๋”์™€ 1๊ฐœ ์ด์ƒ์˜ ์„น์…˜์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์—ฌ๊ธฐ์„œ ์„น์…˜์€ ์šฐ์‚ฌํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด ".text" ์„น์…˜์—๋Š” PE์˜ ์ฝ”๋“œ๊ฐ€ ์ ํ˜€์žˆ๊ณ , ".data"์—๋Š” PE๊ฐ€ ์‹คํ–‰์ค‘์— ์ฐธ์กฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์ฃ 

์„น์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋Š” PE ํ—ค๋”์— ์ ํ˜€์žˆ์Šต๋‹ˆ๋‹ค.
PEํ—ค๋”์— ์ €์žฅ๋˜๋Š” ์„น์…˜๊ณผ ๊ด€๋ จ ๋ฐ์ดํ„ฐ ์ค‘, ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์„น์…˜์˜ ์ด๋ฆ„/ ํฌ๊ธฐ
  • ์„น์…˜์ด ๋กœ๋“œ๋  ์ฃผ์†Œ์˜ ์˜คํ”„์…‹
  • ์„น์…˜์˜ ์†์„ฑ๊ณผ ๊ถŒํ•œ
 

Managing Memory Sections - Windows drivers

Managing Memory Sections

docs.microsoft.com

 

 

PE ํ˜•์‹ - Win32 apps

์ด ์‚ฌ์–‘์€ Windows ์šด์˜ ์ฒด์ œ ์ œํ’ˆ๊ตฐ์—์„œ ์‹คํ–‰ ํŒŒ์ผ (์ด๋ฏธ์ง€) ๋ฐ ๊ฐœ์ฒด ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ ๊ฐ๊ฐ PE (์ด์‹ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰) ๋ฐ COFF (Common Object File Format) ํŒŒ์ผ ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

docs.microsoft.com

์œˆ๋„์šฐ๋Š” PE๋ฅผ ์‹คํ–‰ํ•  ๋•Œ, ์ด ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•ด PE์˜ ๊ฐ ์„น์…˜๋“ค์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์ ˆํ•œ ์„ธ๊ทธ๋จผํŠธ์— ๋งคํ•‘!
PE์— ํ•„์ˆ˜ ์กด์žฌํ•  ์„น์…˜์ด ์ •ํ•ด์ง„ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ".text", ".data", ".rdata" ์„น์…˜์„ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•จ


.text

text ์„น์…˜์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„ ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ์˜์—ญ!

ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„  ์ด ์„ธ๊ทธ๋จผํŠธ์— ์ฝ๊ธฐ ๊ถŒํ•œ๊ณผ ์‹คํ–‰ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์œผ๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์•…์˜์ ์ธ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ ์‰ฌ์›Œ์ง€๋ฏ€๋กœ ์š”์ฆ˜ ๋Œ€๋ถ€๋ถ„์€ ์ด ๊ถŒํ•œ์„ ์ œ๊ฑฐํ–ˆ์ฃ 

์•„๋ž˜์˜ ์ •์ˆ˜ 31337์„ ๋ฐ˜ํ™˜ํ•˜๋Š” mainํ•จ์ˆ˜๊ฐ€ ์ปดํŒŒ์ผ ๋˜๋ฉด 554889e5b8697a00005dc3๋ผ๋Š” ๊ธฐ๊ณ„์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ
์ด ๊ธฐ๊ณ„ ์ฝ”๋“œ๊ฐ€ ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.


.data

.data ์„น์…˜์—๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์— ๊ฐ’์ด ์ •ํ•ด์ง„ ์ „์—ญ ๋ณ€์ˆ˜๋“ค์ด ์œ„์น˜!

CPU๊ฐ€ ์ด ์„น์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ฝ๊ธฐ/ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” .data ์„น์…˜์— ํฌํ•จ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.


.rdata

.rdata ์„น์…˜์—๋Š” ์ปดํŒŒ์ผ ์‹œ์ ์— ๊ฐ’์ด ์ •ํ•ด์ง„ ์ „์—ญ ์ƒ์ˆ˜์™€ ์ฐธ์กฐํ•  DLL ๋ฐ ์™ธ๋ถ€ ํ•จ์ˆ˜๋“ค์˜ ์ •๋ณด ์ €์žฅ
CPU๊ฐ€ ์ด ์„น์…˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผํ•˜๋ฏ€๋กœ, ์ฝ๊ธฐ ๊ถŒํ•œ ๋ถ€์—ฌ! ํ•˜์ง€๋งŒ ์“ฐ๊ธฐ๋Š” ๋ถˆ๊ฐ€๋Šฅ

์•„๋ž˜๋Š” .rdata ์„น์…˜์— ํฌํ•จ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์ด๋ฉฐ, ์ฃผ์˜ ๊นŠ๊ฒŒ ๋ณผ ๋ณ€์ˆ˜๋Š” str_ptr์ž…๋‹ˆ๋‹ค.
str_ptr์€ "readonly"๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๊ฐ€๋ฅดํ‚ค๋Š”๋ฐ, str_ptr์€ ์ „์—ญ ๋ณ€์ˆ˜๋กœ์„œ .data์— ์œ„์น˜ํ•˜์ง€๋งŒ,
"readonly"๋Š” ์ƒ์ˆ˜ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰๋˜์–ด .rdata์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ์—๋Š” ์ฐธ์กฐํ•  DLL๊ณผ ์™ธ๋ถ€ ํ•จ์ˆ˜๋“ค์˜ ์ •๋ณด๋ฅผ .idata ์„น์…˜์— ์ €์žฅํ–ˆ์œผ๋‚˜, ์ตœ๊ทผ์—” ๋Œ€๋ถ€๋ถ„ rdata์— ์ €์žฅ๋จ


์„น์…˜์ด ์•„๋‹Œ ๋ฉ”๋ชจ๋ฆฌ

์œˆ๋„์šฐ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—๋Š” ์„น์…˜๋งŒ ๋กœ๋“œ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์ฃ 
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ์žˆ์–ด ํ•„์š”ํ•œ ์Šคํƒ๊ณผ ํž™ ์—ญ์‹œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ ์žฌ๋ฉ๋‹ˆ๋‹ค.


์Šคํƒ

์œˆ๋„์šฐ์ฆˆ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ ์“ฐ๋ ˆ๋“œ๋Š” ์ž์‹ ๋งŒ์˜ ์Šคํƒ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณดํ†ต ์ง€์—ญ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ๋ฆฌํ„ด ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ด ์˜์—ญ์€ ์ž์œ ๋กญ๊ฒŒ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์ด ๋ถ€์—ฌ!
์ฐธ๊ณ ๋กœ ์Šคํƒ์— ๋Œ€ํ•ด '์•„๋ž˜๋กœ ์ž๋ž€๋‹ค'๋ผ๋Š” ํ‘œํ˜„์„ ์ข…์ข… ๋“ฃ๋Š”๋ฐ, ์ด๋Š” ์Šคํƒ์ด ํ™•์žฅ๋  ๋•Œ,
๊ธฐ์กด ์ฃผ์†Œ๋ณด๋‹ค ๋‚ฎ์€ ์ฃผ์†Œ๋กœ ํ™•์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์ง€์—ญ๋ณ€์ˆ˜ choice๊ฐ€ ์Šคํƒ์— ์ €์žฅ๋˜์ฃ 


ํž™

ํ”„๋กœ๊ทธ๋žจ์ด ์—ฌ๋Ÿฌ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ• ๋‹น๋ฐ›๋Š” ๊ณต๊ฐ„!
๋”ฐ๋ผ์„œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํƒ๊ณผ ๋‹ค๋ฅธ ์ ์€ ๋น„๊ต์  ์Šคํƒ๋ณด๋‹ค ํฐ ๋ฐ์ดํ„ฐ๋„ ์ €์žฅ๋˜๊ณ 
์ „์—ญ์ ์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค๋Š” ์ ์ด์ฃ . ๋˜ํ•œ ์‹คํ–‰ ์ค‘ ๋™์ ์œผ๋กœ ํ• ๋‹น ๋ฐ›๋Š” ์ ๊นŒ์ง€ ํ”Œ๋Ÿฌ์Šค!

๊ถŒํ•œ์€ ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๊ธฐ๋งŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ๋งŒ์„ ๊ฐ€์ง€๋‚˜, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‹คํ–‰๊ถŒํ•œ์ด ๋ฐ”๋€๋‹ˆ๋‹ค.

์œ„ ์ฝ”๋“œ๋Š” heap_data_ptr์— malloc()์œผ๋กœ ๋™์  ํ• ๋‹นํ•œ ์˜์—ญ์˜ ์ฃผ์†Œ๋ฅผ ๋Œ€์ž…ํ•˜๊ณ , ์ด ์˜์—ญ์— ๊ฐ’์„ ์”๋‹ˆ๋‹ค.
heap_data_ptr์€ ์ง€์—ญ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ์Šคํƒ์— ์œ„์น˜ํ•˜๋ฉฐ, malloc์œผ๋กœ ํ• ๋‹น๋ฐ›์€ ํž™ ์„ธ๊ทธ๋จผํŠธ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚ด


๋งˆ๋ฌด๋ฆฌ

์„น์…˜ ์—ญํ•  ์ผ๋ฐ˜์  ๊ถŒํ•œ ์‚ฌ์šฉ ์˜ˆ
.text ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ์˜์—ญ ์ฝ๊ธฐ, ์‹คํ–‰ main() ๋“ฑ์˜ ํ•จ์ˆ˜ ์ฝ”๋“œ
.data ์ดˆ๊ธฐํ™”๋œ ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์œ„์น˜ํ•˜๋Š” ์˜์—ญ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ ์ดˆ๊ธฐํ™”๋œ ์ „์—ญ ๋ณ€์ˆ˜, ์ „์—ญ ์ƒ์ˆ˜
.rdata ์ดˆ๊ธฐํ™”๋œ ์ „์—ญ ์ƒ์ˆ˜๋‚˜ ์ž„ํฌํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ์˜์—ญ ์ฝ๊ธฐ ์ „์šฉ ์ „์—ญ ์ƒ์ˆ˜, ์ž„ํฌํŠธ ๋ฐ์ดํ„ฐ
์Šคํƒ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ž„์‹œ ์˜์—ญ ์ฝ๊ธฐ, ์“ฐ๊ธฐ ์ง€์—ญ ๋ณ€์ˆ˜, ํ•จ์ˆ˜์˜ ์ธ์ž ๋“ฑ
ํž™ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ ์ฝ๊ธฐ, ์“ฐ๊ธฐ malloc(), calloc() ๋“ฑ์œผ๋กœ ํ• ๋‹น ๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ

 


์ฐธ๊ณ  ์ž๋ฃŒ

 

Background: Windows Memory Layout

์œˆ๋„์šฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

dreamhack.io

์ฐธ๊ณ  ์ด๋ฏธ์ง€

 

Background: Windows Memory Layout

์œˆ๋„์šฐ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

dreamhack.io