br0nzu

[Linux] Memory Layout

Stack Frame์„ ์ •๋ฆฌํ•˜๋‹ค๊ฐ€ Memory Layout๋„ ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•˜๋ฉด ์ข‹์„๊ฑฐ ๊ฐ™์•„์„œ Memory Layout ์ •๋ฆฌ๊ธ€์„ ์˜ฌ๋ฆฐ๋‹ค. Linux Memory Layout 8086๋ฉ”๋ชจ๋ฆฌ๋Š” 4GB ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ์ค€์œผ๋กœ 2GB ์ปค๋„ ์˜์—ญ๊ณผ 2GB ์œ ์ € ์˜์—ญ์ด ์กด์žฌํ•œ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ์ง‘์ค‘ํ•ด์•ผํ•  ๋ถ€๋ถ„์€ ์œ ์ € ์˜์—ญ์ด๋‹ค. ์œ ์ € ์˜์—ญ์€ ์„ธ๊ทธ๋จผํŠธ1๋ผ๋Š” ๋‹จ์œ„๋กœ ...

Stack Frame

Pwnable ๋ฌธ์ œ๋ฅผ ์ž˜ ํ’€๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Stack Frame ์ดํ•ด๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค. ํ•™์Šต์€ ํ–ˆ์ง€๋งŒ ์ •๋ฆฌ๋Š” ํ•˜์ง€ ์•Š์•„, ์ด๋ฒˆ ๊ธฐํšŒ์— ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Stack Frame Stack Frame์€ ํ•จ์ˆ˜ ์ž์‹ ๋งŒ์˜ ๊ณต๊ฐ„ ์ด๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์Šคํƒ์€ ํ•จ์ˆ˜๋ณ„๋กœ ์ž์‹ ์˜ ์ง€์—ญ๋ณ€์ˆ˜ ๋˜๋Š” ์—ฐ์‚ฐ๊ณผ์ •์—์„œ ๋ถ€์ฐจ์ ์œผ๋กœ ์ƒ๊ฒจ๋‚˜๋Š” ์ž„์‹œ ๊ฐ’๋“ค์„ ์ €์žฅํ•˜๋Š” ์˜์—ญ์ด๋‹ค. ๋งŒ์•ฝ ๊ฐ™์€...

[Linux] Core Dump

Core Dump Core Dump๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ๋•Œ ๊ทธ ์‹œ์ ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•œ ํŒŒ์ผ์ด๋‹ค. Core Dump๋Š” ๋ฉ”๋ชจ๋ฆฌ, ๋ ˆ์ง€์Šคํ„ฐ, ์Šคํƒ ๋“ฑ ์‹œ์Šคํ…œ ์ƒํƒœ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฆฌ๋ˆ…์Šค์—์„œ core dump ํŒŒ์ผ ํฌ๊ธฐ์— ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. core dump ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ์„ ๋ณด๋ ค๋ฉด ulimit -a ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค...

[Linux] dmesg Command

dmesg dmesg๋ช…๋ น์–ด๋Š” ๋ฆฌ๋ˆ…์Šค์—์„œ ์‹œ์Šคํ…œ ๋ถ€ํŒ… ์‹œ์ ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•œ ์ปค๋„ ๊ด€๋ จ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ฃผ๋กœ ์‹œ์Šคํ…œ ๋กœ๊ทธ, ๋ถ€ํŒ… ๊ณผ์ •, ์žฅ์น˜์˜ ์ƒํƒœ ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. Options dmesg์˜ ์ฃผ์š” ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. -C, --clear: dmesg ๋‚ด์šฉ ์‚ญ์ œ -c, --read-clear: dmesg ๋‚ด์šฉ ์ถœ๋ ฅ ํ›„ ์‚ญ์ œ...

IDA ์›๊ฒฉ ๋””๋ฒ„๊น…

IDA์˜ ์›๊ฒฉ ๋””๋ฒ„๊น… ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋จผ์ € IDA๊ฐ€ ์„ค์น˜๋œ ํŒŒ์ผ์„ ๋ณด๋ฉด dbgsrv๋ผ๋Š” ํด๋”๊ฐ€ ์žˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์—์„œ ๋””๋ฒ„๊น…ํ•˜๋ ค๋Š” ์‹œ์Šคํ…œ์˜ OS ๋ฒ„์ „์— ๋งž๋Š” ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜๊ณ , ํ•ด๋‹น ํŒŒ์ผ์„ ์›๊ฒฉ ์‹œ์Šคํ…œ์— ๋ณต์‚ฌํ•œ๋‹ค. Linux ๋งŒ์•ฝ ๋ฆฌ๋ˆ…์Šค 64๋น„ํŠธ ํ™˜๊ฒฝ์—์„œ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด linux_server64๋ฅผ ์›๊ฒฉ ์„œ๋ฒ„์— ๋ณต์‚ฌํ•˜๋ฉด ๋œ๋‹ค. ...

Z3 ์‚ฌ์šฉ๋ฒ•

Z3 Z3๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ์ˆ˜์‹ ํ•ด์„ ๋„๊ตฌ๋กœ, ๋Œ€ํ‘œ์ ์ธ SMT(Satisfiability Modulo Theories)1 ์†”๋ฒ„์ด๋‹ค. Z3๋Š” ๋ณดํ†ต CTF์—์„œ ๋กœ์ง ์ž์ฒด๋Š” ํŒŒ์•…์„ ๋‹ค ํ–ˆ์œผ๋‚˜ ์—ญ์—ฐ์‚ฐ์ด ์–ด๋ ค์šธ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. Install Python์—์„œ Z3์˜ ๋ชจ๋“ˆ์˜ ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. pip install z3-solver ์œ„...

Data Structure Overview

Data Structure ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure)๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ๋ฐฉ๋ฒ•๊ณผ ๋ฐ์ดํ„ฐ์— ๊ด€ํ•œ ์—ฐ์‚ฐ์˜ ์ด์ฒด์ด๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ์—๋Š” ๋‹จ์ˆœ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ณตํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค. ๋‹จ์ˆœ(Primitive) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” int, long๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๋‹ค. ๋ณตํ•ฉ(Non-Primitive) ์ž๋ฃŒ๊ตฌ์กฐ๋Š”...

Virtual Memory

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory) ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory)๋Š” ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์™€ ์‚ฌ์šฉ์ž์˜ ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ, ์ ์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํฐ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํŽ˜์ด์ง€ ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค์—์„œ ํŒŒ์ผ๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค. ์š”๊ตฌ ํŽ˜์ด์ง•(Demand Pa...

Main Memory

Main Memory ์šด์˜์ฒด์ œ์—์„œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณต์‚ฌ๋˜์–ด ์ ์žฌ๋˜๋ฉฐ, ์ด๋ฅผ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. CPU๋Š” ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๊ฐ€ ์ง€์‹œํ•˜๋Š” ๋Œ€๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ ํ›„, ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ์€ ๊ฐ๊ฐ์˜ ...

Synchronization Tools

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