SlideShare a Scribd company logo
1 of 15
Download to read offline
PE File Format 
๋ฐœํ‘œ์ž : ์ž„์ฑ„์ƒ
ํ”„๋กœ๊ทธ๋žจ : ๊ณ„์‚ฐ๊ธฐ(calc.exe) 
๋ถ„์„๋„๊ตฌ : PEview.exe 
โ—† PE ๊ตฌ์กฐ์˜ ์ •์˜ 
- PE๋Š” Portable Executable์˜ ์•ฝ์ž๋กœ์„œ ์œˆ๋„์šฐ์ฆˆ(Win32)์˜ ๊ธฐ๋ณธ ํŒŒ์ผ ๊ตฌ์กฐ์ด๋‹ค. 
- ํ•ด๋‹น ํŒŒ์ผ์€ Win32 ํ™˜๊ฒฝ ์–ด๋””์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. 
- ์œˆ๋„์šฐ์ฆˆ ํŒŒ์ผ ์ค‘ EXE, DLL, SYSํŒŒ์ผ์ด PE๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 
- ํŒŒ์ผ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 
โ†’ ํŒŒ์ผ์˜ ์•„์ด์ฝ˜ 
โ†’ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์œ„์น˜ 
โ†’ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ •๋ณด ๋“ฑ 
- ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ์ •๋ณด๊ฐ€ PE ๊ตฌ์กฐ์— ์ €์žฅ๋˜์–ด ์žˆ๊ณ  Win32 ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฝ์–ด 
ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ ์‹œํ‚จ๋‹ค. 
โ—† PEํŒŒ์ผ ์ข…๋ฅ˜ 
-์‹คํ–‰ ํŒŒ์ผ ๊ณ„์—ด : exe, scr(Screen Saver) 
-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด : dll, OCX(Active X) 
-๋“œ๋ผ์ด๋ธŒ ๊ณ„์—ด : SYS 
-์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด : OBJ
โ—† PE ๊ตฌ์กฐ์˜ ํ—ค๋”ํŒŒ์ผ 
1. IMAGE_DOS_HEADER 
- ๋„์Šค์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„ 
- ๋„์Šค ํ—ค๋” ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ์ง€๋งŒ ์ด ์ •๋ณด ์ค‘ ์ฒซ ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ 2๊ฐ€์ง€๋ฅผ 
์ œ์™ธํ•˜๊ณ ๋Š” ์œˆ๋„์šฐ์ฆˆํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. 
- ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ ๋„์Šคํ—ค๋”๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 'MZ'์ด๋‹ค. 
PE๊ตฌ์กฐ๋Š” ๋„์Šค ํ—ค๋”๋กœ ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์— PE๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์€ ๋ชจ๋‘ 'MZ'๋กœ ์‹œ์ž‘๋œ๋‹ค. 
- ๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ ๋„์Šคํ—ค๋”์˜ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ ์ •๋ณด๋กœ ๋‹ค์Œ ํ—ค๋”์ธ IMAGE_NT_HEADERS์˜ ์˜ต์…‹์ •๋ณด ์ด๋‹ค. 
์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ NT_HEADER์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค
2. MS-DOS Stub Program 
- ํ•ญ๋ชฉ์—๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๋„์Šค ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด "This program cannot be run in DOS mode"๋ผ๋Š” 
๋ฉ”์‹œ์ง€๋ฅผ ๋„์šฐ๊ณ  ์ข…๋ฃŒํ•˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ๋‹ค (์—†์–ด๋„ ํŒŒ์ผ ์‹คํ–‰์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.) 
- ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ์˜ ํ˜ผํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š๋‹ค
3. IMAGE_NT_HEADERS 
- ํ”„๋กœ๊ทธ๋žจ์ด ์œˆ๋„์šฐ์ฆˆ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. 
1) IMAGE_NT_HEADERS ๊ตฌ์„ฑ 
- Signature, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. 
2) File Header์˜ ์‹œ์ž‘์  ํ™•์ธ 
- IMAGE_DOS_HEADER์˜ offset to New EXE Header ํ™•์ธ 
tip, ์œˆ๋„์šฐ์ฆˆ ์‹คํ–‰ํŒŒ์ผ์„ ํŒ๋‹จํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ• 
-> ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ •๋ณด์—์„œ 'MZ'๋กœ ์‹œ์ž‘ํ•˜๊ณ  'PE'๋ฌธ์ž์—ด์ด ์žˆ๋Š”์ง€ ํ™•์ธ
3-1. Signature 
- PEํ—ค๋”์˜ ์‹œ์ž‘์„ ์˜๋ฏธํ•˜๋Š” 'PE'๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•œ๋‹ค 
3-2. IMAGE_FILE_HEADER 
- ํŒŒ์ผ์˜ ์ „๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง„๋‹ค 
- ํ•ด๋‹น ํŒŒ์ผ์˜ ํƒ€๊นƒ์ด ๋˜๋Š” ์‹œ์Šคํ…œ์˜ ์ •๋ณด, ์„น์…˜์˜ ๊ฐœ์ˆ˜, ์ƒ์„ฑ ๋‚ ์งœ, 
IMAGE_OPTIONAL_HEADER์˜ ํฌ๊ธฐ, ํ•ด๋‹น ํŒŒ์ผ์˜ ํŠน์ง• ๊ฐ€์ง 
> Machine : ํƒ€๊นƒ ์‹œ์Šคํ…œ์˜ ํƒ€์ž… 
> NumberOfSections : ์„น์…˜์˜ ๊ฐœ์ˆ˜ 
> TimeDateStamp : ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ 
> PointerToSymbolTable : ์‹ฌ๋ณผ ํ…Œ์ด๋ธ”์˜ ํŒŒ์ผ ์˜คํ”„์…‹ 
> NumberOfSymbols : ์‹ฌ๋ณผ ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ ๊ฐœ์ˆ˜ 
> SizeOfOptionalHeader : optionalheader์˜ ํฌ๊ธฐ 
> Characteristics : ํŒŒ์ผ ์†์„ฑ๊ด€๋ จ ํ”Œ๋ž˜๊ทธ
3-3. IMAGE_OPTIONAL_HEADER 
- ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. 
1) ๊ธฐ๋ณธ๊ตฌ์กฐ
2) ํŒŒ์ผ ์˜คํ”„์…‹, RVA, VA 
PE๊ตฌ์กฐ์—์„œ ํŠน์ • ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ํŒŒ์ผ ์˜คํ”„์…‹, RVA, VA 3๊ฐ€์ง€ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. 
- ํŒŒ์ผ ์˜คํ”„์…‹ : ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ์˜ ๊ฐ’์€ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•œ๋‹ค. 
- RVA : ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๋ จ๋œ ์œ„์น˜๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” RVA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
- VA : ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์— ์™„์ „ํžˆ ๋กœ๋“œ๋œ ์ƒํƒœ์˜ ์œ„์น˜๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” VA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
โ—‡ ํŒŒ์ผ ์˜คํ”„์…‹(File Offset) 
๏ผŠ ํŒŒ์ผ์˜ ์œ„์น˜๊ฐ’์„ ๋งํ•œ๋‹ค 
๏ผŠ ํŒŒ์ผ์˜ ์ฒซ ๋ถ€๋ถ„์„ 0์œผ๋กœ ์‹œ์ž‘ํ•ด ํ•œ ๋ฐ”์ดํŠธ(byte)๋‹จ์œ„๋กœ 1์”ฉ ์ฆ๊ฐ€ 
๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์€ ํŒŒ์ผ์‚ฌ์ด์ฆˆ - 1 ์ด๋‹ค. 
ํŒŒ์ผ ์˜คํ”„์…‹์˜ ์‹œ์ž‘์ด 0๋ถ€ํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์‚ฌ์ด์ฆˆ - 1 ๊ณผ ๊ฐ™์Œ 
๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํŒŒ์ผ๋‚ด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๋ฉฐ 
PEview ๋ฉ”๋‰ด ์ค‘ File Offset ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ ์˜คํ”„์…‹ํ˜•ํƒœ๋กœ PE๊ตฌ์กฐ์˜ ์œ„์น˜์ •๋ณด๊ฐ€ ํ‘œํ˜„๋จ 
โ—‡ RVA (Relative Virtual Address) 
๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ƒ๋Œ€์ฃผ์†Œ ๊ฐ’์„ ๋งํ•œ๋‹ค 
๏ผŠ RVA๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ƒํƒœ์—์„œ ์ƒ๋Œ€ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’ 
๏ผŠ RVA๊ฐ€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋œ ์ •ํ™•ํ•œ ์ฃผ์†Œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด์ง€๋Š” ์•Š๋‹ค 
๏ผŠ RVA๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋œ ์‹œ์ž‘ ์ง€์ ๋ถ€ํ„ฐ์˜ ์˜คํ”„์…‹์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ 
๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ RVA๊ฐ’ ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ๊ฐ€๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. 
๏ผŠ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ๊ณต๊ฐ„์— ๋กœ๋“œ ๋์„ ๋•Œ ๊ณ ์ •๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๊ฐ’์„ 
๋ชจ๋‘ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค 
๏ผŠ RVA๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ๋กœ๋“œ ๋˜์–ด๋„ ์ƒ๊ด€์—†์ด ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ ๋œ ์ฃผ์†Œ 
(ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘ ์ฃผ์†Œ) + RVA๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ •ํ•™ํžˆ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค 
๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹๊ณผ RVA์˜ ์ฐจ์ด 
- ํŒŒ์ผ ์˜คํ”„์…‹ : ํŒŒ์ผ ์ƒํƒœ์˜ ์‹œ์ž‘ ์œ„์น˜์—์„œ ์˜คํ”„์…‹๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค 
- RVA : ํ•ด๋‹น ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ RVA๊ฐ’ ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค 
๏ผŠ ํ•ด๋‹น ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋  ๋•Œ๋Š” ํŒŒ์ผ ํ˜•ํƒœ ๊ทธ๋Œ€๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ๋Š” 
ํŒŒ์ผ ์˜คํ”„์…‹ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  RVA๊ฐ’์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผํ•œ๋‹ค 
โ—‡ VA (Virtual Address) 
๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋งํ•œ๋‹ค. 
๏ผŠ VA๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์€ RVA์™€ ๊ฐ™๋‹ค 
๏ผŠ ์ฐจ์ด์ ์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณ ์ •๋œ ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ์ ์ด๋‹ค 
๏ผŠ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์ •๋œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋กœ๋“œ๋œ ์ƒํƒœ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ „์ฒด ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค
3) ์˜ต์…˜ 
๏ผŠMagic : ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜๊ฐ’. 
32๋น„ํŠธ PEํŒŒ์ผ 0x10B, 64๋น„ํŠธ PEํŒŒ์ผ 0x20B, ๋กฑ ํŒŒ์ผ 0x107๋กœ ํ‘œํ˜„๋œ๋‹ค. 
๏ผŠ SizeOfCode : ํŒŒ์ผ ๋‚ด์˜ ์„น์…˜ ์‚ฌ์ด์ฆˆ์˜ ํ•ฉ 
๏ผŠ AddressOfEntryPoint : ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์œ„์น˜๋กœ RVA๋กœ ํ‘œํ˜„๋œ๋‹ค. 
๋กœ๋”๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์œ„์น˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
์•…์„ฑ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ํ•ญ๋ชฉ์˜ ๊ฐ’์„ ์ž์‹ ์˜ ๋ช…๋ น์–ด ์œ„์น˜๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. 
๏ผŠ BaseOfCode : ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ฝ”๋“œ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜, RVA๋กœ ํ‘œ์‹œ 
๏ผŠ BaseOfData : ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜, RVA๋กœ ํ‘œ์‹œ 
๏ผŠ ImageBase : ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ธฐ ์›ํ•˜๋Š” ์œ„์น˜. 
exe ํŒŒ์ผ์€ 0x00400000, dllํŒŒ์ผ์€ 0x1000000์ด ์ผ๋ฐ˜์ ์ธ ์œ„์น˜์ด๋‹ค. 
Exe์˜ ๊ฒฝ์šฐ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •๋œ ์œ„์น˜๋กœ ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. 
ํ•˜์ง€๋งŒ dll์˜ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‚˜์˜ exeํ”„๋กœ๊ทธ๋žจ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ dll์ด ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ์— 
์ง€์ •๋œ ์œ„์น˜์— ๋กœ๋“œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค. 
ImageBase์˜ ์ง€์ •๋œ ์œ„์น˜๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ๋˜๋ฉด ImageBase + RVA๋กœ VA๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 
๏ผŠ SectionAlignment : ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋“œ๋˜๋Š” ์„น์…˜์˜ ํฌ๊ธฐ ๋‹จ์œ„. FileAlignment๋ณด๋‹ค๋Š” ๊ฐ™๊ฑฐ๋‚˜ ์ปค์•ผ ํ•œ๋‹ค. 
๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” ๋ฐ˜๋“œ์‹œ SectionAlignment์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. 
ex> ์„น์…˜์˜ ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ 0x900์ด๊ณ  SectionAlignment์˜ ๊ฐ’์€ 0x1000์ด๋ฉด ์„น์…˜์˜ ํฌ๊ธฐ๋Š” 0x1000์ด ๋œ๋‹ค. 
๏ผŠ FileAlignment : ํŒŒ์ผ ์ƒํƒœ์—์„œ ์„น์…˜ ํฌ๊ธฐ ๋‹จ์œ„. 
512์™€ 64K ์‚ฌ์ด์˜ 2์˜ n์Šน์— ํ•ด๋‹น ํ•˜๋Š” ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. 
ํŒŒ์ผ ๋‹จ์œ„์˜ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” FileAlignment์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. 
ํŒŒ์ผ์˜ ๊ฒฝ์šฐ๋„ ์„น์…˜์˜ ์‹ค์ œ ํฌ๊ธฐ๊ฐ€ 0x201์ด๋”๋ผ๋„ FileAlignment์˜ ๊ฐ’์ด 
0x200์ด๋ฉด 0x400์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š”๋‹ค. 
๏ผŠ SizeOfImage : ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ 
๏ผŠ SizeOfHeaders : FileAlignment์— ๋งž์ถฐ์ง„ ์ „์ฒด ํ—ค๋”์˜ ํฌ๊ธฐ 
๏ผŠ CheckSum : ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ ๊ฐ’์œผ๋กœ ๋ชจ๋“  ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ ๋ฐ ๋ถ€ํŒ… ์‹œ์— ๋กœ๋“œ๋˜๋Š” ์ผ๋ถ€ DLL ํŒŒ์ผ์€ 
์ฒดํฌ์„ฌ ๊ฐ’์ด ํ•ญ๋ชฉ์˜ ๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ๋กœ๋“œ๋œ๋‹ค. ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์—์„œ๋ผ๋„ ์ฒดํฌ์„ฌ ๊ฐ’์„ ํ™•์ธํ•ด 
ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ณ€์กฐ ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 
๏ผŠ Subsystem : ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ subsystem์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ญ๋ชฉ์œผ๋กœ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ํ†ตํ•ด ํŒŒ์ผ์ด 
๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 
IMAGE_SUBSYSTEM_NATIVE(1)๊ฐ’์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์ด๋‹ค. 
๏ผŠ NumberOfRvaAndSize : IMAGE_DATA_DIRECTORY์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. 
=> ํŒŒ์ผ ์˜คํ”„์…‹๊ณผ RVA, VA๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ • ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์ง€๋งŒ, 
ํŒŒ์ผ ์ƒํƒœ์—์„œ๋Š” ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์ƒ๋Œ€์  ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” RVA, 
๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ˆ๋Œ€ ์ฃผ์†Œ๋Š” VA๋ฅผ ์‚ฌ์šฉ ํ•œ๋‹ค.
4. IMAGE_DATA_DIRECTORY์˜ ์ƒ์œ„ 2๊ฐœ : EXPORT Table / IMPORT Table 
๏ผŠ EXPORT Table 
- DLLํŒŒ์ผ๊ณผ ๊ฐ™์ด ํ•ด๋‹น ํŒŒ์ผ ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜๋ฅผ ์™ธ๋ถ€์˜ ํ”„๋กœ๊ทธ๋žจ์— ์ œ๊ณตํ•  ๋ชฉ์ ์œผ๋กœ ์ œ์ž‘ํ•œ ํ•จ์ˆ˜์˜ ๋ฆฌ์ŠคํŠธ 
- ์™ธ๋ถ€์— ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ 0๊ฐ’์ด ๋œ๋‹ค. 
๏ผŠ IMPORT Table 
- ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  DLLํŒŒ์ผ๊ณผ ํ•จ์ˆ˜์˜ ๋ฆฌ์ŠคํŠธ 
- ์™ธ๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์ด ๋˜์ง€๋งŒ ์œˆ๋„์šฐ์ฆˆ ์‹œ์Šคํ…œ ํŒŒ์ผ์„ ์ œ์™ธํ•œ 
ํ”„๋กœ๊ทธ๋žจ์€ ์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— 0์ด ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.
5. IMAGE_SECTION_HEADER.(text,data,rsrc,reloc) 
- ํŒŒ์ผ์˜ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๊ฐ๊ฐ ๊ตฌ๋ถ„๋˜์–ด ์ €์žฅ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๊ตฌ๋ถ„ ๋‹จ์œ„๋ฅผ ์„น์…˜์ด๋ผ ํ•œ๋‹ค. 
- ๊ฐ๊ฐ์˜ ์„น์…˜์€ ์œ„์น˜ ๋ฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋‹ฌ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด IMAGE_SECTION_HEADER๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
1) text 
2) data
3) rsrc 
4) reloc
๏ผŠ Name 
- 8๋ฐ”์ดํŠธ ์•„์Šคํ‚ค ๋ฌธ์ž์—ด๋กœ ๊ฐ ์„น์…˜์˜ ์ด๋ฆ„์ด๋‹ค. ์„น์…˜๋ช…์˜ ์ง€์ •๋œ ๊ทœ์น™์€ ์—†๋‹ค. 
- ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ํŽธ์ง‘ํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ ๋™์ž‘์—๋Š” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. 
- ์ผ๋ฐ˜์ ์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„น์…˜๋ช…์„ ์‚ฌ์šฉํ•œ๋‹ค. 
> ".text" ์ฝ”๋“œ ์„น์…˜ 
> ".data" ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ ์„ธ์…˜ 
(์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ž€ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.) 
> ".rsrc" ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ จ ์„ธ์…˜ 
๏ผŠ VirtualSize 
- ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ƒํƒœ์—์„œ์˜ ์„น์…˜์˜ ํฌ๊ธฐ 
๏ผŠ VirtualAddress 
- ์„น์…˜์˜ ์ฒซ ๋ฐ”์ดํŠธ์˜ RVA (์‹œ์ž‘์ ์„ ์˜๋ฏธํ•œ๋‹ค) 
๏ผŠ SizeOfRawData 
- ํŒŒ์ผ ์ƒํƒœ์—์„œ์˜ ์„น์…˜ ํฌ๊ธฐ 
๏ผŠ PointerToRawData Charateristics 
- ํŒŒ์ผ ์ƒํƒœ์—์„œ ์„น์…˜์˜ ์ฒซ ๋ฐ”์ดํŠธ์˜ ํŒŒ์ผ ์˜คํ”„์…‹ 
- ์„น์…˜์˜ ํŠน์ง•์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ 
> IMAGE_SCN_CNT_CODE(0x00000020) : ์„น์…˜์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ๋‹ค. 
> IMAGE_SCN_MEM_SHARED(0x10000000) : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ณต์œ  ๊ฐ€๋Šฅ 
> IMAGE_SCN_MEM_EXECUTE(0x20000000) : ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜ 
> ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ์„น์…˜์€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ฐ”์ด๋Ÿฌ์Šค ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ ์„น์…˜์€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ 
์ถ”๊ฐ€ํ•ด์„œ ์ž์‹ ์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. 
> IMAGE_SCN_MEM_READ(0x40000000) : ์„น์…˜์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ๋กœ ์„น์…˜ ๋‚ด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ 
์ฝ์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค 
> IMAGE_SCN_MEM_WRITE(0x80000000) : ์„น์…˜์— ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ž˜๊ทธ๋กœ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฐ€์ง„ ์„น์…˜์€ 
๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
6. BOUND IMPORT Directory Table(IDT) 
๏ผŠ IDT๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” DLL์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค 
๏ผŠ 1๊ฐœ์˜ IDT๋Š” 1๊ฐœ์˜ DLL์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค 
๏ผŠ IDT์˜ ๊ตฌ์กฐ์—๋Š” ์ž„ํฌํŠธํ•  DLL์˜ ์ด๋ฆ„(Name RVA)๊ณผ ํ•ด๋‹น DLL์—์„œ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜์˜ 
๋ชฉ๋ก(Import Name Table RVA)์ด ๋‚˜ํƒ€๋‚˜ ์žˆ๋‹ค 
๏ผŠ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ด ์šด์˜์ฒด์ œ์˜ ๋กœ๋”๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ํ•  ๋•Œ ํ•„์š”ํ•œ 
DLL์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐพ์•„์„œ ์—ฐ๊ฒฐํ•œ๋‹ค 
๏ผŠ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น DLL์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•œ๋‹ค 
๏ผŠ ๊ทธ ํ›„ ํ”„๋กœ๊ทธ๋žจ์€ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค
7. BOUND IMPORT DLL Names 
- Import Name Table์—๋Š” ๊ฐ๊ฐ์˜ DLL์—์„œ ์ž„ํฌํŠธํ•˜๋Š” ํ•จ์ˆ˜์˜ ๋ชฉ๋ก์ด ๋‚˜ํƒ€๋‚œ๋‹ค. 
- ์ž„ํฌํŠธ๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ordinal number ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 
- DLL์˜ ํ•จ์ˆ˜๋Š” ๊ฐ ํ•จ์ˆ˜๋งˆ๋‹ค ์ด๋ฆ„๊ณผ ordinal number๋ฅผ ๊ฐ€์ง„๋‹ค. 
ํ•˜์ง€๋งŒ ํŠน์ • ์œˆ๋„์šฐ์ฆˆ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์ด๋ฆ„์€ ๊ณต๊ฐœ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ordinal number๋งŒ ๊ณต๊ฐœ๋œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 
์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ordinal number๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. 
๏ผŠ Hint/Name RVA โ†’ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ํ†ตํ•ด ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ 
๏ผŠ Ordinal โ†’ ํ•จ์ˆ˜์˜ ๋ฒˆํ˜ธ๋งŒ ์žˆ์„ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ๋ฒˆํ˜ธ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ

