์ดํ•ดํ•˜๋ฉด ์ธ์ƒ์ด ๋ฐ”๋€Œ๋Š” Windows API hook

ํŠน์ • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ์ข… API ํ•จ์ˆ˜๋“ค์„ ํ˜ธ์ถœํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ€๋กœ์ฑ„๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ ๋ณด์•ˆ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค. โ€ป์ ˆ๋Œ€ ์•…์šฉ๊ธˆ์ง€!!!

(4.8) ์ˆ˜๊ฐ•ํ‰ 42๊ฐœ

์ˆ˜๊ฐ•์ƒ 560๋ช…

๋‚œ์ด๋„ ์ค‘๊ธ‰์ด์ƒ

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์—”์”จ์†Œํ”„ํŠธ
๋กฏ๋ฐ์‡ผํ•‘ ์ด์ปค๋จธ์Šค์‚ฌ์—…๋ณธ๋ถ€
์•ˆ๋žฉ
ํ˜„๋Œ€์ž๋™์ฐจ
์œ ๋น„ํํ…Œํฌ๋†€๋กœ์ง€

์œ ๋น„ํํ…Œํฌ๋†€๋กœ์ง€

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

์—”์”จ์†Œํ”„ํŠธ
๋กฏ๋ฐ์‡ผํ•‘ ์ด์ปค๋จธ์Šค์‚ฌ์—…๋ณธ๋ถ€
์•ˆ๋žฉ
ํ˜„๋Œ€์ž๋™์ฐจ
์œ ๋น„ํํ…Œํฌ๋†€๋กœ์ง€

์œ ๋น„ํํ…Œํฌ๋†€๋กœ์ง€

์ž„์ง์›๋“ค๋„ ์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ์–ด์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.8

5.0

sunny75

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

(25/06/29/์ผ 08:51) ๊ฐ•์˜๋ฅผ ๋“ค์–ด์„œ, hook ์„ ์ดํ•ด ํ–ˆ์Šต๋‹ˆ๋‹ค. printf("Hello world"); ๋ฅผ ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์•„์ฃผ ๋ณต์žกํ•œ ๊ฒƒ์ด ์—ˆ๊ตฐ์š”. ์ข‹์€ ๊ฐ•์˜ ๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

5.0

์„ธ์—๋ฐ”

96% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊ฐ•์˜๋ฅผ ์ •๋ง ์ž˜ํ•˜์‹œ๋„ค์š”. ์ „๋‹ฌ๋ ฅ์ด ์ข‹์•„์š”.

5.0

jeonsh95

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊น”๋”ํ•˜๊ณ  ์ข‹์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Windows API ํ˜ธ์ถœ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๋ฐฉ๋ฒ•

  • 64bit ๊ธฐ๋ฐ˜ IAT hook, Inline hook

  • ๊ฐ„๋‹จํ•œ ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•

์–‘๋‚ ์˜ ๊ฒ€, ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์™€ ์•…์„ฑ์ฝ”๋“œ ๊ฐœ๋ฐœ์ž ๋ชจ๋‘์˜ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค!

"๋ณด์•ˆ๊ธฐ์ˆ ๊ณผ ํ•ดํ‚น๊ธฐ์ˆ ์€ ์ •๋ง ์ข…์ด ํ•œ ์žฅ ์ฐจ์ด๋ผ ํ•  ๋งŒํผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค."

์ด ๊ฐ•์˜๋Š” Windows API hook ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๊ฐ•์˜๋กœ ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์„ ๋“œ๋ฆฌ๊ณ ์ž ๋งŒ๋“ค์–ด์ง„ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์ด API hook ๊ธฐ์ˆ ์€ ์˜ค๋ž˜ ์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์–ด์˜จ ๊ธฐ์ˆ ๋กœ ์ข‹์€ ์˜๋„๊ณผ ๊ทธ๋ ‡์ง€ ๋ชปํ•œ ์˜๋„ ์–‘์ชฝ ๋ชจ๋‘๊ฐ€ ํ™œ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. โ€ป์•…์šฉ๊ธˆ์ง€

