Hacking

Reversing) PE(Portable Executable) File Format

proggg 2020. 4. 12. 15:25

PE File Format ? : Portable Executable File Format

 

PE ํŒŒ์ผ์€ Windows ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ ํ˜•์‹์ด๋‹ค.

Unix ๋Š” COFF ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง

 

Portable ์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์ด์‹์„ฑ์„ ์ข‹๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด ์ง„ ๊ฒƒ์ธ๋ฐ, ํ˜„์‹ค์€ Windows ์—์„œ๋งŒ ์“ฐ์ด๊ณ  ์žˆ๋‹ค.

 

32๋น„ํŠธ ํ˜•ํƒœ์˜ ์‹คํ–‰ํŒŒ์ผ์„ ์˜๋ฏธํ•˜๋ฉฐ , PE32 ๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค.

64๋น„ํŠธ๋Š” PE+,PE32+ ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค (PE64 ๊ฐ€ ์•„๋‹ˆ๋‹ค)

 

 

1. PE File Format

์ข…๋ฅ˜ ์ฃผ์š” ํ™•์žฅ์ž ์ข…๋ฅ˜ ์ฃผ์š” ํ™•์žฅ์ž
์‹คํ–‰๊ณ„์—ด EXE, SCR ๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด SYS, VXD
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด DLL,OCX,CPL,DRV ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด OBJ

 

PE ํ—ค๋” ๋ถ€๋ถ„์— ํŒŒ์ผ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋“ค์ด ์ ํ˜€์žˆ๋‹ค

๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๊ณ , ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹คํ–‰๋˜์–ด์•ผํ•˜๋Š”์ง€, ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์–ด๋–ค๊ฒƒ๋“ค์ด ์žˆ๊ณ , ํ•„์š”ํ•œ stack or heap ์˜ ํฌ๊ธฐ๋Š” ์–ผ๋งˆ์ธ์ง€ ๋“ฑ๋“ฑ

 

2.๊ธฐ๋ณธ ๊ตฌ์กฐ

 notepad.exe ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์ •์„ ํ•ด, ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” ๋ชจ์Šต์„ ์‚ดํŽด๋ณธ๋‹ค.

notepad.exe ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” ๋ชจ์Šต์ด๋‹ค.
๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋Š” ์ ˆ๋Œ€ ์ฃผ์†Œ( VA ) ๋กœ ํ‘œํ˜„ํ•œ๋‹ค 

 

NULL padding ์ด ์กด์žฌํ•˜๋Š” ์ด์œ ๋Š” ๋ญ˜๊นŒ ?

์ฒ˜๋ฆฌ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ์ตœ์„œ ๊ธฐ๋ณธ ๋‹จ์œ„์˜ ๋ฐฐ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜์—ฌ์•ผ ํ•œ๋‹ค.

(์„œ๋กœ์˜ ์ž์›์— ๊ฐ„์„ญํ•˜๋Š” ๊ฒƒ์„ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ผ๋Š” ๋ง์„ ๋“ค์€ ์ ์ด ์žˆ๋‹ค.)

 

 

 

2.1 VA & RVA

VA (Virtual Address) ๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ˆ๋Œ€ ์ฃผ์†Œ๋ฅผ ๋งํ•˜๋ฉฐ , RVA(Relative Vertual Address) ์™€์˜ ๊ด€๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

VA=RVA+ ImageBase

 

