악성코드 분석/실습

[윈도우즈보안과 악성코드기초] PE 파일

レ(゚∀゚)ヘ=3 2021. 3. 28. 04:39
728x90

PuTTY.exe 파일 분석하기

 

 

PEview로 분석할 putty.exe 파일



PEview로 실행한 PuTTY.exe 파일


IMAGE_DOS_HEADER

IMAGE_DOS_HEADER의 Signature의 Value 값이 ' MZ ' ( 4D 5A ) 인 것을 통해 PE 파일이라는 것을 알 수 있다.


MS-DOS Stub Program


' This program cannot be run in DOS mode ' 라는 문구를 통해 window 모드에서 실행 가능한 것을 알 수 있다.



IMAGE_NT_HEADERS ( IMAGE_FILE_HEADER )

Machine을 통해 AMD64 CPU 호환이라는 것 /  섹션의 개수가 0x0008, Time Date Stamp가 0x4A5BC9B3이며 날짜로 계산하면 2020년 06월 21일 17시 32분 01초라는 것 /  Size of Optional Header가 0x00F0이므로 64bit이라는 것 / 파일 형식이 0x0002와 0x0020이므로 실행가능하며 64bit를 사용한다는 것을 알 수 있다.



IMAGE_NT_HEADERS ( IMAGE_OPTIONAL_HEADER ) 

Magic -> 0x020B : 64 구조체 / Size Of Code -> 0x9C000 : 코드 영역의 크기는 0x9C000 / Address Of Entry Point -> 0x7DAF4 : 파일 실행 시 Image Base + 0x7DAF4부터 시작 / Base Of Code -> 0x1000 : 코드 영역이 Image Base + 0x1000부터 시작 / ImageBase -> 0x140000000 / Section Alignment -> 0x1000 : 섹션의 크기는 1000의 배수가 되고 빈 공간은 0으로 채움 / File Alignment -> 0x200 / Size Of Image -> 0xDE000 : 파일이 로딩 시 전체 크기 0xDE000, File Alignment의 배수 / Size Of Header -> 0x400 : 헤더의 크기 0x400 / Sub System -> 0x2 : GUI / Number of RvaAndSizes -> 0x10 : Data Directory 구조체는 0x10개





IMAGE_SECTION_HEADER ( IMAGE_SECTION_HEADER .text )

Name -> 0x7865742E : 섹션의 이름이 .text / Virtual Size -> 0x9BF96 : 메모리 섹션 크기가 0x9BF96 / RVA(Virtual Address) -> 0x1000 : 메모리 섹션의 시작 주소(실제 주소는 ImageBase + 0x1000) / Size of Raw Data -> 0x9C000 : 파일에서의 섹션 크기가 0x9C000 / Pointer to Raw Data -> 0x400 : 파일에서의 섹션 시작 위치가 0x400 / Characteristics   -> 0x60000020 : 읽고 쓰기가 가능한 코드 섹션