โ€ป์ฃผ์˜, ์ด ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ ์˜ˆ์ œ ์ผ๋ถ€๋Š” ์œˆ๋„์šฐ ๋””ํŽœ๋”๊ฐ€ ์•…์„ฑ์ฝ”๋“œ๋กœ ์ธ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€
๋˜๊ณ  ์‹ถ์€ ๋ถ„

ํŠนํžˆ PC์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฐ์ข… ๋ณด์•ˆ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค์— API hook ๊ธฐ์ˆ ์€ ๋ฐ˜๋“œ์‹œ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ธฐ๋ฒ•์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ˆ˜์—…์„ ํ†ตํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ํ•ต์‹ฌ๋งŒ ์ œ๋Œ€๋กœ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋ฒ„์‹ฑ ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๊ธฐ์— ์•ž์„œ
๊ณ ๊ธ‰ ์ด๋ก ์„ ๋ฏธ๋ฆฌ ๊ณต๋ถ€๋ ค๋Š” ๋ถ„

ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ˆ˜์ค€์—์„œ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ๊ณ ๊ธ‰์–ด์—์„œ ๋ณผ ์ˆ˜ ์—†์—ˆ๋˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ 'ํ•จ์ˆ˜๋ž€ ๋ฌด์—‡์ธ๊ฐ€?'์— ๋Œ€ํ•œ ๊ณ ์ˆ˜์ค€ ์ดํ•ด์™€ ํ•ด๋‹ต์„ ์Šค์Šค๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•…์„ฑ์ฝ”๋“œ์˜ ์ž‘๋™ ์›๋ฆฌ๋ฅผ
์•Œ๊ณ  ์‹ถ์€ ๋ถ„

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

๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฐ•์˜๋Š” ์•…์„ฑ์ฝ”๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„์—๋Š”

  • 'ํ•จ์ˆ˜'์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์ฐจ์›์˜ ์ดํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ด ๊ฐ•์˜๋ฅผ ๋์œผ๋กœ ํ•จ์ˆ˜์— ๊ด€ํ•œ ๋‚ด ์ดํ•ด๋Š” ์™„์„ฑ๋‹จ๊ณ„์— ๋Œ์ž… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ €์ˆ˜์ค€์œผ๋กœ ๋‚ด๋ ค๊ฐ€์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๊ณ ์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์„ธ๊ณ„์—์„œ๋Š” ์ ˆ๋Œ€๋กœ ์•Œ ์ˆ˜ ์—†์—ˆ๋˜ ์ƒˆ๋กœ์šด ์„ธ์ƒ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  • C/C++๋กœ ๊ฐœ๋ฐœ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ๋˜๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์˜ ํŠน์ง•

์ดํ•ดํ•˜๋ฉด ์ธ์ƒ์ด ๋ฐ”๋€Œ๋Š” Windows API hook

Inline hook์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋ฒ•์„ ์ œ๊ณต

Inline hook ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋Š” ์•Œ๋ ค์ง„ ๊ธฐ๋ฒ•๋“ค์„ ๋Œ€๋ถ€๋ถ„ ๋‹ค๋ฃฐ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•ด ๋ณด๋‹ค ์•ˆ์ •์ ์ธ hook ๊ธฐ์ˆ  ๊ตฌํ˜„์ด ๊ฐ€๋Šฅ ํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ์•ˆ์ •์„ฑ์€ ํ•„์ˆ˜ ์ž…๋‹ˆ๋‹ค.

์ž‘๋™ ์›๋ฆฌ๋ฅผ ์ดํ•ด์‹œ์ผœ์ฃผ๋Š” ๊ฐ•์˜

API hook ๊ธฐ์ˆ ์€ ๊ทธ ์ž์ฒด๊ฐ€ ์ด๋ฏธ ๋†’์€ ๋‚œ์ด๋„๋ฅผ ์ž๋ž‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฝํ—˜ ๋งŽ์€ C/C++ ๊ฐœ๋ฐœ์ž๋ผ ํ•˜๋”๋ผ๋„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์‹ค ์›๋ฆฌ๋งŒ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋ฉด ์ฝ”๋“œ ์ž์ฒด๋Š” ๋ณ„๊ฒƒ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ์›๋ฆฌ์— ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๊ฒ€์ฆ๋œ ์ฝ”๋“œ๋ฅผ ์˜ˆ์ œ๋กœ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”

