본문 바로가기

컴퓨터와 보안/리버싱

PE File Format - pestudio

Pestudio 를 통해 PE File Format을 분석해본다.

 

다운로드는

www.winitor.com/features

 

Winitor - Versions

Standard free Analysis of executable in a non-professional context.

www.winitor.com

여기서 하면 된다.

 

pestudio를 통해 메모장을 열어본다.

 

PE Fie Format

PE 구조가 잘 정리되어 있다.

 

Dos - header

 

우선 PE File Format의 Dos-header 부분은 다음과 같이 분석되어 나온다.

 

Dos-header

offfset이 0x000000E8으로 나오는데 앞의 0x는 16진수 표현이고 000000E8인지를 Hxd를 켜서 비교하면

000000E8 이 딱 나온다.

위쪽의 md5 ~ file-ratio 부분은 pestudio 에서 따로 분석해서 보여주는 부분이다. 각각 설명해보자면

  • md5~sha256은 해시함수로 뽑아낸 값이다.
  • size는 dos-header 의 크기를 알려준다. (Hxd로 봐도 64byte의 크기를 가진것을 알 수 있다.)
  • entropy는 randomness의 측정값이다. 자세한 설명은 아래 링크에서 볼 수 있다.
  • file-ratio는 해당 파트가 전체 파일에서 차지하는 비율을 나타낸다.

kennethghartman.com/calculate-file-entropy/

 

Calculate File Entropy – Kenneth G. Hartman, CISSP

Calculate File Entropy Entropy is the measurement of the randomness.  The concept originated in the study of thermodynamics, but Claude E. Shannon in applied the concept to digital communications his 1948 paper, “A Mathematical Theory of Communication.

kennethghartman.com

 

Dos - stub

 

Dos-stub 파트를 보면

 

Dos-stub

전에 Hxd에서 보았던 !This program cannot be run in Dos mode. 가 적혀있다.

 

 

Rich-header

 

  • Rich 헤더란 문서화 되지 않은 구조이며 컴파일 정보가 담겨있다. 실행할 때 사용되는 정보가 아니므로 유사도 측정에 아주 큰 도움이 되는 특징들은 아니지만, 부수적으로 판단을 할 수 있는 정도로 활용 가능하다

 

  • 또한 RIch header가 요새 유행하고 있다고 한다. 왜냐하면 rich header 부분을 사용해서 Kaspersky lab의 GReAT팀이 공격 그룹을 밝혀낸 사례가 있다고 한다. 다음은 해당 보고서의 일부를 발췌한 내용이다.

"2018 평창 올림픽 기간 동안 유포된 Olympic Destoryer에서는 Bluenoroff 패밀리의 파일과 동일한 RIch 헤더를 공유하였고 이는 동일한 환경을 사용하여 빌드되었다는 것을 뜻한다"

  • 결론적으로 Rich header는 Attack Group 간의 유사성을 표현하는데 간접 지표로서 활용이 가능하다. 간접 지표의 의미는 해당 부분은 변조가 가능하기 때문에 신뢰성이 떨어지기 때문이다. 그리고 유사성 표현의 지표로는 컴파일 정보를 가지고 판단한다.
까망눈연구소

더욱 자세한 내용은 wogh8732.tistory.com/212 에서 확인할 수 있다.

 

pestudio를 통해 살펴보면

 

rich-header

다음과 같이 나온다. ProdID가 분석되어서 나온다.

체크섬 값도 동일하게 나오는것을 알 수 있다. 

 

 

File - header

지난번에 NT Header에 관해 정리한 적이 있다.

NT Header - File header 부분이다.

 

file-header

 

제일 첫 멤버로 시그니처 값이 보이고, 그 아래로 IMAGE_FILE_HEADER 들의 구조체가 보인다.

 

 

Optional-header

 

NT Header - optional header 부분이다.

 

optional-header

 

 IMAGE_OPTIONAL_HEADER 들의 구조체가 보인다.

 

Sections

 

section

 

IMAGE_SECTION_HEADER 의 구조를 볼 수 있다.

'컴퓨터와 보안 > 리버싱' 카테고리의 다른 글

프로세스 메모리 구조와 스택 프레임 구조  (1) 2021.04.04
어셈블리어와 레지스터  (0) 2021.04.04
PE File Format4  (0) 2021.04.01
PE File Format3  (0) 2021.04.01
PE File Format  (0) 2021.03.29