728x90

PE์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

์„น์…˜ ํ—ค๋”

์„น์…˜ ํ—ค๋”: ๊ฐ ์„น์…˜์˜ ์†์„ฑ(property)์„ ์ •์˜ํ•œ ๊ฒƒ

  • ์„น์…˜์„ ๋‚˜๋ˆ ๋‘” ์ด์œ ?
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด 
    • ๋”ฐ๋ผ์„œ ๊ฐ ์„น์…˜์˜ ์†์„ฑ์„ ๊ธฐ์ˆ ํ•  ์„น์…˜ ํ—ค๋”๊ฐ€ ํ•„์š”ํ•ด์ง.
    • code, data, resource ๋งˆ๋‹ค ๊ฐ์ž์˜ ํŠน์„ฑ, ์ ‘๊ทผ ๊ด€ํ•œ ๋“ฑ์„ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ.
    • ํŒŒ์ผ/๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‹œ์ž‘ ์œ„์น˜, ํฌ๊ธฐ, ์—‘์„ธ์Šค ๊ถŒํ•œ ๋“ฑ ๊ฐ ์„น์…˜์˜ ์ •๋ณด์™€ ์†์„ฑ, ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ •๋ฆฌํ•ด์„œ ์„น์…˜ ํ—ค๋”์— ๋„ฃ์–ด๋‘ .


  • ์„น์…˜ ํ—ค๋”๋Š” ๊ฐ ์„น์…˜๋ณ„ IMAGE_SECTION_HEADER์˜ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด๋กœ ์ด๋ฃจ์–ด์ง
  • Virtual Size: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์ด ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ
  • Virtual Address: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ(RVA)
  • SizeOfRawData: ํŒŒ์ผ์—์„œ ์„น์…˜์ด ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ
  • PointerToRawData: ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜
  • Characteristics: ์„น์…˜์˜ ์†์„ฑ(bit OR)

→ VirtualAddress์™€ PointerToRawData๋Š” ์•„๋ฌด ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์•ž์— ์ •์˜๋œ SectionAlignment์™€ FileAlignment์— ๋งž๊ฒŒ ๊ฒฐ์ •.

์ผ๋ฐ˜์ ์œผ๋กœ VirtualSize์™€ SizeOfRawData๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’

(ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ํฌ๊ธฐ์™€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—)


  • NT HEADER์˜ Characterisitc ํ•ญ๋ชฉ์ฒ˜๋Ÿผ ๋‹ค ๋”ํ•ด์„œ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • PE ์ŠคํŽ™์—๋Š” Name์„ ์ง€์„ ๋•Œ ๊ทœ์น™์ด ์—†๋‹ค.
  • ๋ฐ์ดํ„ฐ ์„น์…˜ ์ด๋ฆ„์„ .code๋กœ ํ•ด๋„ ์‹คํ–‰์ด ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ •๋ณด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ด์•ผ ํ•œ๋‹ค.

  • ์—ฌ๊ธฐ์„œ 'IMAGE'๋Š” ํŒŒ์ผ์—์„œ PE์™€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ PE๊ฐ€ ๋ชจ์–‘์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, '๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ PE์˜ ์ƒํƒœ'๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ PE๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ์ง€์  = ImageBase
  • ๊ฐ ์„น์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋”ฉ ์ดํ›„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์ž˜ ๋งค์นญ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋จ!

