HANDLE ๊ตฌ์กฐ์ฒด์™€ Kernel Object

๋ฐ˜์‘ํ˜•

์ด ๋‚ด์šฉ์„ ์“ฐ๊ธฐ ์ „์— ๋งŽ์ด ๊ณ ๋ฏผ์„ ํ–ˆ๋˜ ๊ฒƒ์€ ๋‹ค๋ฆ„์ด ์•„๋‹Œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์šด์˜์ฒด์ œ ์ปค๋„์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ด์•ผ๊ธฐ๋ฅผ ํฌ์ŠคํŒ…์„ ํ•ด์•ผํ• ๊นŒ, ํ•˜์ง€ ์•Š์•„๋„ ๋ ๊นŒ ๋ผ๋Š” ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ•œ ์ฑ„ ์ด ๋‚ด์šฉ์„ ๋ฐ”๋กœ ๋‹ค์ด๋ ‰ํŠธ๋กœ ํฌ์ŠคํŒ…ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๊ทธ๋ž˜์„œ, ์ด ํฌ์ŠคํŒ…์„ ๋ณด์‹œ๊ธฐ ์ „์—, ๋ฐ˜๋“œ์‹œ ์šด์˜์ฒด์ œ ์ปค๋„์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด์™€ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ด๊ณ , ๊ธฐ๋ณธ์ ์ธ ๋ถ€๋ถ„์„ ์ˆ™์ง€ ํ›„, ์ด ํฌ์ŠคํŠธ๋ฅผ ๋ณด์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.



Kernel Object

์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋ผ๋Š” ๊ฒƒ์€ ๋ง ๊ทธ๋Œ€๋กœ ์ปค๋„ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” Windows์—์„œ ์ปค๋„ ์•ˆ์— ์กด์žฌํ•˜๋ฉฐ ๊ทธ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์ผ์ข…์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ํ•œ ๋ฒˆ ์ด์•ผ๊ธฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


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


๊ทธ๋ ‡๋‹ค๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๋–ค ํŒŒ์ผ(neonkid.txt)๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด, ์ด ํŒŒ์ผ ์ž์ฒด๊ฐ€ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ์ธ๊ฐ€? ๊ทธ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ด ๋ฆฌ์†Œ์Šค ์ž์ฒด๋ฅผ ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” Windows์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ•œ ๋ฒˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.




ํŒŒ์ผ ํ•œ ๊ฐœ์— ๋Œ€ํ•œ ์ •๋ณด์—๋Š” ์ด ํŒŒ์ผ์ด ๋””๋ ‰ํ† ๋ฆฌ์ธ์ง€, ์ผ๋ฐ˜ ํŒŒ์ผ์ธ์ง€์— ๋Œ€ํ•œ ์ •๋ณด, ๊ทธ ์™ธ์— ์ด๊ฒƒ์ด ํ˜น์‹œ 'Read-only' ์†์„ฑ, ํ˜น์€ 'Hidden' ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ •๋ณด๋“ค์ด ๋ฐ”๋กœ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ์— ํ•ด๋‹น ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ ์ด์™ธ์— ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.




ํ”„๋กœ์„ธ์Šค ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ž์ฒด๊ฐ€ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด๋“ค ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, ์œ„ ํ™”๋ฉด์ฒ˜๋Ÿผ PID, Process Status(CPU) ๋“ฑ์˜ ์ •๋ณด๋“ค์ด ๋ฐ”๋กœ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.


๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋Š” ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋˜๊ณ , ์‚ฌ์šฉ๋ ๊นŒ์š”?


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


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



HANDLE ๊ตฌ์กฐ์ฒด

์œˆ๋„์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๋ณด๋ฉด, HANDLE ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŽ์ด ์ ‘ํ•˜์‹œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. HANDLE ๊ตฌ์กฐ์ฒด๋Š” ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๊ฑด๋“œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ฒด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.


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


ํ•˜์ง€๋งŒ ์œ„์—์„œ๋„ ๋งํ–ˆ๋‹ค์‹œํ”ผ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ปค๋„์ด ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹น์—ฐํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ๊ฑด๋“œ๋ฆด ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. (์šด์˜์ฒด์ œ์˜ ๊ฐœ๋ก ์„ ์•„์‹œ๋Š” ๋ถ„์ด๋ผ๋ฉด ์ดํ•ด๊ฐ€ ๋˜์‹œ๋Š” ๋‚ด์šฉ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.) 


๊ทธ๋ž˜์„œ ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ด ๋ฐ”๋กœ HANDLE ๊ตฌ์กฐ์ฒด์ž…๋‹ˆ๋‹ค. 


์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค. ์•„๋‹ˆ๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด์„œ ์–ด๋–ค ํŒŒ์ผ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‚˜ ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ, ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ์— ์ง์ ‘์ ์ธ ์ ‘๊ทผ์€ ์•ˆ ๋˜์ง€๋งŒ, HANDLE ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„์ ‘์ ์ธ ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์‹ค์ƒ HANDLE๊ณผ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋Š” ๊ฐ™์€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ํ•ธ๋“ค์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ป๋ฐ๊ธฐ์ด๊ณ , ๊ทธ ๋‚ด์šฉ๋ฌผ์€ ๋ฐ”๋กœ ์ปค๋„ ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 



Coding...

์ž ์ด์ œ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•˜์…จ๋‹ค๋ฉด, ์ฝ”๋”ฉ ๋ถ€๋ถ„์œผ๋กœ ๋„˜์–ด์˜ค์‹œ๋ฉด ๋˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์€ ์ฐจ๊ธฐ ํฌ์ŠคํŠธ์—์„œ ๋”ฐ๋กœ ํฌ์ŠคํŒ…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋”ฉ์„ ํ•˜์‹œ๊ธฐ ์ „์—, ๋ฐ˜๋“œ์‹œ ์œ„ ๋‘ ๊ฐœ์˜ ๊ฐœ๋…์„ ์ˆ™์ง€ํ•˜์‹  ํ›„ ์ง„ํ–‰ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments