리버싱
악성코드_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) 디컴파일 분석
주요 동작 순서 요약:
- 콘솔 생성 및 실행 메시지 출력
- 현재 시간 기록
C:\\temp\\training_sample.log파일에 로그 문자열 추가- 메시지 박스 출력
- 5초간 대기
- 종료 메시지 출력 후 콘솔 해제
주요 문자열:
"[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 사용 | 분석 우회 요소 오해 가능성 방지 |
| 메시지 표시 | 사용자 혼란 방지 위한 명확화 필요 |