PE ํ—ค๋” ๋‚ด์˜ ์ •๋ณด๋Š” RVA ๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ๋งŽ์€๋ฐ ๊ทธ ์ด์œ ๋Š” , PE ํŒŒ์ผ (์ฃผ๋กœ DLL )์ด ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์œ„์น˜์— ๋กœ๋”ฉ ๋˜๋Š” ์ˆœ๊ฐ„ ์ด๋ฏธ ๊ทธ ์œ„์น˜์— ๋‹ค๋ฅธ PE ํŒŒ์ผ์ด ๋กœ๋”ฉ ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์žฌ ๋ฐฐ์น˜ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ๋น„์–ด์žˆ๋Š” ๋‹ค๋ฅธ ์œ„์น˜์— ๋กœ๋”ฉ ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ , ๋งŒ์•ฝ PE ํ—ค๋”๋“ค์ด VA(Virtual Address , ์ ˆ๋Œ€์ฃผ์†Œ)๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ •์ƒ์ ์ธ ์•ก์„ธ์Šค๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ •๋ณด๋ฅผ RVA ๋กœ ํ•ด๋‘๋ฉด ์žฌ๋ฐฐ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ๋„ ๊ธฐ์ค€์œ„์น˜์—๋Œ€ํ•œ ์ƒ๋Œ€์ฃผ์†Œ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์—†์ด ์ •๋ณด์— ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋ฆผ์œผ๋กœ ์„ค๋ช… ๋œ ํฌ์ŠคํŠธ๋ฅผ ํผ์™”๋‹ค.

 


[ ์žฌ๋ฐฐ์น˜(Relocation) ์ƒํ™ฉ ]

์˜ˆ๋ฅผ ๋“ค๊ธฐ์œ„ํ•ด ์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ๋„ค์ด๋ฐ์„ ํ–ˆ์œผ๋ฉฐ ๋„ค์ด๋ฐ๊ณผ ์ฃผ์†Œ๋Š” ์‹ค์ œ์™€ ์ „ํ˜€ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค ๊ฐœ๋…๋งŒ ์ง‘๊ณ ๊ฐ€์„ธ์š”

game.dll๊ฐ€ 00000000์ด๋ผ๋Š” ์œ„์น˜์— ๋กœ๋”ฉ๋˜๋Š”์ˆœ๊ฐ„ notepad.dll์ด ๋จผ์ € ๋กœ๋”ฉ์ด ๋˜์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค

ํ•˜๋‚˜์˜ ์œ„์น˜์— 2๊ฐœ์˜ dllํŒŒ์ผ์ด ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋•Œ ์žฌ๋ฐฐ์น˜(Relocation)์„ ํ•ด์ค˜์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

์ด๋•Œ PEํ—ค๋” ์ •๋ณด๋“ค์ด VA(์ ˆ๋Œ€์ฃผ์†Œ)๋กœ ๋˜์–ด์žˆ๋‹ค๋ฉด ์ •์ƒ์ ์ธ ์—‘์„ธ์Šค๊ฐ€ ์ด๋ฃจ์–ด ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—

RVA(์ƒ๋Œ€์ฃผ์†Œ)๋กœ ํ•ด์„œ ์žฌ๋ฐฐ์น˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๊ธฐ์ค€์— ๋Œ€ํ•œ ์ƒ๋Œ€์ฃผ์†Œ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์—†์ด ์›ํ•˜๋Š” ์ •๋ณด์— ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ ˆ๋Œ€์ฃผ์†Œ? ์ƒ๋Œ€์ฃผ์†Œ?

๋งŽ์€๋ถ„๋“ค์ด ํ—ท๊ฐˆ๋ ค ํ•˜์‹œ๋Š” ์ ˆ๋Œ€์ฃผ์†Œ์™€ ์ƒ๋Œ€์ฃผ์†Œ๋ฅผ ๊ฐœ๋…์žก๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค

์ ˆ๋Œ€์ฃผ์†Œ: ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณ ์œ ์ฃผ์†Œ

  ์ฆ‰. ๊ธฐ์–ต์žฅ์น˜๊ต์œ ์˜ ์ฃผ์†Œ๋กœ์„œ ๊ธฐ์–ต์žฅ์†Œ๋ฅผ ์ง์ ‘ ์ˆซ์ž๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

 

์ƒ๋Œ€์ฃผ์†Œ: ๊ณ ์œ ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ํŠน์ •์˜์—ญ์— ์ƒ๋Œ€์ ์ธ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

 

