๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

๐Ÿฆพ ๋ณด์•ˆ ๐Ÿฆพ

(14)
x86-64 CPU ๋ ˆ์ง€์Šคํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)์˜ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ณ ์† ๋ฉ”๋ชจ๋ฆฌ๋กœ, ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„. ์ฒ˜๋ฆฌ ํ›„ ํ•ด๋‹น ๊ฒฐ๊ณผ ๊ฐ’ ์—ญ์‹œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ ํ›„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ ๋‹จ์œ„OS 32/64bit : CPU๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Ÿ‰์„ ๋งํ•จ  01. ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ ˆ์ง€์Šคํ„ฐ์—ญํ• AX (Acumulator register)๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ณ€์ˆ˜๋กœ, ๊ฐ์ข… ์—ฐ์‚ฐ์— ์“ฐ์ž„. ์ฃผ๋กœ ๋ฆฌํ„ด ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ.DX (Data register)๊ฐ์ข… ์—ฐ์‚ฐ์— ์“ฐ์ด๋Š” ๋ณ€์ˆ˜๋กœ, ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด์™€ ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์—์„œ ์ถ”๊ฐ€์ ์—” ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉCX (Counter register)๋ฐ˜๋ณต๋ฌธ์˜ ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉ, ๋ฏธ๋ฆฌ ๊ฐ’์„ ์ •ํ•ด๋†“๊ณ  0์ด ๋  ๋•Œ๊นŒ์ง€ ์ง„ํ–‰, ๋ณ€์ˆ˜๋กœ ..
CPU ๊ตฌ์กฐ CPU (Central Processing Unit)CPU๋Š” ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ๋กœ, ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ปดํ“จํ„ฐ์˜ ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด(HW)๋“ค์„ ์ œ์–ดํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, CPU๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ด๊ณ  ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ ํ•˜์—ฌ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ž‘์—…์„ ์œ„ํ•ด ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋กœ ์ „์†กํ•œ๋‹ค. Control UnitCPU์˜ ์šด์˜ ์ œ์–ด ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ•˜๋“œ์›จ์–ด ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ๋ณด์žฅCPU์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ์ œ์–ดํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ์ถ”์ ๋ช…๋ น์–ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์™€ Fetching, Decoding, Execution ์ง„ํ–‰ALU (Arith..
PE ํŒŒ์ผ ๊ตฌ์กฐ 01. PE (Portable Executable)Microsoft์˜ ์šด์˜ ์ฒด์ œ Window OS์—์„œ ์ง€์›๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ตฌ์กฐํŒŒ์ผ์ด ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ฒจ์ ธ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“  ํฌ๋งท์œผ๋กœ ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์—์„œ์˜ ์ด์‹์„ฑ์„ ๋ณด์—ฌ์ค€๋‹ค๋Š” ์˜๋ฏธ์—์„œ Portable Executable์ด๋ผ๊ณ  ๋ถˆ๋ฆผWindow Loader๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์บก์Šํ™”ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ฒด์ฝ”๋“œ ์ •๋ณด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์œ ํ˜•, ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์š”๊ตฌ์‚ฌํ•ญ ์ •๋ณด ํฌํ•จ์ฐธ์กฐํ•  DLL, API import ํ…Œ์ด๋ธ”, ์ž์› ๊ด€๋ฆฌ ๋ฐ์ดํ„ฐ, TLS ๋ฐ์ดํ„ฐ ํฌํ•จ1.1 PE ํŒŒ์ผ ์ข…๋ฅ˜์‹คํ–‰ ํŒŒ์ผ ๊ณ„์—ด : EXE, SCR(Screen Saver)๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด : DLL, OCX(Active X), CPL, DRV๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด: SYS, VX..
[๋ฆฌ๋ฒ„์‹ฑ] kali - pwndbg ์„ธํŒ… & ๊ธฐ๋ณธ ๋ช…๋ น์–ด ELF๋ถ„์„์„ ์œ„ํ•ด์„œ kali์— gdb ํ™˜๊ฒฝ์„ ์„ธํŒ…ํ•˜๊ณ  pwndbg ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•˜๊ณ ์ž ํ•œ๋‹ค.ํ™˜๊ฒฝ ์„ธํŒ…๋ชจ๋‘ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๊ถŒํ•œ ์—†์ด ์‹คํ–‰ํ–ˆ๋‹ค๊ฐ€ pwndbg ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์•„์„œ ์• ๋ฅผ ๋จน์—ˆ๋‹ค.gdb ์„ค์น˜$ sudo su$ apt-get install update $ apt-get install upgrade -y$ apt-get install gdb -ypwndbg ์„ค์น˜$ apt-get install python3.12 python3.12-venv python3-pip python3-dev git libssl-dev libffi-dev build-essential -y$ python3 -m pip install --upgrade pip$ python3 -m pip ins..
[๋žœ์„ฌ์›จ์–ด] ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•œ๊ฐ€? ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•œ๊ฐ€?๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์šด์˜ ์ฒด์ œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์€ ๋ณ„๋„์˜ ์šด์˜ ์ฒด์ œ๋กœ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰ํ•˜๋Š” ์•…์„ฑ์ฝ”๋“œ๋Š” ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์„ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์—์„œ ๊ฒฉ๋ฆฌ์‹œํ‚จ๋‹ค๋ฉด, ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ๋Š” ์•…์„ฑ์ฝ”๋“œ๋กœ ๋ถ€ํ„ฐ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ ˆ๋Œ€์ ์œผ๋กœ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์€ ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋”ฐ๋ฅธ ์œ„ํ˜‘๋“ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://www.youtube.com/watch?v=gzwt73_3ZqA&t=28s ์•„๋ž˜์˜ ์˜์ƒ์—์„œ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹ค..
[๋žœ์„ฌ์›จ์–ด] CPU ๋ฒค๋”๋ฅผ ํ†ตํ•œ ๊ฐ€์ƒ๋จธ์‹  ์‹คํ–‰ ์—ฌ๋ถ€ ํ™•์ธ ๊ฐ€์ƒ๋จธ์‹ (Virtual Machine)์ด๋ž€?๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ์•ˆ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์ƒ ๋จธ์‹ ๋“ค์€ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ ์šด์˜์ฒด์ œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋จธ์‹ ์€ ํ•˜์ดํผ๋ฐ”์ด์ €(Hypervisor)๋ผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต์„ ํ†ตํ•ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ํ•˜๋“œ์›จ์–ด ์ž์›์„ ๋ถ„ํ• ํ•˜๊ณ  ๊ฐ ๊ฐ€์ƒ ๋จธ์‹ ์— ํ• ๋‹นํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. CPU ๋ฒค๋”๋ž€?CPU ๋ฒค๋”๋Š” CPU(์ค‘์•™ ์ฒ˜๋ฆฌ ์žฅ์น˜)๋ฅผ ์ œ์กฐํ•˜๋Š” ํšŒ์‚ฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฒค๋”๋Š” ๊ณ ์œ ์˜ ๋ฒค๋” ID๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด CPU๊ฐ€ ์–ด๋ŠํšŒ์‚ฌ์—์„œ ์ œ์กฐ๋˜์—ˆ๋Š”์ง€๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์˜ ํ•˜์ดํผ๋ฐ”์ด์ €(ex: VMware, VirtualBox ๋“ฑ)๊ฐ€ ์‹ค์ œ ๋ฌผ๋ฆฌ์  CPU๋ฅผ..

๋ฐ˜์‘ํ˜•