반응형

리버싱 정적 분석과 동적 분석

 

 

※ 정적 분석 ※

 

파일의 겉모습을 관찬하여 분석하는 방법입니다.

 

정적 분석 단계에서는 파일을 실행하지 않는다.

 

파일의 종류(확장자: exe, dll, doc, zip 등), 크기, 헤더(PE) 정보, Import/Export API, 내부 문자열,

 

실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인 하는 것이다.

 

또한 디스어셈블러(기계어를 어셈블리어로 바꿔주는 역할)를 통해서 내부 코드와 그 구조를 

 

확인하는 것도 정적 분석의 범주에 들어갈 수 있다.

 

이러한 정적 분석 방법으로 얻어낸 다양한 정보는 이후 소개될 동적 분석 방법에 좋은 참고 자료로 쓰인다.

 

-

 

※ 동적 분석 ※

 

파일을 직접 실행시켜서 동작하는것을 분석하고, 

 

디버깅을 통해서 코드 흐름과 메모리 상태 등을 자세히 살펴보는 방법이다.

 

파일, 레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위를 분석한다.

 

또한 디버거를 이용하여 프로그램 내부 구조와 동작 원리를 분석할 수 있다.

 

-

 

※ 정적 분석과 동적 분석의 활용 ※

 

정적 분석으로 정보를 수집하면서 해당 프로그램의 구조와 동작 원리에 대해 생각해보고 예측해본다.

 

이러한 생각과 예측은 후에 수행될 동적 분석 방법에 많은 아이디어를 제공한다.

 

이렇게 두 가지 분석 방법을 잘 활용하면 프로그램을 리버싱할 때 시간을 많이 단축시킬 수 있고

 

더 효과적인 분석이 가능하다.

 

-

 

참고로 리버싱이 디버깅이라고 이해하면 안된다. 

 

디버깅은 리버싱 방법 중에서 배중이 크고 재미있는 분야이긴 하지만 리버싱의 하위 개념이다.

 

리버싱의 방법은 매우 다양하다.

 

-

 

※ 복습 차원에서 문제 ※

 

1. 정적분석의 정의를 한줄로 말하자면?

 

2. 동적 분석의 정의를 한줄로 말하자면?

 

3. 정적 분석과 동적 분석을 잘 활용하면 어떤 점에서 이득인가?

 

4. 디버깅이 리버싱인가? 

 

4-1. 디버깅이 리버싱이라면 왜 용어를 둘로 나눴는가? 

 

4-2. 디버깅이 리버싱이 아니라면 디버깅은 무엇인가?

반응형

+ Recent posts