๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Memory Corruption: Stack Buffer Overflow

์Šคํƒ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ(Stack Buffer Overflow) ์„ธ๊ณ„ ์ตœ์ดˆ์˜ ์›œ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ชจ๋ฆฌ์Šค ์œ”๋„ ์ด ๊ณต๊ฒฉ์„ ํ†ตํ•ด ์ „ํŒŒ๋จ ๋ณด์•ˆ ๊ณต๋ถ€๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฐœ๋ฐœ์ž๋„ ์•Œ๋งŒํผ ์œ ๋ช…ํ•˜๊ณ  ์—ญ์‚ฌ๊ฐ€ ์˜ค๋ž˜๋œ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์˜ค๋žœ ์—ญ์‚ฌ๋ฅผ ์ž๋ž‘ํ•˜๋Š” ์ด ์ทจ์•ฝ์ ์€ ์•„์ง๋„ ๋งŽ์€ SW์—์„œ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค. CVE details์— ๋”ฐ๋ฅด๋ฉด ์Šคํƒ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ํฌํ•จํ•œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ทจ์•ฝ์ ์€ ๋งŽ์ด ๋†’์•„์š”(4์œ„) ๊ทธ๋Ÿผ ์Šคํƒ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์›์ธ์ด ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์ด ์ทจ์•ฝ์ ์ด ์–ด๋–ค ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ์ง€ ๊ณต๋ถ€ ใ„ฑ BOF์— ํ•„์š”ํ•œ ์šฉ์–ด ๊ฐ„๋‹จ ์ •๋ฆฌ ๋ฒ„ํผ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„ sfp๋Š” ์Šคํƒ ๋ฒ ์ด์Šค ๊ฐ’์„ ์˜๋ฏธ - sfp๋Š” ์Šคํƒ ์ฃผ์†Œ๊ฐ’์„ ๊ณ„์‚ฐํ•  ๋•Œ ํ˜„์žฌ ์Šคํƒ๊ฐ’์˜ ๊ธฐ์ค€ ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„ ํฌ์ธํ„ฐ ๊ฐ’ ์ง€์ •(4 or 8byte) rbp(or ebp)๋Š” ํ•œ ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Background: Calling Convention

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ๐Ÿค™ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ๋ฐ ๋ฐ˜ํ™˜์˜ ์•ฝ์† ํ•œ ํ•จ์ˆ˜์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ์‹œ, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ํ๋ฆ„์€ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด ๋‹ค์‹œ ์›๋ž˜์˜ ํ•จ์ˆ˜๋กœ ๋Œ์•„์™€ ๊ธฐ์กด์˜ ์‹คํ–‰ ํ๋ฆ„์„ ์ด์–ด๊ฐ€์ฃ . ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋ฐ˜ํ™˜๋œ ์ดํ›„๋ฅผ ์œ„ํ•ด ํ˜ธ์ถœ์ž(Caller)์˜ ์ƒํƒœ(Stack frame) ๋ฐ ๋ฐ˜ํ™˜ ์ฃผ์†Œ(Return Address)๋ฅผ ์ €์žฅํ•ด์•ผ ํ•จ! ๋˜ํ•œ, ํ˜ธ์ถœ์ž๋Š” ํ”ผํ˜ธ์ถœ์ž(Callee)๊ฐ€ ์š”๊ตฌํ•œ ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ, ํ”ผํ˜ธ์ถœ์ž์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ ์‹œ ๋ฐ˜ํ™˜ ๊ฐ’์„ ์ „๋‹ฌ ๋ฐ›์•„์•ผํ•จ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ ์ ์šฉ์€ ์ผ๋ฐ˜์ ์œผ๋ก  ์ปดํŒŒ์ผ์˜ ๋ชซ์ด๋ฉฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋งž๊ฒŒ ํ˜ธ์ถœ ๊ทœ์•ฝ์„ ์•Œ๋งž๊ฒŒ ์ ์šฉ์— ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ ๊ทœ์•ฝ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ์— ๋ช…์‹œ๊ฐ€ ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ปดํŒŒ์ผ์—์„œ ์ง€์›ํ•˜๋Š” ํ˜ธ์ถœ ๊ทœ์•ฝ ์ค‘ CUP์˜ ์•„ํ‚คํ…์ฒ˜์— ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

shell_basic