PEํŒŒ์ผ ๊ตฌ์กฐ ์†Œ๊ฐœ IAT hook

์œˆ๋„์šฐ OS ํ™˜๊ฒฝ ์‹คํ–‰ ํŒŒ์ผ(.exe, .dll)์˜ ํ˜•์‹์ธ PEํ˜•์‹์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•˜๊ณ  ๊ทธ ์ค‘ IAT(Import Address Table)์„ ์กฐ์ž‘ํ•ด ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ PEํ˜•์‹ ๋ฐ ๊ด€๋ จ ์ด๋ก ์„ ๊นŠ๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ๋ณด๋‹ค Hook ๊ธฐ์ˆ  ๊ตฌํ˜„์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ด๋ก ๋งŒ ๋‹ค๋ฃจ๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ˜ธ์ถœ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๊ฒฐ๊ณผ์— ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค.

Inline hook

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

๋˜ํ•œ ์ธํ„ฐ๋„ท์— ๊ณต๊ฐœ๋œ ๋Œ€๋ถ€๋ถ„์˜ ์ž๋ฃŒ๊ฐ€ x86 ํ™˜๊ฒฝ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋ฏธ ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์ด 64bit ํ™˜๊ฒฝ์ž„์„ ๊ณ ๋ คํ•ด x64 ํ”Œ๋žซํผ์—์„œ Inline hook์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‚˜์š”?

Q. ์•ˆ๋žฉ๊ฐ™์€ ํšŒ์‚ฌ์— ์ทจ์—…ํ•˜๊ณ  ์‹ถ์€ ํ•™์ƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๊ฐ€ ๋„์›€์ด ๋ ๊นŒ์š”?

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

Q. ์ด ์ˆ˜์—…์„ ๋“ฃ๊ณ  ๋‚˜๋ฉด V3๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”?

์ „์ฒด๋Š” ์•„๋‹ˆ์ง€๋งŒ ๊ธฐ๋Šฅ ์ผ๋ถ€๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. API hook ๊ธฐ์ˆ ์€ ์ „์ฒด์˜ ์ผ๋ถ€์ผ ๋ฟ ๋ชจ๋“  ๊ฒƒ์ด๋ผ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  V3๊ฐ™์€ ์•ˆํ‹ฐ ๋ฐ”์ด๋Ÿฌ์Šค ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ์€ ์‹ค์‹œ๊ฐ„ ๊ฐ์‹œ ์—”์ง„์— ์žˆ์œผ๋ฉฐ ์ด๋Š” ์ปค๋„ ๋“œ๋ผ์ด๋ฒ„๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Q. ์•…์„ฑ์ฝ”๋“œ ๋ถ„์„ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๊ฐ€ ๋„์›€์ด ๋ ๊นŒ์š”?

๋„ค, ์ž˜ ์ฐพ์•„์˜ค์…จ์Šต๋‹ˆ๋‹ค! API hook ๊ธฐ์ˆ ์€ ๊ฐ„ํ˜น '๋ฆฌ๋ฒ„์‹ฑ์˜ ๊ฝƒ'์œผ๋กœ ์„ค๋ช…๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋งŒํผ ์ค‘์š”ํ•œ ๊ฒƒ์ด๋ฉฐ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ผ์‹ ์š”๋ฆฌ์‚ฌ๋‹˜์˜ ์˜ˆ๋ฆฌํ•œ ์นผ๊ณผ ๊ฐ™์€ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ์™„์ „ํžˆ ์ž์‹ ์˜ ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 11

  • ์‚ฌ์šฉ ๋„๊ตฌ: Visual Studio 2022 Community

  • PC ์‚ฌ์–‘: Visual Studio๊ฐ€ ๋ฌด๋ฆฌ ์—†์ด ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ด๋ฉด ์ถฉ๋ถ„

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ PPT์ž๋ฃŒ๋ฅผ PDF๋กœ ์ œ๊ณต

  • ์ „์ฒด ์˜ˆ์ œ(x86, x64 ๋ถ„๋ฆฌ ์ œ๊ณต)

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • ํฌ์ธํ„ฐ ์‚ฌ์šฉ์— ์–ด๋ ค์›€์ด ์—†๋Š” ์ˆ˜์ค€์˜ C์–ธ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ ฅ
    (๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜์ค€)

  • ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ ๋””์Šค์–ด์…ˆ๋ธ” ์ฝ”๋“œ๋ฅผ ์ผ๋ถ€ ์ฝ์–ด ๋ณธ ๊ฒฝํ—˜ (ํ•„์ˆ˜)

  • ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด ๋ฐ C์–ธ์–ด๋กœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณธ ๊ฒฝํ—˜ (ํ•„์ˆ˜)


  • C++ name mangling์— ๋Œ€ํ•œ ์ดํ•ด (ํ•„์ˆ˜)

  • Windows system programming ๊ฒฝํ—˜ (ํ•„์ˆ˜)

  • ๊ฐ„๋‹จํ•œ TCP/IP ์ฑ„ํŒ… ์˜ˆ์ œ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ์ •๋„์˜ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜ (์„ ํƒ)


