강제 수행 부 ( 113 ) 는 역어셈블러 ( 112 ) 에 의해 기계어 로 변환 된 명령어 를 분석 하 여 조건 분기 문 또는 API 호출 인지 를 판단 하 고 조건 분기 문 및 API 핸들러 의 강제 수행 을 디버거 ( 111 ) 에 지시 한다 . 강제 수행 을 위해 , 조건 분기 문 또는 API 호출 을 위한 체크 포인트 를 수행 정보 DB ( 130 ) 에 기록 한다 . 예 를 들 어 , 조건 분기 문인 경우 조건 에 만족 하 는 분기 로 수행 흐름 이 택해 진다면 , " 그렇 지 않 은 경우 의 분기 로 수행 흐름 이 택해 지 도록 조작 된 분석 대상 프로세스 가 사용 하 는 메모리 영역 및 레지스터 값 을 포함 하 는 수행 환경 정보 ( context ) 를 체크 포인트 로서 수행 정보 DB ( 130 ) 에 기록 한다 . 본 발명 의 특징 은 이벤트 핸들러 를 등록 하 는 부분 과 기계어 수순 에서 조건 분기 가 일어나 는 명령어 의 경우 에 대해 적어도 한 번 씩 수행 을 보장 하 는 강제 수행 을 통해 프로그램 분석 을 수행 하 는 것 이 다 . 특정 이벤트 가 발생 하 거나 프로그램 수행 환경 이 특정 조건 을 만족 시켜야만 수행 되 는 프로그램 내 의 명령어 를 강제 수행 시킴 으로써 프로그램 에 잠재 되 어 있 는 악성 행위 를 분석 및 탐지 하 는 것 이 다 . "" 강제 수행 "" 이 란 프로그램 의 수행 환경 ( Context ) 을 변경 하 여 프로 그래 램 의 수행 흐름 을 임의 로 변경 하 는 것 을 의미 한다 . 예 를 들 어 "," "" jnz 0 x 445555 "" 라는 명령어 는 플래그 레지스터 의 ZF 비트 가 0 이 고 EAX 레지스터 의 값 이 0 이 아닌 경우 에 는 0 x 445555 로 분기 하 고 ", 그렇 지 않 은 경우 엔 그 다음 명령 을 수행 하 는 명령어 라고 가정 한다 . 강제 수행 을 수행 하 지 않 으면 , 해당 프로그램 은 0 x 445555 로 분기 하 거나 , 그 다음 명령 을 수행 하 는 두 가지 경우 중 하나 의 경우 만 수행 한다 . 그러나 , 강제 수행 을 하 게 되 면 두 가지 경우 를 적어도 한 번 은 수행 하 게 된다 . 예 를 들 어 , 특정 시간 에 특정 사이트 로 DDoS 공격 을 하 는 악 성 코드 를 분석 하 는 경우 에 특정 시간 이 되 지 않 으면 악성 코드 는 DDoS 공격 을 하 지 않 기 때문 에 제대로 된 분석 결과 를 얻 을 수 없 다 . 그러나 , 강제 수행 기법 을 적용 하 게 되 면 시간 을 비교 하 는 구문 에서 조건 을 만족 하 는 경우 와 그렇 지 않 은 경우 두 가지 경우 를 전부 수행 하 기 때문 에 악성 코드 에 DDoS 공격 을 하 는 행위 가 포함 되 어 있 음 을 확인 할 수 있 다 .