728x90

1. ์™ธ๋ถ€ํ†ต์‹  ๊ด€๋ จ ์ฝ”๋“œ

  • ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ๋•Œ, Win32 Internet API ๋ฐ Win32 Socket API๋ฅผ ์‚ฌ์šฉ
  • ๊ทธ ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋™์ž‘์„ ์ˆ˜ํ–‰
    • UDP ํ†ต์‹ : ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ 
    • TCP ํ†ต์‹ : ์–‘๋ฐฉํ–ฅ ํ†ต์‹ 

1.1 ๋™์ž‘ ํ™•์ธ

  • Sample 07.exe๋Š” Internet API๋ฅผ ์‚ฌ์šฉํ•ด์„œ procexp.exe๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰.
  • procexp.exe๋Š” MS์—์„œ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง Tool
  • TCPView.exe(sysinternals์—์„œ ์ œ๊ณตํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๋ชจ๋‹ˆํ„ฐ๋ง Tool)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Sample 07.exe๊ฐ€ "live.sysinternals.com"์œผ๋กœ ์ ‘์†ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ทธ ๊ฒฐ๊ณผ "%temp%" ๊ฒฝ๋กœ์— procexp.exe๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋˜๊ณ  ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ๋œ procexp.exe๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด Sample 07.exe์˜ ๋™์ž‘์ด ๋๋‚œ๋‹ค.

1.2 ์ฝ”๋“œ ํ•™์Šต

  • procexp.exe๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • "%temp%" ๊ฒฝ๋กœ์— procexp.exe๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•œ๋‹ค.

 

  • InternetOpen() API๋ฅผ ์‚ฌ์šฉํ•ด์„œ WinINet ํ•จ์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.(Internet API๋ฅผ ์œ„ํ•œ ์ค€๋น„ ์ž‘์—…)

  • InternetOpenUrl() API๋ฅผ ์“ฐ๋ฉด URL์— ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์—ด ์ˆ˜ ์žˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ์ธ์ž ๊ฐ’ 'IpUrlPath'์—๋Š” URL("http://live.sysinternals.com/procexp.exe")๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

  • InternetReadFile() API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • InternetReadFile()์˜ ์„ธ ๋ฒˆ์งธ ์ธ์ž์—๋Š” ํฌ๊ธฐ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ๋จผ์ € ํฌ๊ธฐ๋ฅผ ๋ฌผ์–ด๋ด์•ผ ํ•œ๋‹ค.
  • ํฌ๊ธฐ๋ฅผ ๋ฌผ์–ด๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” InternetQueryDataAvailable() API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ์„œ๋ฒ„์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 'dwSize'๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ๋‚˜๋ฉด "%temp%" ๊ฒฝ๋กœ์— ์žˆ๋Š” procexp.exe์— ์ฑ„์›Œ ๋„ฃ๊ณ  ์ด ์ž‘์—…์€ procexp.exe ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋œ๋‹ค.
  • ๋‹ค์šด๋กœ๋“œ ์—ฌ๋ถ€๋Š” 'dwRead'๊ฐ’์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  'dwRead'์—๋Š” ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ๋ณ€์ˆ˜์˜ ํฌ์ธํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋๋‚˜๊ฑฐ๋‚˜ Error ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ 0์ด ๋“ค์–ด๊ฐ€๊ณ , ์ด๋•Œ ๋‹ค์šด๋กœ๋“œ ๋™์ž‘์ด ์ข…๋ฃŒ๋œ๋‹ค.

  • ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๋๋‚˜๋ฉด ํ•ธ๋“ค์€ ๋ฐ˜ํ™˜์ด ๋˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ procexp.exe๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Sample 07.exe๋Š” ์ข…๋ฃŒ๋œ๋‹ค.