RVA to RAW

  • RVA to RAW: RVA๊ฐ€ ์†ํ•œ ์„น์…˜์„ ์ฐพ์•„์„œ RAW๋ฅผ ์œ„์˜ ๋น„๋ก€์‹์œผ๋กœ ๊ณ„์‚ฐ
  • ๋จผ์ € ํ•ด๋‹น RAV๊ฐ’์ด ์†ํ•œ ์„น์…˜์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
    • RVA 5000 → ์ฒซ๋ฒˆ์งธ ํ…์ŠคํŠธ ์„น์…˜์— ์†ํ•ด์žˆ๋‹ค. (ImageBase 01000000์„ ๊ณ ๋ คํ•ด์„œ VA๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ)
  • ๋น„๋ก€์‹์— ๋”ฐ๋ผ ๊ณ„์‚ฐ
    • RAW = 5000(RVA) - 1000(VirtualAddress, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ—ค๋”-ํ…์ŠคํŠธ ์„น์…˜๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ)+400(PointerToRawData) = 4400
    • VirtualAddress๊ฐ€ 1000์ธ ์ด์œ ๋Š” Memory์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 01001000์—์„œ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ 1000์ด๋‹ค. (ImageBase ๊ฐ’์„ ๋นผ๋ฉด) PointerToRawData ๊ฐ’์ด 400์ธ ์ด์œ ๋Š” File์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 00000400์—์„œ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์„น์…˜

  • ์„น์…˜ํ—ค๋”๋“ค์ด ์„น์…˜ ํ…Œ์ด๋ธ”์— ์ •๋ฆฌ๋˜์–ด ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋กœ๋”๊ฐ€ ๊ฐ ์„น์…˜์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ์†์„ฑ์„ ์„ค์ •ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ์žˆ๋‹ค.

 

  • ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์žˆ๋Š” ์„น์…˜๋„ ์žˆ๊ณ  ์—†๋Š” ์„น์…˜๋„ ์žˆ๋Š”๋ฐ .text ์„น์…˜์€ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

IAT์™€ EAT

  • IAT(Import Address Table): ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•œ ํ…Œ์ด๋ธ”
  • DLL(Dynamic Linked Library): ๋™์  ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ค€๋ง
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ
    • 16๋น„ํŠธ DOS์—์„œ๋Š” ์‹คํ–‰ํŒŒ์ผ์— ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Œ.
    • 32๋น„ํŠธ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์„ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค์šฐ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜(process, memory, window, message)๊ฐ€ ์‚ฌ์šฉ๋จ.
    • ์ด๊ฒƒ์ด ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์„ ์ง€์›ํ•˜๋Š” Windoes OS์—์„œ๋Š” ์‹ฌ๊ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ/๋””์Šคํฌ ๋‚ญ๋น„๊ฐ€ ๋จ.
    • ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ ๋กœ๋”ฉ๋œ DLL์˜ ์ฝ”๋“œ, ๋ฆฌ์†Œ์Šค๋ฅผ Memory mapping ๊ธฐ์ˆ ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” DLL ๊ฐœ๋… ๋“ฑ์žฅ

→ ํ”„๋กœ๊ทธ๋žจ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๊ณ , ๋ณ„๋„์˜ ํŒŒ์ผ(DLL)๋กœ ๊ตฌ์„ฑํ•ด ํ•„์š”ํ•  ๋•Œ ์“ฐ๋Š” DLL ๊ฐœ๋…์ด ๋“ฑ์žฅํ•จ.

์ด๋Ÿฌ๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์–ด๋„ ํ•ด๋‹น DLL ํŒŒ์ผ๋งŒ ๊ต์ฒดํ•˜๋ฉด ๋˜๋ฏ€๋กœ ๋งค์šฐ ํŽธํ•˜๋‹ค.


DLL ๋กœ๋”ฉ ๋ฐฉ์‹

  • Explicit Linking(๋ช…์‹œ์  ๋งํ‚น): ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ˆœ๊ฐ„ ๋กœ๋”ฉ๋˜๊ณ  ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜๋Š” ๋ฐฉ๋ฒ•
  • Implicit Linking(๋ฌต์‹œ์  ๋งํ‚น): ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ๋กœ๋”ฉ๋˜์–ด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋จ

→ IAT๋Š” Implicit Linking์— ๋Œ€ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ €์žฅํ•œ ํ˜•ํƒœ