[ ๋ฌผ๋ฆฌ์ฃผ์†Œ์™€ ๊ฐ€์ƒ์ฃผ์†Œ ]

๋นจ๊ฐ„์ƒ‰: ์‚ฌ์šฉ์ค‘

ํŒŒ๋ž€,์ดˆ๋ก: ์‚ฌ์šฉ์•ˆํ•จ

ํ˜„์žฌ 0x1~0x3, 0x7์ด ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค ์ค‘๊ฐ„์ค‘๊ฐ„ ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์ด ์žˆ์ฃ .

ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์€ ์—ฐ์†์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋นˆ๊ณต๊ฐ„์ธ 0x4~0x6, 0x8~0x9(๋ฌผ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค

๊ทธ๋ž˜์„œ ๋‚˜์˜จ ๊ฐœ๋…์ด ๊ฐ€์ƒ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด

 

โ˜…ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์ธ 0x1~0x3, 0x4~0x5(๊ฐ€์ƒ)๊นŒ์ง€ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๊ณ  ์šด์˜์ฒด์ œ๋Š” ์•Œ์•„์„œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์ธ  0x4~0x6, 0x8~0x9(๋ฌผ๋ฆฌ)๋ฅผ ์ฐพ์•„๊ฐ€์„œ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

 

ํ•œ์ค„์š”์•ฝํ•˜์ž๋ฉด.. ๋ฌผ๋ฆฌ์ ์ธ ๋นˆ๊ณต๊ฐ„์„ ๊ฐ€์ƒ์ฃผ์†Œ์— ์—ฐ๊ฒฐํ•ด์„œ ๊ฐ€์ƒ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๋ฉด ์šด์˜์ฒด์ œ๊ฐ€ ์•Œ์•„์„œ ๊ฐ€์ƒ์ฃผ์†Œ์™€ ์—ฐ๊ฒฐ๋œ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์ฐพ์•„๊ฐ€์„œ ๊ฐ’์„ ์ฝ์–ด์˜ด

 

์ถ”๊ฐ€๋กœ

๊ฐ€์ƒ์ฃผ์†Œ๋Š” 0x0 ~ 0xFFFFFFFF ๊นŒ์ง€์ด๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์€ 4byte ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์œ„ ๊ทธ๋ฆผ์€ ์ดํ•ด๋ฅผ ๋•๊ธฐ์œ„ํ•ด ์‰ฝ๊ฒŒ ํ–ˆ์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰๊ณผ ์ฃผ์†Œ๋Š” ์ œ ์ž„์˜๋Œ€๋กœ ํ•œ๊ฒƒ์ž…๋‹ˆ๋‹ค

 


3. PE ํ—ค๋”

PE ํ—ค๋”๋Š” ๋งŽ์€ ๊ตฌ์กฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.

์œ„์—์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ DOS header ๋ถ€ํ„ฐ Section header ๊นŒ์ง€ PE ํ—ค๋”์˜ ๊ตฌ์กฐ์ฒด๋“ค์ด๋‹ค.

 

1) DOS Header

PE File Format ์˜ ์ด๋ฆ„์ด ์•Œ๋ ค์ฃผ๋“ฏ์ด ์ฒ˜์Œ ๊ฐœ๋ฐœ ๋  ๋•Œ๋Š” ๋‹น์‹œ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋˜ DOS ํŒŒ์ผ์— ๋Œ€ํ•œ ํ˜ธํ™˜์„ฑ์„ ๊ณ ๋ คํ•ด ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋กœ PE ํ—ค๋”์˜ ์ œ์ผ ์•ž๋ถ€๋ถ„์—๋Š” ๊ธฐ์กด์˜ DOS EXE Header ๋ฅผ ํ™•์žฅ์‹œํ‚จ IMAGE_DOS_HEADER ๊ตฌ์กฐ์ฒด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

IMAGE_DOS_HEADER ์˜ ๊ตฌ์กฐ์ฒด์ด๋‹ค.

