728x90
PEํ์ผ ๊ฐ์
PEํ์ผ์ด๋?
- ์๋์ฐ ์ด์์ฒด์ ์์ ์ฌ์ฉ๋๋ ์คํํ์ผ ํ์
- ๊ทธ๋ฅ PEํ์ผ์ 32bit, 64bit ํํ์ ์คํํ์ผ์ PE+, PE32+๋ก ๋ถ๋ฆฐ๋ค.
- OBJ ํ์ผ์ ์ ์ธํ๊ณ ๋ชจ๋ ์คํ ๊ฐ๋ฅํ ํ์ผ
- DLL, SYS ๊ฐ์ ํ์ผ์ ์ ธ์์ ์ง์ ์คํํ ์ ์์ง๋ง ์๋น์ค, ๋๋ฒ๊ฑฐ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์คํ ๊ฐ๋ฅํ๋ค.
๊ตฌ๋ถ | ์ข ๋ฅ |
์คํ ๊ณ์ด | EXE, SCR |
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณ์ด | DLL, OCX, CPL, DRV |
๋๋ผ์ด๋ฒ ๊ณ์ด | SYS, VXD |
์ค๋ธ์ ํธ ํ์ผ ๊ณ์ด | OBJ |
PEํ์ผ ๊ฐ์
- PEํ์ผ์ ํค๋ ๋ถ๋ถ์๋ PEํ์ผ์ด ์คํ๋๊ธฐ ์ํด ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ์ ํ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ์ ์ฌ๋๋์ง, ์ด๋์๋ถํฐ ์คํ๋ ์ง, ์คํ์๋ ์ด๋ค DLL์ด ํ์ํ๊ณ , ํ์ํ ์คํ, ํ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๊ฐ ์ผ๋ง์ธ์ง ๋ฑ์ด PE ํค๋์ ๊ตฌ์กฐ์ฒด ํ์์ผ๋ก ์ ์ฅ๋์ด ์์
- ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ณด, API ์ต์คํฌํธ ๋ฐ ์ํฌํธ ์ ๋ณด, ์คํ์ ์ํ ์ฝ๋, ์คํ์ ํ์ํ ๋ฆฌ์์ค ์ ๋ณด ๋ฑ์ ๊ตฌ์กฐํํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๊ณ ์์
- PEํ์ผ ํฌ๋งท์ ๊ณต๋ถํ๋ค = ์ธ๊ณต์ง๋ฅ ์ฃผ์ feature๋ก ์ฌ์ฉ๋ PEํค๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ณต๋ถํ๋ค
- Feature: ๋จธ์ ๋ฌ๋์ ์ฌ์ฉ๋๋ ๊ฐ๋ณ์ ์ธ ๋
๋ฆฝ๋ณ์.
- feature๋ ์ฐ๋ฆฌ๊ฐ ์ ์ฑ์ฝ๋์ธ์ง ์๋์ง๋ฅผ ๊ฐ๋ฆฌ๋ ์ธ๊ณต์ง๋ฅ์ด ์ ์ฑ์ฝ๋์ธ์ง ํ๋ณํ ๋ ์ฌ์ฉํ ์ ๋ณด, ํน์ ๊ฑฐ๊ธฐ์ ๋์์ด ๋๋ ์ ๋ณด
- ๊ตฌ์กฐ์ฒด: ํ๋ ์ด์์ ๋ณ์(ํฌ์ธํฐ ๋ณ์, ๋ฐฐ์ด ํฌํจ)๋ฅผ ํ๋๋ก ๋ฌถ์ ์ ์๋ ๋ณตํฉ ์๋ฃํ์ผ๋ก ์ฌ์ฉ์ ์ ์ ์๋ฃํ์ด๋ผ๊ณ ๋ ๋ถ๋ฆผ
PE์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
PEํค๋์ PE๋ฐ๋๋ก ๋๋จ
- DOS header๋ถํฐ Section header๊น์ง๋ฅผ PE ํค๋๋ผ๊ณ ํ๊ณ ๊ทธ ๋ฐ์ ์น์ ์ ํฉ์ณ์ PE ๋ฐ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์์น๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ด ํ์ผ๊ณผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค๋ฅด๋ค
- ํ์ผ = offset
- ๋ฉ๋ชจ๋ฆฌ = ์ฃผ์(์ ๋์ฃผ์)
- ํ์ผ์ ์ฌ์ฉํ ๋๋ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ์์ผ์ CPU ์์์ ํ ๋นํ๋ค. ์ด๋ ํ์ผ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋๋ฉด ๋ชจ์(์น์ ํฌ๊ธฐ, ์์น ๋ฑ)์ด ๋ฌ๋ผ์ง.
- ํ์ผ ๋ด์ฉ์ ๋ณดํต ์ฝ๋(.txt๋ก ๋ ์น์ ), ๋ฐ์ดํฐ(.data), ๋ฆฌ์์ค(.rsrc) ์น์ ์ผ๋ก ๋๋์ด์ ์ ์ฅ๋๊ณ ์น์ ๊ณผ ์์ฑ์ด ์ ์ฌํ ๋ฐ์ดํฐ๋ค์ด ํฌํจ๋์ด ์๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
- ์น์ ์ ํ์ด๋ ๊ฐ์, ํฌ๊ธฐ๋ ๊ฐ๋ฐ ๋๊ตฌ์ ๋น๋ ์ต์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ณ , ์ค์ํ ๊ฑด ๊ฐ ์ฉ๋๋ณ๋ก ์น์ ์ด ์ฌ๋ฌ ๊ฐ ๋๋์ด์ ์ ์ฅ๋๋ค๋ ๊ฒ์ด๋ค.
- ์ปดํจํฐ์์ ํ์ผ, ๋ฉ๋ชจ๋ฆฌ, ๋คํธ์ํฌ ํจํท ๊ฐ์ ๊ฑธ ์ฒ๋ฆฌํ ๋ ์ต์ ๊ธฐ๋ณธ ๋จ์ ๊ฐ๋ ์ ์ฌ์ฉํจ
- ํ์ผ/๋ฉ๋ชจ๋ฆฌ์์ ์น์
์ ์์ ์์น๋ ๊ฐ ํ์ผ ๋ฉ๋ชจ๋ฆฌ์ ์ต์ ๊ธฐ๋ณธ ๋จ์์ ๋ฐฐ์์ ํด๋นํ๋ค.
- ๊ทธ๋์ ์์์ฃผ์๊ฐ ๋ฐฐ์๋ก ๋ฑ๋ฑ ๋์ด์ง๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
- ํ์ผ๊ณผ ๋ฉ๋ชจ๋ฆฌ์ ํ์ผ ํ ๋น(alignment)์ด ๋ค๋ฅผ ๊ฒฝ์ฐ, ๋์คํฌ์์์์ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฌ์ด์ฆ๊ฐ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ด ๋น ๊ณต๊ฐ์ NULL๋ก ์ฑ์๋ฒ๋ฆฐ๋ค.
- ์ฆ, null๊ณต๊ฐ์ผ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.
- ์ฃผ์ ํ ๋น ๋ฐฉ์์ด ๋ค๋ฅธ ์ด์ ๋?
- ๋ฉ๋ชจ๋ฆฌ๋ VA๋ฅผ ํ์ฉํ๊ณ , PE๋ RVA๋ฅผ ํ์ฉํ ๊ฒฝ์ฐ๊ฐ ๋ง์.
- ์ด๋ ๊ฒ ํ๋ ์ด์ ๋ ๋ง์ฝ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ๋ก ์ฎ๊ธฐ๋ ๋ฐ ๊ทธ ์์น์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด ์ด๋ฏธ ์์ ๊ฒฝ์ฐ, ๋ค๋ฅธ ์๋ฆฌ๋ฅผ ์ฐพ์์ผ ํ๋๋ฐ ์๋ฆฌ๋ฅผ ๋ณ๊ฒฝ ์ ํ๋ฉด ์ ์์ ์คํ ๋ถ๊ฐ
- ๋ฐ๋ผ์, Relocation์ด ๊ฐ๋ฅํ RVA๋ก ํ๋ก๊ทธ๋จ์ ์ด์ํด์ผ ํ๋ค.
- ๊ธฐ์ค์์น๋ ๋ณํด๋ ๊ธฐ์ค ์์น์ ๋ํ ์๋์ ์ฃผ์๋ ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์, ์๋ฌด ๋ฌธ์ ์์ด ์ํ๋ ์ ๋ณด์ ์ก์ธ์ค ๊ฐ๋ฅ
- VA(Virtual Address): ํ๋ก์ธ์ค ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋์ฃผ์
- RVA(Relative Virtual Address(offset)): ์ด๋ ๊ธฐ์ค ์์น(ImageBase)์์๋ถํฐ์ ์๋์ฃผ์
DOS HEADER
- Microsoft๊ฐ peํฌ๋งท์ ๊ฐ๋ฐํ ๋, ๋น์ ์ฐ์ด๋ DOS ํ์ผ์ ๋ํ ํ์ํธํ์ฑ์ ์ข๊ฒ ์ค๊ณํจ
- ๋ฐ๋ผ์ PEํค๋์ ์ ์ผ ์๋ถ๋ถ์ ๊ธฐ์กด DOS EXE header๋ฅผ ํ์ฅํ 'IMAGE DOS HEADER'๋ก ๋ง๋ฆ
- IMAGE DOS HEADER = ๊ธฐ์กด DOS EXE HEADER์ ํ์ฅ
- ์ฌ๊ธฐ์ ์ ์ผ ์ค์ํ ๋ฉค๋ฒ๋ e_magic๊ณผ e_ifanew
- ๋ชจ๋ ํ์ผ์ ์์ ๋ถ๋ถ(e_magic)์ DOS signature("MZ", ๋ง์ดํฌ๋ก์ํํธ์์ DOS ์คํํ์ผ์ ์ค๊ณํ ์ฃผ๋น์ฝ๋ธ์คํค์ ์๋ฌธ ์ด๋์ )๊ฐ ์กด์ฌํ๋ค.
- ๊ทธ๋ฆฌ๊ณ e_lfanew ๊ฐ์ด ๊ฐ๋ฆฌํค๋ ์์น์ NT header ๊ตฌ์กฐ์ฒด๊ฐ ์กด์ฌํด์ผ ํ๋ค.
DOS Header & DOS stub
- ์์ ๋ถ๋ถ์ e-magic("MZ")์ด ์๊ณ ํค๋์ ๋๋ถ๋ถ์ 00 00 00 E0์ผ๋ก e-lfanew๊ฐ ์ค์ ๋์ด ์๋ ๊ฑธ ๋ณผ ์ ์๋ค.
- NT header ๊ตฌ์กฐ์ฒด๊ฐ 0x00 00 00 E0์ ์กด์ฌํ๋ค๋ ๋ป
- DOS Stub์ ํค๋ ๋ฐ๋ก ๋ฐ์ ์กด์ฌํ๋ ๋ถ๋ถ์ธ๋ฐ, ์์ด๋ ํ์ผ ์คํ์๋ ๋ฌธ์ ๊ฐ ์๋ค.
- ์๋์ฐ์์ 40~4D ์์ญ๊น์ง, ์ฆ DOS Stub ์ฒซ ์ค 21๊น์ง๋ 16๋นํธ ์ด์ ๋ธ๋ฆฌ ๋ช ๋ น์ด
- ์๋์ฐ์์๋ ์์ ์ด์ชฝ ์ฝ๋๋ฅผ ๋ฌด์(32๋นํธ ๊ธฐ๋ ํ๊ณ , PE์์๋ ์คํ ์๋จ), ๊ทผ๋ฐ DOS ๋๋ฒ๊ฑฐ๋ก ์คํํ๋ฉด ์ ์ฝ๋๊ฐ ์คํ๋๋ฉฐ ์ ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋๋ ๊ตฌ์กฐ
DOS STUB - Rich Header
- Rich Header๋ DOS Stub ๋ถ๋ถ์ ๋ด๊ฒจ์ ธ ์๊ณ ์ปดํ์ผ๋ฌ๋ ๋ง์ปค ์ ๋ณด๊ฐ ๋ด๊ฒจ์์.
- ์คํํ์ผ์ ์ ์ฑ ์ ๋ฌด๋ฅผ ํ๋จํ ๋๋ ์ฌ์ฉํ์ง ์์ผ๋, ์ปดํ์ผ๋ฌ๋ ๋ง์ปค๋ฅผ ํตํด ๊ณต๊ฒฉ๊ทธ๋ฃน์ ๋ถ๋ฅํ ์ ์์
- Rich identifier ์ด์ ๊น์ง์ ๋ถ๋ถ์ checksum๊ณผ XOR ์ฐ์ฐ ์ ์ฌ๋ฌ ์ ๋ณด๋ฅผ ์ป์ ์ ์์
https://wogh8732.tistory.com/212
NT HEADER
- ๋ณธ๊ฒฉ์ ์ธ PE Header๋ก PE Header๋ IMAGE_NT_HEADER ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ด 3๊ฐ์ ๋ฉค๋ฒ๋ก ๋์ด ์๋ค.
- ์๊ทธ๋์ฒ
- File Header
- Optional Header
- ์๊ทธ๋์ฒ๋ "PE00"์ผ๋ก ์์ํ๋ 4๋ฐ์ดํธ ๊ธธ์ด์ ๋ฌธ์์ด
NT HEADER(File Header)
1. Machine
- CPU๋ณ๋ก ๊ณ ์ ํ ๊ฐ์ ๊ฐ์ง๊ณ Intel 386 ํธํ ์นฉ์ 014c์ ๊ฐ์ด๋ค.
- ๋ฆฌํ ์ค๋์ ๋ฐฉ์: ์ ์ฅํ ๋ ํ์ ๋ฐ์ดํธ, ์ฆ ์์ ์ชฝ์ ๋จผ์ ์ ์ฅํ๋ ๋ฐฉ์
- ์ปดํจํฐ์ intํ 4๋ฐ์ดํธ ๋ฐ์ดํฐ 0x01 02 03 04๋ฅผ ์ ์ฅํ๋ค๊ณ ์๊ฐํ๋ฉด, ๋ฆฌํ ์ค๋์ ๋ฐฉ์์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ์ 04 03 02 01 ์์ผ๋ก ์ ์ฅ๋๋ค.
- Intel ๊ธฐ๋ฐ ์๋์ฐ๋ ๋ฆฌํ ์ค๋์ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ๋ฐ๊พธ์ 4C 01 ์ด๋ ๊ฒ ๋์ด์๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก, Intel 386 ํธํ ์นฉ์ ๋ง๋ ํ๋ก๊ทธ๋จ์ด๋ค.
2. NumberOfSections
์น์ ์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ๋ถ๋ถ
3. SizeOfOptionalHeader
- IMAGE_NT_HEADERS์ ๋ง์ง๋ง ๋ฉค๋ฒ์ธ IMAFE_OPTIONAL_HEADER ๊ตฌ์กฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ถ๋ถ
- PEํ์ผ์ ์ฝ๋, ๋ฐ์ดํฐ, ๋ฆฌ์์ค ๊ฐ์ ๊ฒ๋ค์ด ๊ฐ๊ฐ ์น์ ์ ๋๋์ด์ ์ ์ฅ๋๋๋ฐ ์ด ๋ถ๋ถ์ ๊ทธ ์น์ ์ด ๋ช ๊ฐ์ธ์ง ๋ํ๋ด๋ ๋ถ๋ถ
- ์ด ๋ถ๋ถ์ 0๋ณด๋ค ์ปค์ผ ํ๊ณ ์ ์๋ ์น์
๊ฐ์๋ ์ค์ ์น์
๊ฐ์๊ฐ ๋ค๋ฅด๋ฉด ์๋ฌ๊ฐ ๋๋ค.
- 0๋ณด๋ค ์์ผ๋ฉด ์คํ์ด ์๋จ, ์น์ ์ด ์๋ ๊ฒ
- ํน์ ์ ์๋ ์น์ ๊ฐ์๊ฐ ์ค์ ์น์ ๊ฐ์๋ณด๋ค ์ ์ผ๋ฉด ๋ท๋ถ๋ถ ์น์ ์ด ์ธ์๋์ง ์๊ธฐ๋ ํจ
- SizeOfOptionalHeader์ ๊ฒฝ์ฐ๋ optional header์ ํฌ๊ธฐ๋ฅผ ๋ช ์ํ๋ ๋ถ๋ถ์ธ๋ฐ, 32๋นํธ ํ์ผ์ธ์ง, 64๋นํธ ํ์ผ์ธ์ง๋ฅผ ํ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ถ๋ถ
4. Characteristics
- ํ์ผ์ ์์ฑ์ ๋ํ๋ด๋ ๊ฐ.
- ์คํ์ด ๊ฐ๋ฅํ์ง, DLL ํ์ผ์ธ์ง ๋ฑ์ ์ ๋ณด๋ค์ด bit OR ํ์์ผ๋ก ์ ์ฅ๋จ
- DLL์ด๋ OBJ ํ์ผ์ฒ๋ผ ์
ธ์์ ์คํ์ด ๋์ง ์๊ณ ์๋น์ค๋ ๋๋ฒ๊ฑฐ๋ก ์คํํ๋ ๊ฒฝ์ฐ
- 0002h, ์ฆ IMAGE_FILE_EXECUTABLE์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์
- TIMESTAMP๋ผ๋ ๋ฉค๋ฒ๋ ํด๋น ํ์ผ์ด ๋น๋๋ ์๊ฐ์ ๋ํ๋ด๋ ๊ฐ์ด๊ณ , ํ์ผ ์คํ์ ์ํฅ์ ๋ฏธ์น์ง ์์
- ์ค์ ์นจํด์ฌ๊ณ ์์ ํ์ผ์ ์์ฑ์์ ์ด๋ ์นจํฌ์์ ์ผ๋ก ์๊ฐ์ ์ถ์ ํ ๋๋ ์ฌ์ฉ๋ ์ ์์ง๋ง, ์ธ๊ณต์ง๋ฅ ์ ์์๋ ๋ณ๋ฌ๋ฆฌ feature๋ก ์ฌ์ฉ๋์ง ์์
- Machine: 4byte → 01 4C(32bit Intel 386 ํธํ ์นฉ)
- NumberOfsctions: 4byte → 00 03(3๊ฐ)
- Timestamp: 8byte → 41 10 7C C3
- Offset to Symbol table: 8byte → 00 00 00 00
- Number of Symbols: 8byte → 00 00 00 00
- Size of Optional Header: 4byte → 00 E0
- Characheristics: 4byte → 01 0F
- IMAGE_FILE_RELOCS_STRIPPED 0x0001
- IMAGE_FILE_EXECUTABLE_IMAGE 0x0002
- IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004
- IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008
- IMAGE_FILE_32BIT_MACHINE 0x0100
- → 1+2+4+8+=15 (16์ง์ ๋ณํ ์ 0F๋ก ๋ณํ๋จ)
NT HEADER(Optional Header)
- Magic ๋๋ฒ๋ 32๋นํธ๋ 10B์ ๊ฐ์, 64๋นํธ๋ 20B์ ๊ฐ์ ๊ฐ์ง
- AddressOfEntryPoint์ ๊ฒฝ์ฐ, EP์ RVA(์๋์ฃผ์)๋ฅผ ๋ํ๋ธ ๊ฑด๋ฐ, EP๋ ํ๋ก๊ทธ๋จ์์ ์ต์ด๋ก ์คํ๋๋ ์ฝ๋์ ์์ ์ฃผ์์.
- ๋ฐ๋ผ์, ํ๋ก๊ทธ๋จ์ ์์์ ์ผ๋ก ๋งค์ฐ ์ค์ํ ๊ฐ
- EXE, DLL ํ์ผ์ user memory ์์ญ์ธ 0~7FFFFFFF ๋ฒ์์ ๋ก๋ฉ
- SYS๋ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ธ 80000000~FFFFFFFF ๋ฒ์์ ๋ก๋ฉ
- PE ๋ก๋๋ PEํ์ผ์ ๋ก๋ฉํ ๋, ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉํ ๋ค์ EIP ๋ ์ง์คํฐ ๊ฐ์ ImageBase+AddressOfEntryPoint ๊ฐ์ผ๋ก ์ธํ ํจ
- ImageBase๋ PEํ์ผ์ด ๋ฉ๋ชจ๋ฆฌ์์ ๋ก๋ฉ๋๋ ์์ ์ฃผ์๋ฅผ ๋ํ๋
- ์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ๋๊ตฌ๊ฐ ๋ง๋ exe ํ์ผ์ ImageBase๋ 00400000์ด๊ณ , DLL์ 10000000 ์.
- EIP ๋ ์ง์คํฐ: Extended Insturction Pointer
- CPU๊ฐ ์ฒ๋ฆฌํ ๋ช ๋ น์ ์ฃผ์๋ฅผ ๋ํ๋
- ๋ค์์ ์ด๋ ๊ฐ์ ๋ญ ํ์ง?๋ฅผ ๋ํ๋ด๋ ๋ ์ง์คํฐ
- ํด๋น PE๊ฐ ์์๋๋๋ก CPU์ ๋ค์ ์ฒ๋ฆฌ์ง์ ์ PEํ์ผ์ ์์์ ์ผ๋ก ์ฎ๊ฒจ์ฃผ๋ ๊ฒ
- ํ์ผ์์ ์น์ ์ ์ต์๋จ์๋ฅผ ๋ํ๋ด๋ ๊ฑด FileAlignment
- ๋ฉ๋ชจ๋ฆฌ์์ ์น์ ์ ์ต์๋จ์๋ฅผ ๋ํ๋ด๋ ๊ฑด SectionAlignment
- ๋ ๊ฐ์ ๊ฐ์ ์๋, ๋ค๋ฅผ ์๋ ์์ผ๋ฉฐ ํ์ผ/๋ฉ๋ชจ๋ฆฌ์ ์น์ ํฌ๊ธฐ๋ ๋ฐ๋์ FileAlignment / SectionAlignment์ ๋ฐฐ์์ฌ์ผ ํจ
- SizeOfImage: PE ํ์ผ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋์์ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์์ PE Image๊ฐ ์ฐจ์งํ๋ ํฌ๊ธฐ
- ์ผ๋ฐ์ ์ผ๋ก ํ์ผ ํฌ๊ธฐ(size)์ PE ์ด๋ฏธ์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋ ํฌ๊ธฐ(SizeOfImage)๋ ๋ค๋ฆ
- SizeOfHeaders: PE ํค๋์ ์ ์ฒด ํฌ๊ธฐ, FileAlignment์ ๋ฐฐ์
- ํ์ผ ์์์ง์ ์์ SizeOfHeader์ ๊ธธ์ด๋งํผ ๋จ์ด์ง ์ง์ ์ ์ฒซ ๋ฒ์งธ ์น์ ์ด ์์นํจ
- ํค๋ ๋ค์์ ์น์ ์ด ๋์จ๋ค๋ ๊ฑธ ์๊ฐํด ๋ณด๋ฉด ๋จ
- Subsystem: ์ด subsystem์ ๊ฐ์ผ๋ก ์์คํ
๋๋ผ์ด๋ฒ ํ์ผ(.sys)์ธ์ง ์ผ๋ฐ ์คํ ํ์ผ(.exe, .dll)์ธ์ง ๊ตฌ๋ถ ๊ฐ๋ฅ
- ํ๋ sybsystem ๊ฐ์ ๋ฐ๋ผ ๊ตฌ๋ถ๋๋ ๊ฒ๋ค
- 1์ด๋ฉด ์์คํ ๋๋ผ์ด๋ฒ์ ๊ฐ์ sysํ์ผ
- 2๋ฉด ๋ฉ๋ชจ์ฅ ๊ฐ์ ์ฐฝ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
- 3์ด๋ฉด cmd ๊ฐ์ ์ฝ์ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
- ํ๋ sybsystem ๊ฐ์ ๋ฐ๋ผ ๊ตฌ๋ถ๋๋ ๊ฒ๋ค
- NumberOfRvaAndSizes: ๋ฐ๋ก ๋ค์ ๋ฉค๋ฒ์ธ DataDirectory ๋ฐฐ์ด์ ๊ฐ์๋ฅผ ๋ํ๋
- ๋งจ ์์ Define์ผ๋ก ๊ฐ์๊ฐ 16์ผ๋ก ์ ์๋์ด ์์ง๋ง, ๋ก๋๋ ์ด ๋ณ์๋ก ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ์ธ์ํจ.
- DataDirectory: IMAGE_DATA_DIRECTORY ๊ตฌ์กฐ์ฒด์ ๋ฐฐ์ด
- ๋ฐฐ์ด์ ๊ฐ ํญ๋ชฉ๋ง๋ค ์ ์๋ ๊ฐ์ ๊ฐ์ง
- ์ฌ๊ธฐ์ EXPORT, IMPORT, RESOURCE, TLS Directory๊ฐ ์ค์ํ๋ฐ, ๊ทธ์ค์์๋ EXPORT, IMPORT DIRECTORY๊ฐ ํนํ ์ค์ํ๋ค!
'EVI$ION > ์ธ๊ณต์ง๋ฅ ์ ์ฑ์ฝ๋ ๋ถ๋ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[STUDY] #WEEK3 - QUIZ (0) | 2024.10.04 |
---|---|
[SESSION] 3. PEํ์ผ(2) (1) | 2024.10.04 |
[STUDY] #WEEK2 - QUIZ (0) | 2024.09.24 |
[SESSION] 1. ๋ฆฌ๋ฒ์ฑ ๊ธฐ์ด (0) | 2024.09.22 |
[SESSION] OT (1) | 2024.09.21 |