1.3 ํŒŒ์ผ ๋ถ„์„

  • Sample 07.exe๋Š” "%temp%" ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„๋‚ธ ๋’ค์— procexp.exe ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” InternetOpenUrlA() ํ˜ธ์ถœํ•ด์„œ "https://live.sysinternals.com/procexp.exe"๋กœ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•œ๋‹ค.
  • ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ ์—ฌ๋ถ€๋Š” InternetOpenUrlA() ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • InternetQueryDataAvailable() API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ์— ์–ผ๋งˆ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋งŒํผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ํŒŒ์ผ์— ๋‹ด์œผ๋ฉด ๋œ๋‹ค. InternetReadFile() API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด 'IpBuffer'๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ์— ํŒŒ์ผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.
  • 'DWORD PTR SS:[ESP+10]'์€ 'dwRead'๊ฐ’์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ด ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ฉด ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ๋™์ž‘์ด ๊ณ„์† ๋ฐ˜๋ณต๋˜๊ณ  'dwRead'๊ฐ’์ด 0์ด ๋  ๋•Œ, ๋‹ค์šด๋กœ๋“œ ๋™์ž‘์ด ๋๋‚˜๊ณ  ํ•ธ๋“ค ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ๋‹ค์šด๋กœ๋“œํ•œ procexp.exe๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด Sample 07.exe ๋™์ž‘์€ ๋งˆ๋ฌด๋ฆฌ๋œ๋‹ค.

2. Window ์ œ์–ด ์ฝ”๋“œ ํ•™์Šต ๋ฐ ๋ถ„์„

  • Windows ์šด์˜์ฒด์ œ๋Š” ๋‹ค์ค‘ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ ์†์— ์œˆ๋„์šฐ๋“ค ๊ฐ„์— ๋™๊ธฐํ™”๋‚˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋กœ๋ฅผ ์•Œ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

2.1 ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ์œˆ๋„์šฐ ์ œ์–ด

  • FindWindow() API๋Š” ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ Caption ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์„œ ์›ํ•˜๋Š” ์œˆ๋„์šฐ์˜ ํ•ธ๋“ค ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์œˆ๋„์šฐ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๋•Œ, NULL ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ ์ธ์ž์ธ lpClassName์€ ํด๋ž˜์Šค๋ช…, ๋‘ ๋ฒˆ์งธ ์ธ์ž์ธ lpszWindowName์€ ์œˆ๋„์šฐ ์บก์…˜๋ช…์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๋‘˜ ๋‹ค ์˜ต์…˜์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”์— ๋”ฐ๋ผ ๋„ฃ๊ฑฐ๋‚˜ NULL ๊ฐ’์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.(๊ฒ€์ƒ‰์˜ ์ •ํ™•๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ๊ฐ’์„ ๋ชจ๋‘ ๋„ฃ์–ด์ค˜๋„ ๋œ๋‹ค.)

  • FindWindow()๋Š” ์ตœ์ƒ์œ„ ์œˆ๋„์šฐ๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” API๋กœ ์–ด๋–ค ์œˆ๋„์šฐ์— ์ข…์†๋œ ์œˆ๋„์šฐ๋ฅผ ์ฐพ๊ณ ์ž ํ•  ๋•Œ๋Š” FindWindowEx()๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • FindWindowEX() API๋Š” FindWindow()์˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ์ธ์ž์ธ hwndParent๋Š” ์ž์‹ ์ด ์ฐพ๋Š” ์œˆ๋„์šฐ์˜ ์ตœ์ƒ์œ„ ์œˆ๋„์šฐ ํ•ธ๋“ค์ด๋‹ค. ์—ฌ๊ธฐ์— NULL ๊ฐ’์„ ์ฃผ๋ฉด FindWindow()์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘.
  • ๋‘ ๋ฒˆ์งธ ์ธ์ž์ธ hwndChildAfter๋Š” ๋™์ผํ•œ level์˜ ์œˆ๋„์šฐ๋“ค ์ค‘์—์„œ ๊ฒ€์ƒ‰ ์‹œ์ ์„ ๊ฒฐ์ •ํ•˜๋Š” ์š”์†Œ์ด๋‹ค. ๋ณดํ†ต NULL ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.

