본문 바로가기

리버싱

PE파일 분석-메모장

반응형

우리는 평소 메모장을 많이 씁니다.

그래서 PEview를 통해 메모장을 분석해봤습니다.

-PEview에서 메모장을 열었습니다.

:4D 5A가 먼저 적힘을 보아 little Endian을 통해, 시작점이 5A4D임을 확인할 수 있었습니다.
:Value
에서 ‘}’을 통해 표시한 부분에서 “This program cannot be run in Dos mode”라는 것을 보아 이 프로그램은 DOS 모드에서 실행될 수 없는 것을 볼 수 있습니다.

-IMAGE_DOS_HEADER

:Value에서 IMAGE_DOS_SIGNAATURE MZ라고 적힌 것을 보아, exe파일임을 확인할 수 있습니다.

:e_magic필드에서 4D 5APE파일 구조임을 확인할 수 있습니다.
:e_lfanew
필드-가리키는 0xF0으로 가면 PE가 있음을 확인할 수 있습니다. 여기서 한번 더 PE 파일임을 알려줌을 확인할 수 있습니다.

 

-MS-DOS Stub Program

NT_Header

Signature, IMAGE_FILE_HEADER, IMAGE_OPTIONAL_HEADER로 이루어진 것을 볼 수 있었습니다.

:Signature에서 PE구조 파일이 명시된 것을 볼 수 있었습니다.

(file header)

Machine

0x014C - I386 CPU호환

Number of Sections

0x06

Time Date Stamp

0x93B4E8FA

Pointer to Symbol Table, Number of Symbols

000000000

Size Of Optional Header

0xE0(32bit)

Characteristics

0x102 파일형식 정보

: FILE_HEADER에서 위의 정보를 확인할 수 있었습니다.

(Optional_header)

이름

의미

0x10B

Magic

32구조체

0x1FC00

Size of Code

코드 영역의 크기

0x1F8D0

Address Of Entry Point

프로그램 시작되는 코드의 주소.

0x1000

Base Of Code

코드 영역이 시작되는 상대 주소(RVA)

0x400000

Image Base

PE파일이 메모리에 로드되는 시작 주소

0x1000

Section Alignment

메모리에서 섹션의 최소 단위.

0x200

File Alignment

파일에서 섹션의 최소 단위

0x2B000

Size Of Image

PE파일이 메모리에 로딩될 때 전체 크기

0x400

Size Of Header

모든 헤더의 크기

0x02

Sub System

2임을 보아 GUI

0x10

Number Of Rva And Sizes

Data Directory의 구조체 멤버 개수

 

:Optional_Header의 내용을 위의 Raw Data에서 확인할 수 있습니다.

-Section_Header

멤버

의미

0x747865742E

Name

섹션 이름.text

0x1FB50

Virtual Size

메모리 섹션 크기 정보

0x1000

RVA(Virtual Address)

메모리 섹션의 시작 주소

0x1FC00

Size of Raw Data

파일에서의 섹션 크기

0x400

Pointer to Raw Data

파일에서의 섹션의 시작 위치

0x60000020

Characteristics

읽고 쓰기가 가능한 코드 섹션

위의 Raw Data에서 위의 표로 정리된 내용을 확인할 수 있습니다.

 

이렇게 메모장을 분석해보는 시간을 가졌네요!

반응형