shell_basic ์—ฌ๋Ÿฌ๊ฐ€์ง€์˜ ๋ฌธ์ œํ’€์ด..? 1. skeleton_code ํ™œ์šฉ ๋งค์šฐ ์ •์„์ ์ธ ๋ฐฉ๋ฒ•์ด๊ณ  ์ปค๋ฆฌํ˜๋Ÿผ์ด ์˜๋„ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜ orw๋ฅผ ํ™œ์šฉํ•ด๋ณผ๊นŒ์š”? ์ด์ „ ์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ์™€ ์ ์šฉํ• ๋ ค๋˜ ์˜ˆ์‹œ์ธ๋ฐ์š” ๋ฐ‘์— ๋งํฌ๋“ค์€ ์ฐธ๊ณ  ์ž๋ฃŒใ…  FreeBSD/x86 - execve /tmp/sh - 34 bytes shell-storm.org Exploit Tech: Shellcode ์ต์Šคํ”Œ๋กœ์ž‡(Exploit) ํ•ดํ‚น ๋ถ„์•ผ์—์„œ ์ƒ๋Œ€ ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์นจํˆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์•…์šฉํ•˜๋Š” ํ•ดํ‚น๊ณผ ๋งฅ๋ฝ์ด ๊ฐ™์Œ ์ฒซ ๋ฒˆ์งธ ๊ณต๊ฒฉ๊ธฐ๋ฒ•์ธ ์…ธ์ฝ”๋“œ์ด๋ฉฐ, ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์ง€์‹์„ ์ ๊ฒ€ํ•˜๊ณ  gdb ์‚ฌ์šฉ์— dystopia050119.tistory.com ์ž ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณผ๊นŒ์š” C์–ธ์–ด ํ˜•์‹์˜ ์˜์‚ฌ์ฝ”๋“œ๋กœ ๋งŒ๋“ค๋ฉด ์ด์ „์— ๋ฐฐ์šด๊ฒƒ์ฒ˜๋Ÿผ ์œ„ ์ฝ”๋“œ๋ฅผ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Exploit Tech: Shellcode

์ต์Šคํ”Œ๋กœ์ž‡(Exploit) ํ•ดํ‚น ๋ถ„์•ผ์—์„œ ์ƒ๋Œ€ ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์นจํˆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์•…์šฉํ•˜๋Š” ํ•ดํ‚น๊ณผ ๋งฅ๋ฝ์ด ๊ฐ™์Œ ์ฒซ ๋ฒˆ์งธ ๊ณต๊ฒฉ๊ธฐ๋ฒ•์ธ ์…ธ์ฝ”๋“œ์ด๋ฉฐ, ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์ง€์‹์„ ์ ๊ฒ€ํ•˜๊ณ  gdb ์‚ฌ์šฉ์— ์ต์ˆ™ํ•ด์ง€๋Š” ์‹œ๊ฐ„์ด ๋˜์–ด๋ด์š” ์…ธ์ฝ”๋“œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์œ„ํ•ด ์ œ์ž‘๋œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ ์กฐ๊ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์…ธ์„ ํš๋“ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์…ธ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด, ํŠน๋ณ„ํžˆ "์…ธ"์ด๋ผ๋Š” ์ ‘๋‘์‚ฌ ๋ถ™์Œ ์…ธ์„ ํš๋“ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ด์š”, ๊ทธ ์ด์œ ๋Š” ๋’ค์— ๋‚˜์™€์š” ๋งŒ์•ฝ ํ•ด์ปค๊ฐ€ rip๋ฅผ ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์…ธ์ฝ”๋“œ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉด ์ต์Šคํ”Œ๋กœ์ž‡์ด ๋˜์š”! ์…ธ์ฝ”๋“œ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋กœ ๊ตฌ์„ฑ๋˜๋ฏ€๋กœ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ ์•„ํ‚คํ…์ฒ˜์™€ OS์— ๋”ฐ๋ผ, ๊ทธ๋ฆฌ๊ณ  ์…ธ์ฝ”๋“œ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค ๋˜ํ•œ ๋ฐ‘ ๋งํฌ๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ณ„ ๋ฒ”์šฉ์  ์…ธ์ฝ”๋“œ! shell-storm | Shellcode..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Tool: pwntools

