본문 바로가기

Reversing/Dreamhack : Reverse Engineering

Background: Static Analysis vs. Dynamic Analysis

Static Analysis (정적 분석)

프로그램을 실행시키지 않고 분석하는 방법

 

장점 👍

  1. 프로그램의 전체 구조를 파악하기 쉽다
    • 프로그램이 어떤 함수로 구성되었고, 함수들은 서로 어떤 호출 관계를 가지는지, API 정보와 어떤 문자열을 사용하는지 등을 종합적으로 살펴볼 수 있음
  2. 분석 환경의 제약에서도 비교적 자유롭다
    • 프로그램을 실행하지 않아도 되므로 분석을 지원하는 적절한 도구만 갖추면 됨.
  3. 악성 프로그램의 위협으로부터 안전

단점 👎

  1. **Obfuscation(난독화)**가 적용되면 분석이 매우 어려워짐
  2. 다양한 동적 요소를 고려하기 어려움

 

대표적인 정적 분석 툴 → IDA

 

Dynamic Analysis (동적 분석)

프로그램을 실행시키면서 분석하는 방법

 

장점 👍

  1. 코드를 자세히 분석하지 않아도 프로그램의 개략적인 동작 파악 가능

단점 👎

  1. 분석 환경을 구축하기 어려울 수 있음
  2. Anti Debugging (안티 디버깅)
  • 프로그램 자신이 디버깅을 당하고 있는지 검사하고, 디버깅 중이면 프로그램을 강제로 종료함.

 

대표적인 동적 분석 툴 → x64dbg

'Reversing > Dreamhack : Reverse Engineering' 카테고리의 다른 글

Quiz: x86 Assembly 1  (0) 2025.04.16
x86 Assembly🤖: Essential Part  (0) 2025.04.16
Background: Windows Memory Layout  (0) 2025.04.16
Background: Computer Architecture  (0) 2025.04.16
Background : Binary  (0) 2025.04.16