More Related Content

Similar to Pe+file+format

์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…Peter YoungSik Yun
ย 
System+os study 1
System+os study 1System+os study 1
System+os study 1Jinkyoung Kim
ย 
04 ํ”„๋กœ์„ธ์Šค
04 ํ”„๋กœ์„ธ์Šค04 ํ”„๋กœ์„ธ์Šค
04 ํ”„๋กœ์„ธ์Šคssuser3fb17c
ย 
Java_01 ๊ธฐ์ดˆ
Java_01 ๊ธฐ์ดˆJava_01 ๊ธฐ์ดˆ
Java_01 ๊ธฐ์ดˆHong Hyo Sang
ย 
Java ๊ธฐ์ดˆ
Java ๊ธฐ์ดˆJava ๊ธฐ์ดˆ
Java ๊ธฐ์ดˆHyosang Hong
ย 
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜iossuser3fb17c
ย 
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptx
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptxWindosw via c ์Šคํ„ฐ๋””20์žฅ.pptx
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptxHolyTak
ย 
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌDevgear
ย 
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡Seungyong Lee
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตDong Chan Shin
ย 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
ย 
Chapter 17
Chapter 17Chapter 17
Chapter 17nacheon
ย 
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ APINAVER Engineering
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ์ค‘์„  ๊ณฝ
ย 
(160820) #fitalk fileless malware forensics
(160820) #fitalk    fileless malware forensics(160820) #fitalk    fileless malware forensics
(160820) #fitalk fileless malware forensicsINSIGHT FORENSIC
ย 
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซjieun kim
ย 
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)Devgear
ย 
Assembly ์Šคํ„ฐ๋”” 1
Assembly ์Šคํ„ฐ๋”” 1Assembly ์Šคํ„ฐ๋”” 1
Assembly ์Šคํ„ฐ๋”” 1Jinkyoung Kim
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ์ค‘์„  ๊ณฝ
ย 
PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016Hajin Jang
ย 