IMAGE_DOS_HEADER ๊ตฌ์กฐ์ฒด ํฌ๊ธฐ๋Š” 40์ด๋‹ค. ์ด ๊ตฌ์กฐ์ฒด์—์„œ ๊ผญ ์•Œ์•„์•ผ ํ•  ๋ฉค๋ฒ„๋Š” e_magic ๊ณผ e_lfanew ์ด๋‹ค.

 

e_magic : DOS signature (4D5A => ASCII ๊ฐ’ "MZ") --- ์ด๊ฒƒ์„ ๋ณด๊ณ  IMAGE_DOS_HEADER ์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

e_lfanew : NT header ์˜ ์˜คํ”„์…‹์„ ํ‘œ์‹œ

 


Intel ๊ณ„์—ด CPU ๋Š” ์ž๋ฃŒ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ €์žฅํ•œ๋‹ค. ์ด๋ฅผ ๋ฆฌํ‹€ ์—”๋””์–ธ ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค.


 

2)DOS Stub

DOS Stub ์˜ ์กด์žฌ์—ฌ๋ถ€๋Š” ์˜ต์…˜(์—†์–ด๋„ ํŒŒ์ผ ์‹คํ–‰ ๊ฐ€๋Šฅ) ์ด๋ฉฐ ํฌ๊ธฐ๋„ ์ผ์ •ํ•˜์ง€ ์•Š๋‹ค. 

์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ์˜ ํ˜ผํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

MS-DOS ํ˜ธํ™˜ ๋ชจ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ DOS ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋ฉด , DOS EXE ์‹คํ–‰์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜๋ฉด์„œ " This program cannot be run in DOS mode" ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒ๋œ๋‹ค. ์ด ํŠน์„ฑ์„ ์ž˜ ์ด์šฉํ•˜๋ฉด DOS ์™€ Windows ์—์„œ ๋ชจ๋‘ ์‹คํ–‰๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

3)NT Header

NT header ๊ตฌ์กฐ์ฒด IMAGE_NT_HEADERS ์ด๋‹ค.

IMAGE_NT_HEADERS ๊ตฌ์กฐ์ฒด๋Š” 3๊ฐœ์˜ ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š”๋ฐ, ์ œ์ผ ์ฒซ ๋ฉค๋ฒ„๋Š” Signature ๋กœ 50450000h ( "PE" 00) ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  FileHeader ์™€ OptionalHeader ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„๊ฐ€ ์žˆ๋‹ค.

 

IMAGE_NT_HEADERS ๊ตฌ์กฐ์ฒด์˜ ํฌ๊ธฐ๋Š” F8 (158) ์ด๋‹ค. ์ƒ๋‹นํžˆ ํฐ ๊ตฌ์กฐ์ฒด์ธ๋ฐ. 

 

์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ NT header๊ตฌ์กฐ์ฒด์˜ ์‹œ์ž‘์„ ํŒ๋ณ„ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

3-1) Signature

NT header ๊ตฌ์กฐ์ฒด์˜ ์‹œ์ž‘์„ ์•Œ๋ฆฌ๋ฉฐ ASCII๊ฐ’์ด PE ( 50450000)๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค

 

 

3-2) IMAGE_FILE_HEADER

[ IMAGE_FILE_HEADER ]

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋นจ๊ฐ„์ƒ‰ 4๊ฐœ์˜ ๊ฐ’๋งŒ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค

1. Machine

CPU๋ณ„๋กœ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด์„œ IA-32 ํ˜ธํ™˜ CPU 14Ch์˜ ๊ฐ’์„ IA-64ํ˜ธํ™˜ CPU๋Š” 200h์˜ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค

- CPU๋ณ„๋กœ ๊ณ ์œ ํ•œ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค

- IA-32ํ˜ธํ™˜CPU = 14Ch

- IA-64ํ˜ธํ™˜CPU = 200h

2. NumberOfSections

