arrow_back필드 노트로 돌아가기
MALWARE ANALYSIS 게시됨 6 Jul 2026

실전 역어셈블링: 실습 입문 가이드

정적 분석부터 동적 디버깅까지, 바이너리 역어셈블링의 핵심 워크플로우를 배우고 실용적인 도구 활용법을 익힙니다.

역어셈블링은 컴파일된 소프트웨어를 분석하여 소스 코드에 접근할 수 없는 상태에서 그 논리, 동작, 의도를 이해하는 프로세스입니다. 악성코드를 분석하든, 폐쇄 소스 바이너리를 감시하든, CTF 문제를 풀든 동일한 핵심 워크플로우가 적용됩니다: 먼저 정적으로 정보를 수집한 후, 동적으로 가설을 확인합니다. 이 가이드는 그 워크플로우를 실용적이고 도구에 구애받지 않는 단계로 안내합니다.

안전한 분석 환경 구축

낯선 바이너리를 다루기 전에 작업 공간을 격리합니다. 호스트와의 네트워크 접근이 없는 전용 가상 머신을 사용하고, 분석 전에 스냅샷을 생성하며, 공유 폴더와 클립보드 동기화를 비활성화합니다. radare2, Ghidra, gdb, objdump를 포함한 Linux VM은 대부분의 정적 및 동적 분석 요구사항을 충족하며, x64dbgProcess Monitor를 포함한 Windows VM은 PE 파일 분석에 필수적입니다. 의심스러운 샘플을 주 머신에서 분석하지 말고, 교차 오염을 방지하기 위해 세션 간에 항상 스냅샷을 복원합니다.

정적 분석: 실행 없이 읽기

filereadelf -h(Linux) 또는 PE 헤더 검사기(Windows)를 사용하여 파일 타입과 아키텍처를 파악합니다. 엔트로피 분석을 통해 패킹이나 난독화를 확인합니다 — Detect It Easy 같은 도구는 압축이나 암호화를 암시하는 의심스럽게 높은 엔트로피 섹션을 표시합니다.

다음으로 Ghidra나 IDA Free 같은 디스어셈블러에 바이너리를 로드합니다. 다음에 집중합니다:

  • 임포트와 익스포트CreateRemoteThreadVirtualAllocEx 같은 API 호출은 프로세스 인젝션을 암시하며, WSAStartup은 네트워킹을 시사합니다.
  • 문자열strings -n 8 binary를 실행하여 하드코딩된 URL, 파일 경로, 디버그 메시지를 드러내고 기능을 파악합니다.
  • 제어 흐름 그래프 — Ghidra의 디컴파일러 보기는 원시 어셈블리를 읽기 쉬운 의사 C 코드로 변환하여 루프와 조건문 이해 속도를 크게 향상시킵니다.

함수 이름을 이해하면서 주석을 추가합니다. sub_401020decrypt_config로 이름 변경하면 나머지 분석을 훨씬 쉽게 따라갈 수 있습니다.

동적 분석: 실행 관찰

정적 분석만으로는 특히 난독화되거나 패킹된 코드에 대해서는 부족합니다. 바이너리를 디버거에 로드하고 앞서 파악한 의심스러운 API 호출에 중단점을 설정합니다. x64dbg에서 VirtualAlloc이나 WriteProcessMemory에 중단점을 설정하면 종종 메모리에 암호화된 코드를 쓴 후 실행되는 언패킹 루틴을 드러냅니다.

Process Monitor 또는 Linux의 strace/ltrace를 사용하여 파일, 레지스트리, 네트워크 활동을 실시간으로 로깅합니다. 이 외부 관점은 디버거의 내부 관점을 보완하며, 임시 파일 생성이나 DNS 조회 같이 디스어셈블리에서 발견하기 어려운 동작을 자주 드러냅니다.

네트워크 기능이 있는 바이너리의 경우, Wireshark나 INetSim 같은 가짜 인터넷 시뮬레이터와 함께 실행하여 샘플이 실제로 인터넷에 도달하지 않도록 하면서 명령 및 제어 트래픽을 관찰합니다.

반분석 트릭 대응

많은 바이너리, 특히 악성코드는 디버거, 가상 머신, 샌드박스를 탐지하도록 설계된 검사를 포함합니다. 일반적인 기법으로는 IsDebuggerPresent 호출, VM 관련 레지스트리 키 확인, 단일 단계 실행을 탐지하기 위한 실행 타이밍 측정이 있습니다. 정적 분석 중 이러한 검사를 발견하면 디버거에서 조건 분기를 패치하여 원하는 경로를 강제할 수 있습니다.

AI 도움을 받아 작성했으며, Michal Pilch(CISSP), Korra Studio에서 검토 및 게시했어요.

더 나아가고 싶으신가요?

이것은 Korra Studio 나레지베이스의 한 노트예요. 플랫폼은 모든 주제를 1-to-1 멘토링과 함께 제공해요.

무료로 시작하기arrow_forward