Similar to Pe+file+format (20)

์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
ย 
System+os study 1
System+os study 1System+os study 1
System+os study 1
ย 
04 ํ”„๋กœ์„ธ์Šค
04 ํ”„๋กœ์„ธ์Šค04 ํ”„๋กœ์„ธ์Šค
04 ํ”„๋กœ์„ธ์Šค
ย 
Java_01 ๊ธฐ์ดˆ
Java_01 ๊ธฐ์ดˆJava_01 ๊ธฐ์ดˆ
Java_01 ๊ธฐ์ดˆ
ย 
Java ๊ธฐ์ดˆ
Java ๊ธฐ์ดˆJava ๊ธฐ์ดˆ
Java ๊ธฐ์ดˆ
ย 
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io
10 ๋™๊ธฐ๋ฐ๋น„๋™๊ธฐ์žฅ์น˜io
ย 
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptx
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptxWindosw via c ์Šคํ„ฐ๋””20์žฅ.pptx
Windosw via c ์Šคํ„ฐ๋””20์žฅ.pptx
ย 
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ
๋ฉ€ํ‹ฐํ‹ฐ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ
ย 
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
ย 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
ย 
Chapter 17
Chapter 17Chapter 17
Chapter 17
ย 
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API
[16]Obfuscation 101 : ๋‚œ๋…ํ™”, ํ”„๋กœ๊ฐ€๋“œ, R8, ํŠธ๋žœ์Šคํฌ๋จธ API
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
ย 
(160820) #fitalk fileless malware forensics
(160820) #fitalk    fileless malware forensics(160820) #fitalk    fileless malware forensics
(160820) #fitalk fileless malware forensics
ย 
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ
20150509 unix v6แ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„แ…ฅแ„‚แ…ฅแ†ฏแ„‹แ…ด แ„‹แ…ฏแ†ซแ„…แ…ตแ„‹แ…ช แ„€แ…ฎแ„Œแ…ฉ 3 แ„€แ…ตแ†ทแ„Œแ…ตแ„‹แ…ณแ†ซ
ย 
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ธฐ์ดˆ(๋ธํŒŒ์ด,C++)
ย 
Assembly ์Šคํ„ฐ๋”” 1
Assembly ์Šคํ„ฐ๋”” 1Assembly ์Šคํ„ฐ๋”” 1
Assembly ์Šคํ„ฐ๋”” 1
ย 
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œJava rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
Java rmi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
ย 
PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016PE File Format and Packer - Inc0gnito 2016
PE File Format and Packer - Inc0gnito 2016
ย 