์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  
์ง€์‹๊ณต์œ ์ž๋Š”
๐Ÿ‘จโ€๐Ÿ’ป

๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž TV์˜ โ€˜๋„๋„ํ•œ ๊ฐœ๋ฐœ์žโ€™ ์ตœํ˜ธ์„ฑ์ž…๋‹ˆ๋‹ค.

  • (๋ชจ๋‘๊ฐ€ ์‹ซ์–ดํ•˜๋Š”) ๊ตญ๋‚ด ์ตœ์ดˆ PC ๋ฐฉํ™”๋ฒฝ ๊ฐœ๋ฐœ์ž

  • 1992๋…„๋ถ€ํ„ฐ C์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•œ 30๋…„ ๋ฌต์€ C/C++ ๊ฐœ๋ฐœ์ž

  • ๋‹ค์ˆ˜ ๊ตญ์ฑ…๊ณผ์ œ ์ˆ˜ํ–‰ ๊ฒฝํ—˜์ž์ด์ž 15๋…„ ์ด์ƒ ๊ฐœ๋ฐœ ๊ฐ•์˜ ๊ฒฝ๋ ฅ์„ ํ•จ๊ป˜ ๋ณด์œ ํ•œ ์•„์ €์”จ!

  • C์–ธ์–ด ์ธ๊ธฐ ์ž…๋ฌธ์„œ ใ€Ž๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” C ํ”„๋กœ๊ทธ๋ž˜๋ฐใ€ ์ €์ž



์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • C/C++ ๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ํ•จ์ˆ˜๋ž€ ๋ฌด์—‡์ธ์ง€ ๊ทธ ๋ณธ์งˆ์— ๋Œ€ํ•ด ๊นŠ์€ ์ดํ•ด๋ฅผ ์–ป๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

  • ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ๋ถ„

  • Windows ํ™˜๊ฒฝ์—์„œ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์„ ํ•ด๋ณด๋ ค๋Š” ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C์–ธ์— ๋Œ€ํ•œ ๋†’์€ ์ดํ•ด๋„

  • Windows system programming (์ค‘๊ธ‰ ์ด์ƒ)

์•ˆ๋…•ํ•˜์„ธ์š”
๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

์ธํ”„๋Ÿฐ์ธ์ฆ

53,083

๋ช…

์ˆ˜๊ฐ•์ƒ

3,207

๊ฐœ

์ˆ˜๊ฐ•ํ‰

1,217

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

32

๊ฐœ

๊ฐ•์˜

๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž TV ์ฑ„๋„ ์ฃผ์ธ์žฅ์ด์ž
30๋…„ ๋„˜๊ฒŒ IT๊ธฐ์ˆ ์˜ ๋ฐ”๋‹ค๋ฅผ ํ•ญํ•ดํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์ž…๋‹ˆ๋‹ค.  ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. ^^  

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

