hhkb
리버싱

악성코드_02_기드라 PE 분석 보고서 샘플

작성자 : Heehyeon Yoo|2025-12-03
# 리버싱# 악성코드# PE# 분석# 보고서

정적 분석 보고서

대상 파일: training_sample.exe
분석 방식: Windows PE 정적 분석 (Ghidra)
작성자: 유희현
작성일: 2025-12-03

1. 파일 개요

항목내용
파일명training_sample.exe
파일 형식PE32+ (64-bit) Windows GUI
컴파일러 추정MSVC (Visual Studio 기반)
목적실행 로그 기록 및 사용자 메시지 출력
위협 수준낮음 (비악성 학습용 샘플)

2. 진입점 및 실행 흐름

프로그램은 표준 Windows PE 실행 구조를 따른다.

entry
 ├── FUN_140001808 (보안 쿠키 초기화)
 └── FUN_1400012c4 (CRT 초기화)
        └── FUN_140001070 (실제 실행 로직)

핵심 로직은 FUN_140001070 내에서 수행된다.

3. Import Table 기반 행위 예측

Import API기능 의미보안 관점
CreateFileA파일 생성/열기파일 조작 행위
WriteFile데이터 기록정보 로그 및 데이터 축적
SetFilePointer파일 끝 append로그 누적 패턴
MessageBoxA사용자 UI 조작사회공학 악용 가능
Sleep일정 시간 지연동적 분석 회피 가능
GetTickCount시간 측정조건 기반 동작 가능

→ 악성코드에서 사용하는 행위와 일부 패턴 유사

4. WinMain(FUN_140001070) 디컴파일 분석

주요 동작 순서 요약:

  1. 콘솔 생성 및 실행 메시지 출력
  2. 현재 시간 기록
  3. C:\\temp\\training_sample.log 파일에 로그 문자열 추가
  4. 메시지 박스 출력
  5. 5초간 대기
  6. 종료 메시지 출력 후 콘솔 해제

주요 문자열:

"[TRAINING] sample started."
"[TRAINING] sample log entry\\r\\n"
"[TRAINING] exiting after %lu ms.\\n"
"C:\\\\temp\\\\training_sample.log"

로그 파일 생성 동작 예시:

hFile = CreateFileA("C:\\\\temp\\\\training_sample.log", GENERIC_WRITE, FILE_SHARE_READ,
                    NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

SetFilePointer(hFile, 0, NULL, FILE_END);
WriteFile(hFile, "[TRAINING] sample log entry\\r\\n", length, ...);

5. 행위 분석 평가

항목분석 결과
파일 시스템 영향존재 (로그 기록)
사용자 인터페이스 영향존재 (메시지 박스)
분석 지연 요소존재 (Sleep)
네트워크 통신없음
권한 상승/시스템 변경없음
데이터 유출 가능성낮음

6. 악성 여부 판단

일부 행위는 악성코드가 흔히 사용하는 기법(파일 조작, Sleep 기반 지연)과 유사하나,
해당 프로그램은 단순 로그 기록 및 사용자 알림 기능만 수행하고 있으며
외부 통신/권한 획득 등의 악성 행위는 확인되지 않음.

최종 결론: 악성 성격을 가지지 않는 학습용 샘플

7. IOC (Indicators of Compromise)

유형
파일 경로C:\temp\training_sample.log
로그 문자열[TRAINING] sample log entry

8. 개선사항 및 보안 관점 제언

항목제안
로그 기록 경로사용자 접근 가능한 임의 경로 사용 방지
Sleep 사용분석 우회 요소 오해 가능성 방지
메시지 표시사용자 혼란 방지 위한 명확화 필요