Recently uploaded

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
ย 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
ย 
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค
ย 
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)Wonjun Hwang
ย 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
ย 
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)Wonjun Hwang
ย 

Recently uploaded (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
ย 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
ย 
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ
์บ๋“œ์•ค๊ทธ๋ž˜ํ”ฝ์Šค 2024๋…„ 5์›”ํ˜ธ ๋ชฉ์ฐจ
ย 
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)
Console API (Kitworks Team Study ๋ฐฑํ˜œ์ธ ๋ฐœํ‘œ์ž๋ฃŒ)
ย 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
ย 
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)
Merge (Kitworks Team Study ์ด์„ฑ์ˆ˜ ๋ฐœํ‘œ์ž๋ฃŒ 240426)
ย 

Pe+file+format

  • 1. PE File Format ๋ฐœํ‘œ์ž : ์ž„์ฑ„์ƒ
  • 2. ํ”„๋กœ๊ทธ๋žจ : ๊ณ„์‚ฐ๊ธฐ(calc.exe) ๋ถ„์„๋„๊ตฌ : PEview.exe โ—† PE ๊ตฌ์กฐ์˜ ์ •์˜ - PE๋Š” Portable Executable์˜ ์•ฝ์ž๋กœ์„œ ์œˆ๋„์šฐ์ฆˆ(Win32)์˜ ๊ธฐ๋ณธ ํŒŒ์ผ ๊ตฌ์กฐ์ด๋‹ค. - ํ•ด๋‹น ํŒŒ์ผ์€ Win32 ํ™˜๊ฒฝ ์–ด๋””์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. - ์œˆ๋„์šฐ์ฆˆ ํŒŒ์ผ ์ค‘ EXE, DLL, SYSํŒŒ์ผ์ด PE๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. - ํŒŒ์ผ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. โ†’ ํŒŒ์ผ์˜ ์•„์ด์ฝ˜ โ†’ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์œ„์น˜ โ†’ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ •๋ณด ๋“ฑ - ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ์ •๋ณด๊ฐ€ PE ๊ตฌ์กฐ์— ์ €์žฅ๋˜์–ด ์žˆ๊ณ  Win32 ์šด์˜์ฒด์ œ๋Š” ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฝ์–ด ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ ์‹œํ‚จ๋‹ค. โ—† PEํŒŒ์ผ ์ข…๋ฅ˜ -์‹คํ–‰ ํŒŒ์ผ ๊ณ„์—ด : exe, scr(Screen Saver) -๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด : dll, OCX(Active X) -๋“œ๋ผ์ด๋ธŒ ๊ณ„์—ด : SYS -์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด : OBJ
  • 3. โ—† PE ๊ตฌ์กฐ์˜ ํ—ค๋”ํŒŒ์ผ 1. IMAGE_DOS_HEADER - ๋„์Šค์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„ - ๋„์Šค ํ—ค๋” ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ์ง€๋งŒ ์ด ์ •๋ณด ์ค‘ ์ฒซ ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰ ํ•ญ๋ชฉ 2๊ฐ€์ง€๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์œˆ๋„์šฐ์ฆˆํ™˜๊ฒฝ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. - ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ ๋„์Šคํ—ค๋”๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 'MZ'์ด๋‹ค. PE๊ตฌ์กฐ๋Š” ๋„์Šค ํ—ค๋”๋กœ ์‹œ์ž‘๋˜๊ธฐ ๋•Œ๋ฌธ์— PE๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŒŒ์ผ์€ ๋ชจ๋‘ 'MZ'๋กœ ์‹œ์ž‘๋œ๋‹ค. - ๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ ๋„์Šคํ—ค๋”์˜ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ ์ •๋ณด๋กœ ๋‹ค์Œ ํ—ค๋”์ธ IMAGE_NT_HEADERS์˜ ์˜ต์…‹์ •๋ณด ์ด๋‹ค. ์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ NT_HEADER์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค
  • 4. 2. MS-DOS Stub Program - ํ•ญ๋ชฉ์—๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๋„์Šค ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด "This program cannot be run in DOS mode"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋„์šฐ๊ณ  ์ข…๋ฃŒํ•˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ๋‹ค (์—†์–ด๋„ ํŒŒ์ผ ์‹คํ–‰์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.) - ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ์˜ ํ˜ผํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š๋‹ค
  • 5. 3. IMAGE_NT_HEADERS - ํ”„๋กœ๊ทธ๋žจ์ด ์œˆ๋„์šฐ์ฆˆ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋งŽ์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. 1) IMAGE_NT_HEADERS ๊ตฌ์„ฑ - Signature, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. 2) File Header์˜ ์‹œ์ž‘์  ํ™•์ธ - IMAGE_DOS_HEADER์˜ offset to New EXE Header ํ™•์ธ tip, ์œˆ๋„์šฐ์ฆˆ ์‹คํ–‰ํŒŒ์ผ์„ ํŒ๋‹จํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ• -> ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ •๋ณด์—์„œ 'MZ'๋กœ ์‹œ์ž‘ํ•˜๊ณ  'PE'๋ฌธ์ž์—ด์ด ์žˆ๋Š”์ง€ ํ™•์ธ
  • 6. 3-1. Signature - PEํ—ค๋”์˜ ์‹œ์ž‘์„ ์˜๋ฏธํ•˜๋Š” 'PE'๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•œ๋‹ค 3-2. IMAGE_FILE_HEADER - ํŒŒ์ผ์˜ ์ „๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ๊ฐ€์ง„๋‹ค - ํ•ด๋‹น ํŒŒ์ผ์˜ ํƒ€๊นƒ์ด ๋˜๋Š” ์‹œ์Šคํ…œ์˜ ์ •๋ณด, ์„น์…˜์˜ ๊ฐœ์ˆ˜, ์ƒ์„ฑ ๋‚ ์งœ, IMAGE_OPTIONAL_HEADER์˜ ํฌ๊ธฐ, ํ•ด๋‹น ํŒŒ์ผ์˜ ํŠน์ง• ๊ฐ€์ง > Machine : ํƒ€๊นƒ ์‹œ์Šคํ…œ์˜ ํƒ€์ž… > NumberOfSections : ์„น์…˜์˜ ๊ฐœ์ˆ˜ > TimeDateStamp : ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ > PointerToSymbolTable : ์‹ฌ๋ณผ ํ…Œ์ด๋ธ”์˜ ํŒŒ์ผ ์˜คํ”„์…‹ > NumberOfSymbols : ์‹ฌ๋ณผ ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ ๊ฐœ์ˆ˜ > SizeOfOptionalHeader : optionalheader์˜ ํฌ๊ธฐ > Characteristics : ํŒŒ์ผ ์†์„ฑ๊ด€๋ จ ํ”Œ๋ž˜๊ทธ
  • 7. 3-3. IMAGE_OPTIONAL_HEADER - ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. 1) ๊ธฐ๋ณธ๊ตฌ์กฐ
  • 8. 2) ํŒŒ์ผ ์˜คํ”„์…‹, RVA, VA PE๊ตฌ์กฐ์—์„œ ํŠน์ • ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ํŒŒ์ผ ์˜คํ”„์…‹, RVA, VA 3๊ฐ€์ง€ ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค. - ํŒŒ์ผ ์˜คํ”„์…‹ : ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์—์„œ์˜ ๊ฐ’์€ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•œ๋‹ค. - RVA : ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๋ จ๋œ ์œ„์น˜๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” RVA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. - VA : ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์— ์™„์ „ํžˆ ๋กœ๋“œ๋œ ์ƒํƒœ์˜ ์œ„์น˜๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” VA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. โ—‡ ํŒŒ์ผ ์˜คํ”„์…‹(File Offset) ๏ผŠ ํŒŒ์ผ์˜ ์œ„์น˜๊ฐ’์„ ๋งํ•œ๋‹ค ๏ผŠ ํŒŒ์ผ์˜ ์ฒซ ๋ถ€๋ถ„์„ 0์œผ๋กœ ์‹œ์ž‘ํ•ด ํ•œ ๋ฐ”์ดํŠธ(byte)๋‹จ์œ„๋กœ 1์”ฉ ์ฆ๊ฐ€ ๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์€ ํŒŒ์ผ์‚ฌ์ด์ฆˆ - 1 ์ด๋‹ค. ํŒŒ์ผ ์˜คํ”„์…‹์˜ ์‹œ์ž‘์ด 0๋ถ€ํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ์‚ฌ์ด์ฆˆ - 1 ๊ณผ ๊ฐ™์Œ ๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํŒŒ์ผ๋‚ด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๋ฉฐ PEview ๋ฉ”๋‰ด ์ค‘ File Offset ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ ์˜คํ”„์…‹ํ˜•ํƒœ๋กœ PE๊ตฌ์กฐ์˜ ์œ„์น˜์ •๋ณด๊ฐ€ ํ‘œํ˜„๋จ โ—‡ RVA (Relative Virtual Address) ๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ƒ๋Œ€์ฃผ์†Œ ๊ฐ’์„ ๋งํ•œ๋‹ค ๏ผŠ RVA๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ƒํƒœ์—์„œ ์ƒ๋Œ€ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’ ๏ผŠ RVA๊ฐ€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋œ ์ •ํ™•ํ•œ ์ฃผ์†Œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด์ง€๋Š” ์•Š๋‹ค ๏ผŠ RVA๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋œ ์‹œ์ž‘ ์ง€์ ๋ถ€ํ„ฐ์˜ ์˜คํ”„์…‹์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ RVA๊ฐ’ ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์— ๊ฐ€๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๏ผŠ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ๊ณต๊ฐ„์— ๋กœ๋“œ ๋์„ ๋•Œ ๊ณ ์ •๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ๊ฐ’์„ ๋ชจ๋‘ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค ๏ผŠ RVA๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ๋กœ๋“œ ๋˜์–ด๋„ ์ƒ๊ด€์—†์ด ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ ๋œ ์ฃผ์†Œ (ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘ ์ฃผ์†Œ) + RVA๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ •ํ•™ํžˆ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค ๏ผŠ ํŒŒ์ผ ์˜คํ”„์…‹๊ณผ RVA์˜ ์ฐจ์ด - ํŒŒ์ผ ์˜คํ”„์…‹ : ํŒŒ์ผ ์ƒํƒœ์˜ ์‹œ์ž‘ ์œ„์น˜์—์„œ ์˜คํ”„์…‹๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค - RVA : ํ•ด๋‹น ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ RVA๊ฐ’ ๋งŒํผ ๋–จ์–ด์ง„ ๊ณณ์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค ๏ผŠ ํ•ด๋‹น ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ๋  ๋•Œ๋Š” ํŒŒ์ผ ํ˜•ํƒœ ๊ทธ๋Œ€๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ๋Š” ํŒŒ์ผ ์˜คํ”„์…‹ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  RVA๊ฐ’์„ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผํ•œ๋‹ค โ—‡ VA (Virtual Address) ๏ผŠ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ ๊ฐ’์„ ๋งํ•œ๋‹ค. ๏ผŠ VA๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์€ RVA์™€ ๊ฐ™๋‹ค ๏ผŠ ์ฐจ์ด์ ์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณ ์ •๋œ ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ์ ์ด๋‹ค ๏ผŠ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ์ง€์ •๋œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋กœ๋“œ๋œ ์ƒํƒœ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ „์ฒด ์ฃผ์†Œ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค
  • 9. 3) ์˜ต์…˜ ๏ผŠMagic : ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜๊ฐ’. 32๋น„ํŠธ PEํŒŒ์ผ 0x10B, 64๋น„ํŠธ PEํŒŒ์ผ 0x20B, ๋กฑ ํŒŒ์ผ 0x107๋กœ ํ‘œํ˜„๋œ๋‹ค. ๏ผŠ SizeOfCode : ํŒŒ์ผ ๋‚ด์˜ ์„น์…˜ ์‚ฌ์ด์ฆˆ์˜ ํ•ฉ ๏ผŠ AddressOfEntryPoint : ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์œ„์น˜๋กœ RVA๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋กœ๋”๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์œ„์น˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์•…์„ฑ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ํ•ญ๋ชฉ์˜ ๊ฐ’์„ ์ž์‹ ์˜ ๋ช…๋ น์–ด ์œ„์น˜๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. ๏ผŠ BaseOfCode : ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ฝ”๋“œ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜, RVA๋กœ ํ‘œ์‹œ ๏ผŠ BaseOfData : ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ ๋ฐ์ดํ„ฐ ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜, RVA๋กœ ํ‘œ์‹œ ๏ผŠ ImageBase : ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ธฐ ์›ํ•˜๋Š” ์œ„์น˜. exe ํŒŒ์ผ์€ 0x00400000, dllํŒŒ์ผ์€ 0x1000000์ด ์ผ๋ฐ˜์ ์ธ ์œ„์น˜์ด๋‹ค. Exe์˜ ๊ฒฝ์šฐ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •๋œ ์œ„์น˜๋กœ ๋กœ๋“œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ dll์˜ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‚˜์˜ exeํ”„๋กœ๊ทธ๋žจ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ dll์ด ๊ฐ™์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ •๋œ ์œ„์น˜์— ๋กœ๋“œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค. ImageBase์˜ ์ง€์ •๋œ ์œ„์น˜๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋กœ๋“œ๋˜๋ฉด ImageBase + RVA๋กœ VA๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๏ผŠ SectionAlignment : ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋“œ๋˜๋Š” ์„น์…˜์˜ ํฌ๊ธฐ ๋‹จ์œ„. FileAlignment๋ณด๋‹ค๋Š” ๊ฐ™๊ฑฐ๋‚˜ ์ปค์•ผ ํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” ๋ฐ˜๋“œ์‹œ SectionAlignment์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ex> ์„น์…˜์˜ ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ 0x900์ด๊ณ  SectionAlignment์˜ ๊ฐ’์€ 0x1000์ด๋ฉด ์„น์…˜์˜ ํฌ๊ธฐ๋Š” 0x1000์ด ๋œ๋‹ค. ๏ผŠ FileAlignment : ํŒŒ์ผ ์ƒํƒœ์—์„œ ์„น์…˜ ํฌ๊ธฐ ๋‹จ์œ„. 512์™€ 64K ์‚ฌ์ด์˜ 2์˜ n์Šน์— ํ•ด๋‹น ํ•˜๋Š” ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. ํŒŒ์ผ ๋‹จ์œ„์˜ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” FileAlignment์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ํŒŒ์ผ์˜ ๊ฒฝ์šฐ๋„ ์„น์…˜์˜ ์‹ค์ œ ํฌ๊ธฐ๊ฐ€ 0x201์ด๋”๋ผ๋„ FileAlignment์˜ ๊ฐ’์ด 0x200์ด๋ฉด 0x400์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๏ผŠ SizeOfImage : ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ์—์„œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ ๏ผŠ SizeOfHeaders : FileAlignment์— ๋งž์ถฐ์ง„ ์ „์ฒด ํ—ค๋”์˜ ํฌ๊ธฐ ๏ผŠ CheckSum : ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ ๊ฐ’์œผ๋กœ ๋ชจ๋“  ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ ๋ฐ ๋ถ€ํŒ… ์‹œ์— ๋กœ๋“œ๋˜๋Š” ์ผ๋ถ€ DLL ํŒŒ์ผ์€ ์ฒดํฌ์„ฌ ๊ฐ’์ด ํ•ญ๋ชฉ์˜ ๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ๋กœ๋“œ๋œ๋‹ค. ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์—์„œ๋ผ๋„ ์ฒดํฌ์„ฌ ๊ฐ’์„ ํ™•์ธํ•ด ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ณ€์กฐ ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๏ผŠ Subsystem : ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ subsystem์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ•ญ๋ชฉ์œผ๋กœ ํ•ด๋‹น ํ•ญ๋ชฉ์„ ํ†ตํ•ด ํŒŒ์ผ์ด ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์ธ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. IMAGE_SUBSYSTEM_NATIVE(1)๊ฐ’์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ์ด๋‹ค. ๏ผŠ NumberOfRvaAndSize : IMAGE_DATA_DIRECTORY์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. => ํŒŒ์ผ ์˜คํ”„์…‹๊ณผ RVA, VA๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ • ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์ง€๋งŒ, ํŒŒ์ผ ์ƒํƒœ์—์„œ๋Š” ํŒŒ์ผ ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์ƒ๋Œ€์  ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” RVA, ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ˆ๋Œ€ ์ฃผ์†Œ๋Š” VA๋ฅผ ์‚ฌ์šฉ ํ•œ๋‹ค.
  • 10. 4. IMAGE_DATA_DIRECTORY์˜ ์ƒ์œ„ 2๊ฐœ : EXPORT Table / IMPORT Table ๏ผŠ EXPORT Table - DLLํŒŒ์ผ๊ณผ ๊ฐ™์ด ํ•ด๋‹น ํŒŒ์ผ ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜๋ฅผ ์™ธ๋ถ€์˜ ํ”„๋กœ๊ทธ๋žจ์— ์ œ๊ณตํ•  ๋ชฉ์ ์œผ๋กœ ์ œ์ž‘ํ•œ ํ•จ์ˆ˜์˜ ๋ฆฌ์ŠคํŠธ - ์™ธ๋ถ€์— ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ 0๊ฐ’์ด ๋œ๋‹ค. ๏ผŠ IMPORT Table - ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  DLLํŒŒ์ผ๊ณผ ํ•จ์ˆ˜์˜ ๋ฆฌ์ŠคํŠธ - ์™ธ๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์ด ๋˜์ง€๋งŒ ์œˆ๋„์šฐ์ฆˆ ์‹œ์Šคํ…œ ํŒŒ์ผ์„ ์ œ์™ธํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์™ธ๋ถ€ ํ•จ์ˆ˜๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— 0์ด ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.
  • 11. 5. IMAGE_SECTION_HEADER.(text,data,rsrc,reloc) - ํŒŒ์ผ์˜ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ์š”์†Œ๋Š” ๊ฐ๊ฐ ๊ตฌ๋ถ„๋˜์–ด ์ €์žฅ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๊ตฌ๋ถ„ ๋‹จ์œ„๋ฅผ ์„น์…˜์ด๋ผ ํ•œ๋‹ค. - ๊ฐ๊ฐ์˜ ์„น์…˜์€ ์œ„์น˜ ๋ฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋‹ฌ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด IMAGE_SECTION_HEADER๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 1) text 2) data
  • 12. 3) rsrc 4) reloc
  • 13. ๏ผŠ Name - 8๋ฐ”์ดํŠธ ์•„์Šคํ‚ค ๋ฌธ์ž์—ด๋กœ ๊ฐ ์„น์…˜์˜ ์ด๋ฆ„์ด๋‹ค. ์„น์…˜๋ช…์˜ ์ง€์ •๋œ ๊ทœ์น™์€ ์—†๋‹ค. - ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ํŽธ์ง‘ํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ ๋™์ž‘์—๋Š” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. - ์ผ๋ฐ˜์ ์ธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„น์…˜๋ช…์„ ์‚ฌ์šฉํ•œ๋‹ค. > ".text" ์ฝ”๋“œ ์„น์…˜ > ".data" ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ ์„ธ์…˜ (์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ž€ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.) > ".rsrc" ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ จ ์„ธ์…˜ ๏ผŠ VirtualSize - ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋œ ์ƒํƒœ์—์„œ์˜ ์„น์…˜์˜ ํฌ๊ธฐ ๏ผŠ VirtualAddress - ์„น์…˜์˜ ์ฒซ ๋ฐ”์ดํŠธ์˜ RVA (์‹œ์ž‘์ ์„ ์˜๋ฏธํ•œ๋‹ค) ๏ผŠ SizeOfRawData - ํŒŒ์ผ ์ƒํƒœ์—์„œ์˜ ์„น์…˜ ํฌ๊ธฐ ๏ผŠ PointerToRawData Charateristics - ํŒŒ์ผ ์ƒํƒœ์—์„œ ์„น์…˜์˜ ์ฒซ ๋ฐ”์ดํŠธ์˜ ํŒŒ์ผ ์˜คํ”„์…‹ - ์„น์…˜์˜ ํŠน์ง•์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ > IMAGE_SCN_CNT_CODE(0x00000020) : ์„น์…˜์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ๋‹ค. > IMAGE_SCN_MEM_SHARED(0x10000000) : ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ณต์œ  ๊ฐ€๋Šฅ > IMAGE_SCN_MEM_EXECUTE(0x20000000) : ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„น์…˜ > ์ฝ”๋“œ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ์„น์…˜์€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋ฐ”์ด๋Ÿฌ์Šค ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ ์„น์…˜์€ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ž์‹ ์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค. > IMAGE_SCN_MEM_READ(0x40000000) : ์„น์…˜์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ๋กœ ์„น์…˜ ๋‚ด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ ์‚ฌ์šฉํ•œ๋‹ค > IMAGE_SCN_MEM_WRITE(0x80000000) : ์„น์…˜์— ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ž˜๊ทธ๋กœ ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ฐ€์ง„ ์„น์…˜์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • 14. 6. BOUND IMPORT Directory Table(IDT) ๏ผŠ IDT๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” DLL์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค ๏ผŠ 1๊ฐœ์˜ IDT๋Š” 1๊ฐœ์˜ DLL์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค ๏ผŠ IDT์˜ ๊ตฌ์กฐ์—๋Š” ์ž„ํฌํŠธํ•  DLL์˜ ์ด๋ฆ„(Name RVA)๊ณผ ํ•ด๋‹น DLL์—์„œ ์‚ฌ์šฉํ•  ํ•จ์ˆ˜์˜ ๋ชฉ๋ก(Import Name Table RVA)์ด ๋‚˜ํƒ€๋‚˜ ์žˆ๋‹ค ๏ผŠ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•ด ์šด์˜์ฒด์ œ์˜ ๋กœ๋”๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ ํ•  ๋•Œ ํ•„์š”ํ•œ DLL์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐพ์•„์„œ ์—ฐ๊ฒฐํ•œ๋‹ค ๏ผŠ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น DLL์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•œ๋‹ค ๏ผŠ ๊ทธ ํ›„ ํ”„๋กœ๊ทธ๋žจ์€ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค
  • 15. 7. BOUND IMPORT DLL Names - Import Name Table์—๋Š” ๊ฐ๊ฐ์˜ DLL์—์„œ ์ž„ํฌํŠธํ•˜๋Š” ํ•จ์ˆ˜์˜ ๋ชฉ๋ก์ด ๋‚˜ํƒ€๋‚œ๋‹ค. - ์ž„ํฌํŠธ๋œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ordinal number ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. - DLL์˜ ํ•จ์ˆ˜๋Š” ๊ฐ ํ•จ์ˆ˜๋งˆ๋‹ค ์ด๋ฆ„๊ณผ ordinal number๋ฅผ ๊ฐ€์ง„๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ • ์œˆ๋„์šฐ์ฆˆ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์ด๋ฆ„์€ ๊ณต๊ฐœ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ordinal number๋งŒ ๊ณต๊ฐœ๋œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ordinal number๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ๏ผŠ Hint/Name RVA โ†’ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ํ†ตํ•ด ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ๏ผŠ Ordinal โ†’ ํ•จ์ˆ˜์˜ ๋ฒˆํ˜ธ๋งŒ ์žˆ์„ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ๋ฒˆํ˜ธ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