
static vs. dynamic analysis
·
reversing
정적 분석: 프로그램을 실행시키지 않고 분석하는 방법 장점- 프로그램의 전체 구조를 파악하기 쉬움. 프로그램이 어떤 함수로 구성됐고 함수들은 서로 어떤 호출 관계를 갖는지, 어떤 API를 사용하고 어떤 문자열을 포함하는지 등을 종합적으로 살펴볼 수 있음.- 분석 제약에서도 비교적 자유로움.- 바이러스와 같은 악성 프로그램으로부터 안전함. 바이러스를 동적 분석할 경우, 바이러스를 실제로 실행해야 하므로 자신의 컴퓨터가 감염될 우려가 있음. 단점- 프로그램이 난독화되면 분석이 어려워짐. 난독화가 적용되면 프로그램의 코드가 심하게 변형돼서 이를 읽고, 실행 흐름을 파악하기가 어려워짐.- 다양한 동적 요소를 고려하기 어려움. 어떤 함수가 특정 시점에 정확히 어떤 인자와 어떤 전역 변수를 가지고 실행될지는 정적..