Explicit Linking์ด ์“ธ ๋•Œ๋งŒ ์—ฐ๊ฒฐํ•˜๋‹ˆ๊นŒ ๋ณด์•ˆ์ ์œผ๋กœ ํ›จ์”ฌ ์•ˆ์ „ํ•˜๊ธฐ ํ•˜์ง€๋งŒ, ์ค€๋น„ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‚˜ ์š”๊ฑด์ด ๋งŽ์•„์„œ ๋‚œ์ด๋„๊ฐ€ ๋†’๋‹ค.


  1. CreateFileW๋ฅผ ํ˜ธ์ถœํ•จ
  2. 01001104์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ํ˜ธ์ถœํ•จ
  3. .text ์„น์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์œ„์น˜ํ•œ 01001104 ์ฃผ์†Œ์—๋Š” 7C8107F0์ด ์ €์žฅ๋˜์–ด ์žˆ์Œ
  4. 7C8107F0 ์ฃผ์†Œ์—๋Š” notepad.exe์˜ ํ”„๋กœ์„ธ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ kernel32.dll์˜ CreateFileW ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด์žˆ์Œ
Call 7C8107F0์ด๋ผ๊ณ  ์•ˆํ•˜๊ณ  ์ด๋Ÿฐ ๊ท€์ฐฎ์€ ํ˜•ํƒœ๋ฅผ ์ทจํ•˜๋Š” ์ด์œ :
์žฌ๋ฐฐ์น˜ ๋ฌธ์ œ๋„ ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ kernel32.dll์˜ ๋ฒ„์ „์ด ๋‹ฌ๋ผ์ง€๊ณ , CreateFileW์˜ ์ฃผ์†Œ๋„ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋  ์œ„์น˜(01001104)๋ฅผ ์ค€๋น„ํ•˜๊ณ , ๋ช…๋ น์–ด์— ๋ณ€์ˆ˜๋กœ ์ด ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด๋‘ .
๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋Š” ์ˆœ๊ฐ„, PE ๋กœ๋”๊ฐ€ 01001104 ์œ„์น˜์— CreateFileW์˜ ์œ„์น˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋Š” ๊ฒƒ.
cf) dll์€ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ , exe๋Š” imagebase๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํžˆ ๋กœ๋”ฉ๋œ๋‹ค.

 


IMAGE_IMPORT_DESCRIPTOR

  • IMPORT_DATA_DESCRIPTOR ์ž๋ฃŒ๊ตฌ์กฐ์—๋Š” ์‹คํ–‰ํŒŒ์ผ์ด ์ฐธ์กฐํ•˜๋Š” DLL(Dynamic Link Library), API์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์ด ๋ช…์‹œ๋˜์–ด ์žˆ์Œ.
  • Import๋Š” library์—๊ฒŒ ์„œ๋น„์Šค(ํ•จ์ˆ˜)๋ฅผ ์ œ๊ณต๋ฐ›๋Š” ์ผ์ด๊ณ , Export๋Š” library ์ž…์žฅ์—์„œ ๋‹ค๋ฅธ PE์—๊ฒŒ ์„œ๋น„์Šค(ํ•จ์ˆ˜)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ผ์ž„
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งˆ๋‹ค ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ import ํ…Œ์ด๋ธ”์— ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ์†ํ•จ.
  • ๋ณดํ†ต ํ”„๋กœ๊ทธ๋žจ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•˜๋ฏ€๋กœ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ์ˆ˜๋งŒํผ ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๊ณ , ์ด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์€ NULL ๊ตฌ์กฐ์ฒด๋กœ ๋๋‚จ.
  • ๋”ฐ๋ผ์„œ import ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ์—”ํŠธ๋ฆฌ ๊ฐœ์ˆ˜๋Š” import ํ•œ DLL+1

๋ชจ๋‘ RVA ๊ธฐ์ค€


์ž„ํฌํŠธ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ IAT์— ์ž…๋ ฅ

notepad.exe๊ฐ€ kernel32.dll์„ ์ž„ํฌํŠธํ•  ๋•Œ IMAGE_IMPORT_DESCRIPTOR์˜ ์ƒ๊น€์ƒˆ