27๊ฐœ โˆ™ (4์‹œ๊ฐ„ 6๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

42๊ฐœ

4.8

42๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • parktest0325๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    parktest0325

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    67% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ ๋‹นํžˆ ์Šคํ‚ตํ•ด์ฃผ์‹œ๋ฉด์„œ ํ‚ค์›Œ๋“œ๋Š” ๋‹ค ๋‹ด์•„์ฃผ์…”์„œ ์‹œ๊ฐ„๋‚ญ๋น„ ์—†์ด ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„๋งŒ ์•Œ์•„์„œ ๋ณด์ถฉํ•ด๊ฐ€๋ฉด์„œ ๋“ฃ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ด์œผ๋ ค๊ณ  ๊ธธ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๊ฐ•์˜๋ณด๋‹ค ํ›จ์”ฌ ์ข‹๋„ค์š”

    • ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž
      ์ง€์‹๊ณต์œ ์ž

      ์ข‹์€ ํ‰๊ฐ€์™€ ํ”ผ๋“œ๋ฐฑ ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ๊น”๋”ํ•˜๊ฒŒ ๋‹ด์•„๋‚ด๊ณ  ์‹ถ์—ˆ๋˜ ๋งˆ์Œ์„ ์ดํ•ด๋ฐ›๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ–‰๋ณตํ•˜๋„ค์š”. :)

  • ์„ธ์—๋ฐ”๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์„ธ์—๋ฐ”

    ์ˆ˜๊ฐ•ํ‰ 4

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    96% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊ฐ•์˜๋ฅผ ์ •๋ง ์ž˜ํ•˜์‹œ๋„ค์š”. ์ „๋‹ฌ๋ ฅ์ด ์ข‹์•„์š”.

    • ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž
      ์ง€์‹๊ณต์œ ์ž

      ์ข‹๊ฒŒ ๋ด์ฃผ์…”์„œ ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. ๋” ์ข‹์€ ๊ฐ•์˜๋กœ ๋ณด๋‹ตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. :)

  • jeonsh95๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    jeonsh95

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  3.5

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊น”๋”ํ•˜๊ณ  ์ข‹์Šต๋‹ˆ๋‹ค.

  • kwoni.chung๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    kwoni.chung

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    injection์— ๋Œ€ํ•œ NTcreateFileํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ํ•ด์„œ ์˜ˆ์ œ๋ฅผ ํ•ด ์ฃผ์‹œ๋ฉด ๋” ์ข‹์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž
      ์ง€์‹๊ณต์œ ์ž

      ์ข‹์€ ํ‰๊ฐ€์™€ ํ”ผ๋“œ๋ฐฑ ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. NtCreateFile()์„ Hookํ•˜์‹ค ๋ชจ์–‘์ด๋ผ๋ฉด ์‹ค์‹œ๊ฐ„ ๊ฐ์‹œ ์—”์ง„๊ฐ™์€ ๊ฒƒ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ชจ์–‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Hook ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆ์น˜ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. :)

  • sunny75๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    sunny75

    ์ˆ˜๊ฐ•ํ‰ 130

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    (25/06/29/์ผ 08:51) ๊ฐ•์˜๋ฅผ ๋“ค์–ด์„œ, hook ์„ ์ดํ•ด ํ–ˆ์Šต๋‹ˆ๋‹ค. printf("Hello world"); ๋ฅผ ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์•„์ฃผ ๋ณต์žกํ•œ ๊ฒƒ์ด ์—ˆ๊ตฐ์š”. ์ข‹์€ ๊ฐ•์˜ ๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž
      ์ง€์‹๊ณต์œ ์ž

      ์™€์šฐ~! ์—ด๊ณต๋ชจ๋“œ๋กœ ๋‹ฌ๋ฆฌ์‹œ๋‚˜ ๋ด…๋‹ˆ๋‹ค. ์ธ์ฝ”๋”ฉ์„ ๋„˜์–ด API hook๊นŒ์ง€ ๋‹ฌ๋ฆฌ์…จ๋„ค์š”. ๋œจ๊ฑฐ์šด ์—ฌ๋ฆ„์„ ํ•™์Šต์œผ๋กœ ๋ถˆํƒœ์šฐ๋Š” ๊ฒƒ๋„ ๋ฉ‹์ง„ ์„ ํƒ์ด ์•„๋‹๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์‘์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค. :)

๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!