pwntools์˜ ๊ฐ„๋‹จ ์„ค๋ช… ํƒ„์ƒ ๋ฐฐ๊ฒฝ๊ณผ ์„ค์น˜ ๋ฐฉ๋ฒ• ์ง€๋‚œ ์‹œ๊ฐ„์— ํŒŒ์ด์ฌ๊ณผ ํŒŒ์ดํ”„(|)๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•œ ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ต์Šคํ”Œ๋กœ์ž‡์„ ํ–ˆ์ฃ  ํŒŒ์ด์ฌ์œผ๋กœ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํŒŒ์ดํ”„๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ํ”„๋กœ๊ทธ๋žจ์— ์ „๋‹ฌํ–ˆ์ฃ  ๊ทธ๋Ÿฌ๋‚˜ ์ต์Šคํ”Œ๋กœ์ž‡์ด ์ข€๋งŒ ๋ณต์žกํ•ด๋„ ์œ„ ๋ฐฉ๋ฒ•์€ ์ด์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ณต์žกํ•œ ์—ฐ์‚ฐ๊ณผ ํ”„๋กœ์„ธ์Šค์™€ ๋ฐ˜๋ณต์  ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•ด์•ผ์ฃ  ๊ทธ๋ž˜์„œ ํ•ด์ปค๋“ค์€ perl, python c์–ธ์–ด ๋“ฑ์œผ๋กœ ์ต์Šคํ”Œ๋กœ์ž‡ ์Šคํฌ๋ฆฝํŠธ, ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์ œ์ž‘ํ•ด ์‚ฌ์šฉํ–ˆ์ฃ  ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ์‹œ๋ฉด ๋ผ์š” ํŒŒ์ด์ฌ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ต์Šคํ”Œ๋กœ์ž‡ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋ฉด, ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ํ•จ์ˆ˜๊ฐ€ ์žˆ์ฃ  ์˜ˆ๋กœ ๋ฆฌํ‹€ ์—”๋””์•ˆ์˜ ๋ฐ”์ดํŠธ ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋Š” ํŒจํ‚น ํ•จ์ˆ˜, ๋˜๋Š” ๊ทธ ์—ญ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ธํŒจํ‚น ํ•จ์ˆ˜ ๋“ฑ์ด์ฃ  ์ต์Šคํ”Œ๋กœ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Tool: gdb

โ€‹๐Ÿ›Debug(ger)๋ž€? CS(Computer Science)์—์„  ์‹ค์ˆ˜๋กœ ํƒ„์ƒํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฒฐํ•จ์„ bug๋ผ๊ณ  ์นญํ•จ ์„ค์น˜ sudo apt-get install gdb git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy Exploit Development and Reverse Engineering with GDB Made Easy - GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy gi..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Quiz: x86 Assembly

Quiz: x86 Assembly 1 ์œ„ ๋ฌธ์ œ๋ฅผ ํ•ด์„ํ•œ ๋ถ€๋ถ„์ด๋ฉฐ, Dreamhack์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹น ์•ž์ฌ ๋‚ด์šฉ์—์„œ ๋Œ€์ถฉ ๋ช…๋ น์–ด์™€ ํ•ด๋‹น ๋ ˆ์ง€์Šคํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ–ˆ์œผ๋ฏ€๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ๋„˜์–ด๊ฐˆ๊ป˜์š” dl : RDX(64byte) → EDX(ํ•˜์œ„ 32byte) → DX(ํ•˜์œ„ 16byte) → DL(ํ•˜์œ„ 8byte) 1. mov dl, BYTE PTR[rsi+rcx] dl = rdx 8byte low_data > dl = 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x10 0x57656c636f6d6520 0x400000 | 0x57656c636f6d6520 rcx = 0x1 result = -1 5 result is flase so.. code excute X

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

x86 Assembly: Essential Part