*P13~20

FindWindow()๋ฅผ ์‚ฌ์šฉํ•ด์„œ notepad.exe์— ๋ฌธ์ž์—ด ์ถœ๋ ฅ์‹œํ‚ค๋Š” ์—ฐ์Šต์€ ๋‹ค์Œ์— ์ด์–ด์„œ....

 


2.2 ๋™์ž‘ ํ™•์ธ

:Sample 08.exe๋Š” InternetExplorer.exe๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํŠน์ • ์›น ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

  1. InternetExploer๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  2. ์ฃผ์†Œ ์ž…๋ ฅ์ฐฝ์„ ์ฐพ๊ณ  ํ•ธ๋“ค์„ ํš๋“ํ•œ๋‹ค.
  3. ์ฃผ์†Œ ์ž…๋ ฅ์ฐฝ์— "www.naver.com" ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๊ณ  ENTER ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ๋‹ค.

2.3 ์ฝ”๋“œ ํ•™์Šต

  •  FindWindow() API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” "์–ด๋–ค ์œˆ๋„์šฐ์— ๋ฌด์Šจ ๋ฉ”์‹œ์ง€๋ฅผ ๋˜์งˆ ๊ฒƒ์ธ๊ฐ€?"๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”.
    • ๋‚ด๊ฐ€ ์ฐพ์€ ์œˆ๋„์šฐ๊ฐ€ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋Œ€์ƒ์ด ์•„๋‹Œ ๊ฒฝ์šฐ
    • ์ž˜๋ชป๋œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•ด์„œ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
    • ๋งŽ์€ ํ™•์ธ ๊ณผ์ • ํ•„์š”
  • Spy++์˜ Find๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์ฃผ์†Œ๊ฐ€ ์ž…๋ ฅ๋˜๋Š” ์œˆ๋„์šฐ๋ฅผ ํ™•์ธ
  • ํƒ€๊นƒ์œผ๋กœ ์‚ผ์€ ์œˆ๋„์šฐ InternetExplorer.exe์˜ ์ฃผ์†Œ ์ž…๋ ฅ์ฐฝ์— URL ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์›ํ•˜๋Š” ์ฃผ์†Œ๋กœ ์ ‘์†

  • ์‹ค์ œ ํƒ€๊นƒ ์œˆ๋„์šฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Œ

  • InternetExplorer.exe๋Š” Windows์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์น˜๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ ๊ฒฝ๋กœ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ์ด ์ ์„ ์ด์šฉํ•ด์„œ InternetExplorer.exe ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

  • FindWindow()์™€ FindWindowEx() API๋ฅผ ์‚ฌ์šฉํ•ด์„œ InternetExplorer.exe์˜ Edit ์œˆ๋„์šฐ ํ•ธ๋“ค์„ ์–ป์œผ๋ฉด ๋œ๋‹ค.

  • Edit ์œˆ๋„์šฐ์— URL์„ ์ž…๋ ฅํ•˜๊ณ  Enter ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ๊ฐ€์ƒํ‚ค ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค.


