PEView
<그림 1> PEView 파일 스캔한 직후
- Windows 용 실행 파일인 PE ( Portable Executable ) 의 구조를 분석할 수 있는 툴입니다.
- 위 <그림 1> 의 경우 체크 한 곳을 유심히 볼 필요가 있습니다.
- 첫 시작 지점의 4D 5A ( MZ ) 라는 것을 볼 수 있는데 이것은 Signature 또는 매직넘버 라고 불리는 것입니다.
- 4D 5A 와 같은 매직넘버는 해당 파일의 실제 확장자를 확인할 수 있는 숫자 라고 보시면 될 것 같습니다.
<그림 2> MS-DOS Stub Program 탭을 들어온 모습
- 다음 <그림 2>의 경우 MS-DOS Stub Program 이라는 탭에 들어온 모습입니다.
- 이 탭의 경우 해당 파일이 DOS 모드에서 실행이 되는지 여부를 확인할 수 있는 탭 정도로 확인할 수 있습니다.
<그림 3> IMAGE_NT_HEADERS -> IMAGE_FILE_HEADER 탭을 들어온 모습
- <그림 3>의 경우는 IMAGE_NT_HEADERS 탭의 IMAGE_FILE_HEADER 를 들어온 모습의 그림입니다.
- 이곳에는 상당히 많은 정보들이 있습니다 첫번째로 해당 파일이 어떤 아키텍처에서 동작하는지 확인할 수 있습니다.
- MACHINE 을 보면 IMAGE_FILE_MACHINE_i386 이라는 것을 확인 할 수 있는데 이것은 해당 프로그램이 intel x86
아키텍처를 지원하는 CPU 에서 실행이 가능하다 라는 것을 확인할 수 있습니다.
- 다음으로 바로 아래는 해당 파일의 세션 갯수
- 그 아래 Time Date Stamp 를 확인해 해당 파일이 언제 생성이 되었는지 확인이 가능합니다.
- 다음으로 Characteristics 라는 것을 볼 수 있는데 이것은 파일 형식의 관한 정보를 담은 곳 이라고 보면 될 것 같습니다.
<그림 4> 세션 이름이 .text 인 세션에 들어온 모습
PEView 를 활용해 파일의 패킹 여부를 확인할 수 있는 방법
- <그림 4> 의 경우 세션명이 .text 인 세션 헤더에 들어온 모습입니다.
- 이 곳을 통해 해당 파일의 패킹여부를 의심할 수 있는 방법이 있습니다.
- Virtual Size 와 Size of Raw Data 를 확인해 해당 파일의 패킹 여부를 파악할 수 있습니다.
- Virtual Size 의 크기가 Size of Raw Data 보다 크다면 패킹을 의심할 수 있습니다.
- 패킹이 되지 않은 파일의 경우 두 값이 거의 유사하거나 같다고 합니다.
<그림 5> 패킹 파일을 스캔 후 세션 헤더에 들어온 모습
- <그림 5> 의 경우 패킹된 파일을 스캔 후 세션 헤더에 들어온 모습입니다.
- 좌측에 세션 이름부터 이전에 본 .text, .data 와 같이 일반적이지 않기 때문에 패킹을 의심할 수 있습니다.
- 또한 Virtual Size 와 Size of Raw Data 값을 비교한 결과 Virtual Size 의 값이 큰 것을 확인할 수 있기에 해당 파일은 패킹이 되었다 라고 볼 수 있을 것 같습니다.