본문 바로가기
분석 TIP/동적분석

dnSpy의 Analyzer 기능

by 두유노우컴퓨터 2025. 4. 25.

dnSpy의 Analyzer 기능에서 제공하는 Assigned by, Used by, Uses, Read by와 같은 항목들은 코드의 흐름과 상호작용을 분석하는 데 유용한 정보를 제공한다.

 

Assigned by

 

  • 특정 변수나 필드가 어디에서 값을 할당받는지 보여준다.
  • string key = "secret"; // "Assigned by"에서 이 코드 위치를 표시

 

Used by

 

  • 해당 변수, 메서드, 클래스 등이 어디에서 사용되고 있는지를 보여준다.
  • Console.WriteLine(key); // "Used by"에서 key가 이 위치에서 사용됨을 표시

 

Uses

 

  • 특정 메서드, 클래스, 혹은 변수 등이 어떤 다른 객체나 메서드를 참조하거나 호출하는지를 보여준다.
  • public void Encrypt() {AES.Create();}   //   "Uses"에서 Encrypt가 AES.Create()를 호출함을 표시

 

Read by

 

  • 특정 필드나 변수의 값이 어디에서 읽히는지를 보여준다.
  • var x = key; // "Read by"에서 key가 읽히는 위치를 표시

 


 

예시 코드

 

악성코드

 

  • Assigned by로 악성 키/값이 설정되는 지점 확인
  • Used by로 의심스러운 값의 사용 위치 추적

 

취약점

 

  • 입력 데이터 흐름을 파악하여 외부 입력이 변수에 할당되고 사용되는 경로 확인
  • 암호화/복호화 프로세스를 추적하여 Uses로 어떤 암호화 API가 사용되는지 확인

 

디버깅

 

  • Read by와 Assigned by를 통해 값의 변경 과정을 단계적으로 추적
  • 복잡한 코드에서 메서드 간 상호작용 및 데이터 흐름을 빠르게 파악하여 분석 속도 향상