์ด ๊ฐ’์€ ๋‹ค์Œ์— ๋‚˜์˜ค๋Š” Section๋“ค์˜ ๊ฐฏ์ˆ˜์ด๋ฉฐ ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค

3. SizeOfOptionalHeader

์ด ๊ฐ’์€ IMAGE_NT_HEADERS๊ตฌ์กฐ์ฒด์˜ ๋งˆ์ง€๋ง‰ ๊ตฌ์กฐ์ฒด IMAGE_OPTIONAL_HEADER 32์˜ ๊ตฌ์กฐ์ฒด ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

- IMAGE_NT_HEADERS์•ˆ์— IMAGE_OPTIONAL_HEADER 32ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„

4. Characteristics

์ด ๊ฐ’์€ ํŒŒ์ผ์†์„ฑ์— ๋Œ€ํ•œ ๋ถ€๋ถ„

ํ—ฅ์‚ฌ ์—๋””ํ„ฐ๋กœ ๋”ฐ์ง€๋ฉด ์ด๋ถ€๋ถ„์ด ๋˜๊ฒ ์œผ๋ฉฐ ๋ง ๊ทธ๋Œ€๋กœ ํŒŒ์ผ์˜ ์†์„ฑ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค

 

์—ฌ๊ธฐ์„œ SizeOfOptionalHeader์˜ ๊ฐ’์ด E0์ž…๋‹ˆ๋‹ค 10์ง„์ˆ˜๋กœ ๋ฐ”๊พธ๋ฉด 224๊ฐ€ ๋˜๋Š”๋ฐ ์ด๊ฒƒ์ด ํ—ค๋”์˜ ์ด ๊ธธ์ด๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค

 

 

3-3)IMAGE_OPTIONAL_HEADER 32

์—ญ์‹œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์น ํ–ˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค

 

1. Magic

์ด ๊ตฌ์กฐ์ฒด๊ฐ€ 32bit์šฉ์ด๋ฉด 10Bh

     64bit ์šฉ์ด๋ฉด 20Bh ์˜ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค

 

2. AddressOfEntryPoint

EP(Entry Point)์˜ RVA ์ฃผ์†Œ๊ฐ’์ด ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค

์‰ฝ๊ฒŒ๋งํ•ด ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ตœ์ดˆ๋กœ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์˜ ์‹œ์ž‘์ฃผ์†Œ. ๋งค์šฐ์ค‘์š”ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค

 

3. Image Base

PEํŒŒ์ผ์ด ๋งตํ•‘๋˜๋Š” ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค

 

4. SectionAlignment

๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ ์„น์…˜์˜ ์ตœ์†Œ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

 

5. FileAlignment

ํŒŒ์ผ์—์„œ์˜ ์„น์…˜์˜ ์ตœ์†Œ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

 

6. SizeOfImage

๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ PE๊ตฌ์กฐ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

 

7. SizeOfHeader

PE header์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

 

8. Sybsystem

-1: ๋“œ๋ผ์ด๋ฒ„ํŒŒ์ผ(SYS,VXD)์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค

-2: GUIํŒŒ์ผ์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค

-3: CUIํŒŒ์ผ์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค

 

9. NumberOfRvAndSizes

๋ฐ”๋กœ ๋ฐ‘์— ์žˆ๋Š” IMAGE_DATA_DIRECTORY ๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ดํฌ๊ธฐ๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค

 

 

---- Section Header ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ -----

 

 

-๋ฆฌ๋ฒ„์‹ฑ ํ•ต์‹ฌ์›๋ฆฌ์™€  https://rednooby.tistory.com/33 [๊ฐœ๋ฐœ์ž์˜ ์ทจ๋ฏธ์ƒํ™œ] ๋ธ”๋กœ๊ทธ์—์„œ ์ž๋ฃŒ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.-

'Hacking' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์นผ๋ฆฌ ๋ฆฌ๋ˆ…์Šค ํ•œ๊ธ€ ๊นจ์ง ํ•ด๊ฒฐ  (0) 2020.09.13