๐Ÿ›ก๏ธ Phase 3: ํ•˜๋“œ์›จ์–ด MMU ์‹คํ–‰ ์ฐจ๋‹จ (SMEP / PXN Trap) Step 1/3: ์œ ์ € ์ฃผ์†Œ ์ธ์ถœ ๊ฐ์ง€
CPU๊ฐ€ Ring 0(์Šˆํผ๋ฐ”์ด์ €) ๋ชจ๋“œ์—์„œ ์œ ์ € ๊ณต๊ฐ„ ์ฃผ์†Œ(< TASK_SIZE)์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ํŽ˜์น˜ํ•˜๋ ค๋Š” ์ˆœ๊ฐ„ ํ•˜๋“œ์›จ์–ด MMU๊ฐ€ ๊ฐœ์ž…ํ•จ.
CPU: Ring 0 (CPL 0)
์Šˆํผ๋ฐ”์ด์ € ๋ชจ๋“œ
Target: 0x00401337
User Space Page (U=1)
CR4.SMEP = 1 (Bit 20)
ARM64: PTE_PXN = 1
#PF Trap (0x0011)
Instruction Fetch Fault
โšก ์ปค๋„ ๋ถ„๊ธฐ ์‹œ๋„ Fetch -> 0x00401337 MMU ๐Ÿšจ Kernel Page Fault (#PF) Error Code: 0x0011 (Supervisor Fetch) ์œ ์ € ์‰˜์ฝ”๋“œ ์‹คํ–‰ ์ฐจ๋‹จ (0% ์„ฑ๊ณต)
ํ•˜๋“œ์›จ์–ด ๋ฐฉ์–ด ํ”Œ๋ž˜๊ทธ
CR4.SMEP (Bit 20 = 1)
๋ฐœ์ƒ ์˜ˆ์™ธ (Exception)
#PF (Error: 0x0011)
์ž„์˜ ์ฝ”๋“œ ์‹คํ–‰ ์ €์ง€์œจ
100% ์›์ฒœ ์ฐจ๋‹จ