2.4 ํŒŒ์ผ ๋ถ„์„

  • Sample 08.exe ํŒŒ์ผ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ExpandEnvironmentStrings() API๋ฅผ ์‚ฌ์šฉ
    • ExpandEnvironmentString() API๋Š” ํŠน์ • ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฒฝ๋กœ ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๋ฅผ ์ด์šฉํ•ด "%ProgramFiles%" ๊ฒฝ๋กœ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • "\Internet Explorer\iexplore.exe" ๋ฌธ์ž์—ด์„ ๋”ํ•˜๊ณ  WinExec() API๋ฅผ ํ˜ธ์ถœํ•ด์„œ Internet Explorer.exe๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

  • ๋ฌธ์ž์—ด์„ ํ•ฉ์น˜๋Š” ๊ณผ์ •์—์„œ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋“ค์˜ ์—ญํ• 

  • InternetExplore.exe๊ฐ€ ์™„์ „ํžˆ ์‹คํ–‰๋  ๋•Œ๊นŒ์ง€ ์ผ์ •์‹œ๊ฐ„์„ ๋Œ€๊ธฐํ•œ ๋‹ค์Œ, FindWindow()์™€ FindWindowEx() API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํƒ€๊นƒ ์œˆ๋„์šฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
  • IEFrame๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์ž์‹ ์œˆ๋„์šฐ๋ฅผ ์ฐพ์•„๊ฐ€๋‹ค ๋ณด๋ฉด Edit ์œˆ๋„์šฐ์˜ ํ•ธ๋“ค ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
  • Edit ์œˆ๋„์šฐ์— URL ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ์„ค์ •ํ•œ๋‹ค. SendMessage()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œˆ๋„์šฐ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • WM_KEYDOWN ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•ด์„œ ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ํ•œ๋‹ค.
  • ๊ทธ ๊ฒฐ๊ณผ ํŠน์ • ์›น ํŽ˜์ด์ง€๋กœ ์ ‘์†ํ•˜๊ฒŒ ๋œ๋‹ค. ์„ธ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” 0x0D๋Š” ๊ฐ€์ƒํ‚ค ๊ฐ’์œผ๋กœ VK_RETURN์„ ์˜๋ฏธํ•œ๋‹ค.

3. TEB & PEB

  • Windows์—์„œ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์€ ์ง์ ‘ ํ˜ธ์ถœ๊ณผ ๊ฐ„์ ‘ ํ˜ธ์ถœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
  • ํ˜ธ์ถœ ์ฃผ์†Œ ์ •๋ณด๋ฅผ IAT์— ๊ธฐ๋กํ•ด๋†“๊ณ  ์ฐธ์กฐํ•˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์ง์ ‘ ์•Œ์•„๋‚ด๋Š”์ง€์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.(์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ชจ๋‘ API ๊ฐ„์ ‘ ํ˜ธ์ถœ ์‚ฌ์šฉ)

  • ์—ฌ๊ธฐ์„œ 'CALL DWORD PTR DS:[0x00405000]'์€ 0x00405000 ์ฃผ์†Œ์— ์žˆ๋Š” 4๋ฐ”์ดํŠธ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ์˜๋ฏธ
  • 0x00405000 ์ฃผ์†Œ๋Š” Import Address Table์ด๊ณ  WinExec() API ์ฃผ์†Œ๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ WinExec() API๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

 

  • ์ง์ ‘ ํ˜ธ์ถœ์€ WinExec()๋Š” Kernel32.dll์—์„œ Export ํ•˜๋Š” API๋‹ค.
  • ํ˜ธ์ถœ ์ฃผ์†Œ๋Š” ๋‹น์—ฐํžˆ Kernel32.dll์˜ Export Table์— ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. Export Table์˜ ์œ„์น˜ ์ •๋ณด๋Š” PE Header์— ์žˆ๋‹ค.
  1. Kernel32.dll์— ๋กœ๋“œ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ธ๋‹ค.(= ImageBase)
  2. ImageBase๋ฅผ ๊ธฐ์ค€์œผ๋กœ +0x0000008D ์ฃผ์†Œ์—๋Š” EXPORT Table์˜ RVA๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค.
  3. EXPORT Table๋กœ ์ด๋™ํ•ด์„œ WinExec() API์˜ ํ˜ธ์ถœ ์ฃผ์†Œ๋ฅผ ์–ป๋Š”๋‹ค.
  4. WinExec() API๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

** ๋‹ค์Œ์— ๋” ์ด์–ด์„œ....

 

+ Recent posts