<PE๋กœ๋”๊ฐ€ ์ž„ํฌํŠธ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ IAT์— ์ž…๋ ฅํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ˆœ์„œ>

  1. IID์˜ Name ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ด๋ฆ„ ๋ฌธ์ž์—ด(kernel32.dll)์„ ์–ป์Œ
  2. ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋”ฉํ•จ → LoadLibrary("kernel32.dll")
  3. IID์˜ OriginalFirstThunk ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ INT ์ฃผ์†Œ๋ฅผ ์–ป์Œ
  4. INT์—์„œ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ฝ์–ด์™€์„œ ํ•ด๋‹น IMAGE_IMPORT_BY_NAME ์ฃผ์†Œ(RVA)๋ฅผ ์–ป์Œ
  5. IMAGE_IMPORT_BY_NAME์˜ Hint(Original)๋‚˜ Name ํ•ญ๋ชฉ์„ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์–ป์Œ → GetProcAddress("GetCurrentThreadld")
  6. IID์˜ FirstThunk(IAT) ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ IAT ์ฃผ์†Œ๋ฅผ ์–ป์Œ
  7. ํ•ด๋‹น IAT ๋ฐฐ์—ด ๊ฐ’์— ์œ„์—์„œ ๊ตฌํ•œ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•จ
  8. INT๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ (NULL์„ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•จ)
์›๋ž˜ INT์™€ IAT์˜ ๋‚ด์šฉ๋ฌผ์€ ์™„์ „ํžˆ ๋˜‘๊ฐ™์Œ.

PE๋กœ๋”๊ฐ€ IID์˜ OriginalFirstThunk๋ฅผ ํƒ€๊ณ  INT ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๊ณ , INT์—์„œ IMAGE_IMPORT_BY_NAME์˜ ์ฃผ์†Œ๋ฅผ ์•Œ์•„์˜ค๊ณ , GetProcAddress(“GetCurrentThreadId”) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ•จ์ˆ˜์˜ ์‹ค์ œ ์ฃผ์†Œ(๋กœ๋”ฉ๋œ ์ฃผ์†Œ)๋ฅผ ์•Œ์•„์˜ด.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ IAT์— ์ž…๋ ฅํ•จ. ๊ทธ๋ž˜์„œ INT๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉค๋ฒ„๋Š” originalfirstthunk์ธ๊ฑฐ๊ณ , IAT๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉค๋ฒ„๋Š” ๊ทธ๋ƒฅ firstthunk ๋ฉค๋ฒ„์ธ ๊ฒƒ.

 

  • lMAGE_OPTIONAL_HEADER32.DataDirectory[1].Virtual Address๊ฐ’์ด ์‹ค์ œ lMAGE_IMPORT _DESCRIPTOR์˜ ์‹œ์ž‘์ฃผ์†Œ
  • IMAGE_IMPORT_DESCRIPTOR ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์„ ๋‹ค๋ฅธ ๋ง๋กœ IMPORT directory table์ด๋ผ๊ณ ๋„ ํ•จ.
  • ์ด ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์€ PEํ—ค๋”๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ”๋””์— ์œ„์น˜ํ•จ. ์ง€๋‚œ๋ฒˆ์— ๋ฐฐ์šด optional header์˜ datadirectory ์ค‘ import table์˜ ๊ฐ’์ด ์—ฌ๊ธฐ์„œ IMAGE_IMPORT_DESCRIPTOR๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ!

 

 

 

https://jamielim.tistory.com/54

 

[Reversing] IAT์™€ EAT ๋กœ๋”ฉ ๊ณผ์ •

IAT ๋กœ๋”ฉ ๊ณผ์ • DLL์ด๋ž€? Dynamic Link Library, ๋™์ ๋งํฌ๋กœ ์‹คํ–‰ํŒŒ์ผ์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์‹œ์—๋งŒ ์ฐธ์กฐํ•ด ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ํ•˜๋ฉฐ ์“ฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ

jamielim.tistory.com

 

 

+ Recent posts