따라서 , 본 명세서 에서 예 로서 설명 된 CFI 집행 메커니즘 은 컴퓨팅 시스템 의 처리 하드웨어 및 운영 체제 아키텍처 와 밀접 하 게 통합 된다 . 결과 적 인 CFI 집행 메커니즘 은 높 은 정도 의 정밀도 , 효율 성 , 및 투명 성 에 대한 온라인 CFI 집행 의 기존 의 요구 들 을 동시 에 충족 한다 . 본 명세서 에 설명 된 CFI 집행 메커니즘 은 프로세서 하드웨어 에 의해 생성 된 프로세서 하드웨어 생성 프로세서 트레이스 패킷 들 ( 예 를 들 어 , 인텔 프로세서 트레이스 ( IPT ) 패킷 들 ) 을 검색 하 고 사용 한다 . 온라인 처리 환경 에서 , 프로세서 트레이스 패킷 들 이 검색 되 고 , 비 정상 적 / 예상 치 못한 제어 흐름 들 을 검출 하 기 위해 프로그램 코드 블록 들 사이 의 허용 된 / 예상 된 호출 들 의 사전 구성 된 관련 세트 를 포함 하 는 제어 흐름 그래프 ( CFG ) 와 비교 된다 . CFG 는 관심 있 는 프로그램 코드 의 동적 분석 , 예 를 들 어 퍼징 ) 에 의해 증강 되 는 정적 ( 오프라인 ) 분석 에 기초 하 여 오프라인 으로 생성 된다 . 그 후 , 온라인 환경 에서 , 프로세서 트레이스 패킷 들 과 사전 구성 된 CFG ( 이하 본 명세서 에서 상세히 설명 됨 ) 의 비교 에 기초 하 여 프로그램 컴퓨팅 블록 들 사이 의 비 정상 적 / 예상 치 못한 제어 흐름 의 검출 시 에 발생 하 는 손해 를 방지 하 기 위해 교정 동작 이 취해진다 . 본 명세서 에서 설명 되 는 CFI 집행 메커니즘 에서 의 정밀도 는 프로세서 에 의해 렌더링 되 는 모든 프로세서 트레이스 패킷 마다 를 모니터링 하 는 것 으로부터 발생 한다 . 프로세서 트레이스 생성 기능 성 이 프로세서 하드웨어 에서 구현 되 기 때문 에 , 프로세서 트레이스 레코드 들 의 렌더링 은 이것 이 관심 있 는 프로그램 의 런타임 동안 매우 낮 은 오버헤드 를 추가 한다는 점 에서 매우 효율 적 이 다 . 본 명세서 에 설명 된 CFI 집행 시스템 은 또한 투명 성 을 나타내 는데 , 그 이유 는 어떠 한 바이너리 계측 도 필요 하 지 않 고 , 시스템 은 프로그램 의 런타임 에서 프로세서 트레이스 레코드 들 을 렌더링 하 는 능력 을 갖 는 상품 하드웨어 프로세서 들 상 에 쉽 게 배치 될 수 있 기 때문 이 다 .