ํ•ด์ปค์˜ ์–ธ์–ด: ์–ด์…ˆ๋ธ”๋ฆฌ๐Ÿ’ฌ PC์—์„œ ๋ณต์žกํ•œ ๋…ผ๋ฆฌ์  ์ธ๊ณผ๊ด€๊ณ„, ์—ฌ๋Ÿฌ ๊ฐœ์ฒด๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๊ทธ ์„ธ๊ณ„์—์„œ ํ†ต์šฉ๋˜๋Š” ๊ธฐ๊ณ„์–ด(Machine Code)์–ธ์–ด ํ•ต์‹ฌ! ์‹œ์Šคํ…œ ํ•ดํ‚น์„ ํ•  ๋•Œ๋Š” ์ปดํ“จํ„ฐ ์–ธ์–ด, ์šด์˜์ฒด์ œ, ๋„คํŠธ์›Œํฌ, ์•”ํ˜ธํ•™ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฐ์šธ ๊ฒƒ๋“ค์ด ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ์ค‘ ์‹œ์Šคํ…œ ํ•ด์ปค๊ฐ€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šต๋“ํ•ด์•ผ ํ•˜๋Š” ์ง€์‹์€ ์ปดํ“จํ„ฐ ์–ธ์–ด์— ๊ด€ํ•œ ๊ฒƒ์ž„! ์‹œ์Šคํ…œ ํ•ด์ปค๋Š” ์ปดํ“จํ„ฐ์˜ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ทจ์•ฝ์ ์„ ๋ฐœ๊ฒฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ ๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š” PC ์–ธ์–ด์ธ ๊ธฐ๊ณ„์–ด๊ฐ€ ๋„ˆ๋ฌด ์ดํ•ดํ•˜๊ณ  ์ž‘์„ฑํ•˜๊ธฐ ํž˜๋“ค๊ธฐ์— ๋‚œํ•ดํ•œ ๊ธฐ๊ณ„์–ด๋ฅผ ๋ฐ”๊พผ ์‚ฌ๋žŒ์ด ์žˆ์œผ๋‹ˆ, ์ปดํ“จํ„ฐ ๊ณผํ•™์ž ์ค‘ ํ•œ ๋ช…์ธ David Wheeler๋Š” EDSAC์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ด(Assembly Language)์™€ ์–ด์…ˆ๋ธ”๋Ÿฌ(Assembler)๋ผ๋Š” ๊ฒƒ์„ ๊ณ ์•ˆ ์–ด์…ˆ๋ธ”๋Ÿฌ๋Š” ์ผ์ข…์— ํ†ต์—ญ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Linux Memory Layout

1. ๋ฆฌ๋ˆ…์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ(Memory Layout) ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ ๊ตฌ์—ญ์ด ์–ด๋–ค ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ! ๋”๋ณด๊ธฐ ๐Ÿ“œ๊ฐœ์š”๐Ÿ“œ ์„ธ๊ทธ๋จผํŠธ๋ž€ ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ BSS ์„ธ๊ทธ๋จผํŠธ ์Šคํƒ ์„ธ๊ทธ๋จผํŠธ ํž™ ์„ธ๊ทธ๋จผํŠธ CPU๋Š” ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์™€ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ๊ณ , Instruction Set Architecture(ISA)์— ๋”ฐ๋ผ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•ฉ๋‹ˆ๋‹ค. CPU์˜ ๋™์ž‘๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์— ๋ฐ€์ ‘ํ•œ ์—ฐ๊ด€์ด ์žˆ์Œ์„ ์˜๋ฏธ ๊ณต๊ฒฉ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•…์˜์ ์œผ๋กœ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์กฐ์ž‘๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์— ์˜ํ•ด CPU๋„ ์ž˜๋ชป๋œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์˜ค์—ผ๋๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ ๋ฐœํ•˜๋Š” ์ทจ์•ฝ์ ์„ ๋ฉ”๋ชจ๋ฆฌ ์˜ค์—ผ(Memory Corruption) ์ทจ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

Computer Architecture

1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋Š” PC์„ค๊ณ„๋ฅผ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ , ์ด๋“ค์„ ์กฐ๋ฆฝํ•ด์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์™„์„ฑํ•œ ๊ฒƒ์ด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ! ๋”๋ณด๊ธฐ ๐Ÿ“œ๊ฐœ์š”๐Ÿ“œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) ๋ช…๋ น์–ด ์ง‘ํ•ฉ ๊ตฌ์กฐ(Instruction Set Architecture, ISA) ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ(General Register) ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ(Segment Register) ํ”Œ๋ž˜๊ทธ ๋ ˆ์ง€์Šคํ„ฐ(Flag Register) ๋ช…๋ น์–ด ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ(Instruction Pointer Register, IP) ์ปดํ“จํ„ฐ๋Š” ๊ฐ์ž ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ถ€ํ’ˆ๋“ค์˜ ๋„์›€์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. CPU๋Š” ์ปดํ“จํ„ฐ์˜ ์ž‘๋™์— ํ•ต์‹ฌ์ด ๋˜๋Š” ์—ฐ์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ €์žฅ์žฅ์น˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์™ธ์—๋„ G..

Jastes
'๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (5 Page)