1 |
1
퍼징 대상 프로그램이 실행한 CPU 인스트럭션 정보를 추출하는 인스트럭션 추출부, 상기 CPU 인스트럭션 정보로부터, CPU가 실행한 실행 코드 정보를 생성하는 실행 코드 생성부, 상기 퍼징 대상 프로그램의 파일 및 메모리 중 적어도 어느 하나로부터, 기본 블록 정보를 생성하는 블록 정보 생성부, 그리고생성된 상기 실행 코드 정보 및 상기 기본 블록 정보를 기반으로, 퍼징용 실행 흐름 정보를 생성하는 퍼징용 실행 흐름 정보 생성부를 포함하는 퍼징용 실행 흐름 정보 추출 장치
|
2 |
2
제1항에 있어서, 상기 인스트럭션 추출부는, CPU 인스트럭션 정보 트레이스 하드웨어를 이용하여, 상기 퍼징 대상 프로그램이 실행한 상기 CPU 인스트럭션 정보를 추출하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
3 |
3
제2항에 있어서, 상기 인스트럭션 추출부는, 추출된 상기 CPU 인스트럭션 정보를 CPU 칩의 내부 메모리, 퍼징용 실행 흐름 정보 추출 장치의 메인 메모리 및 외부의 저장 장치 중 적어도 어느 하나에 저장하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
4 |
4
제3항에 있어서, 상기 실행 코드 생성부는, 상기 CPU 칩의 내부 메모리 및 상기 메인 메모리 중 적어도 어느 하나로부터 상기 CPU 인스트럭션 정보를 읽어와, 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
5 |
5
제2항에 있어서, 상기 실행 코드 생성부는, 추출된 상기 CPU 인스트럭션 정보를 릴레이 하드웨어로부터 읽어와, 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
6 |
6
제1항에 있어서, 상기 실행 코드 생성부는, 상기 CPU 인스트럭션 정보에 인스트럭션 주소가 포함되어 있는 경우, 상기 CPU 인스트럭션 정보에 포함된 시작 주소, 끝 주소 및 코드 블록의 크기 중 적어도 어느 하나를 기반으로 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
7 |
7
제1항에 있어서, 상기 실행 코드 생성부는, 상기 CPU 인스트럭션 정보에 분기 명령이 포함되어 있는 경우, 상기 CPU 인스트럭션 정보로부터 상기 분기 명령의 종류, 상기 분기 명령이 발생한 주소 및 분기 대상 주소 중 적어도 어느 하나를 포함하는 분기 명령 정보를 추출하고, 추출된 상기 분기 명령 정보를 기반으로, 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
8 |
8
제7항에 있어서, 상기 실행 코드 생성부는, 상기 CPU 인스트럭션 정보에 상기 분기 명령이 발생한 주소가 포함되어 있지 않은 경우, 상기 퍼징 대상 프로그램의 바이너리 파일 및 상기 퍼징 대상 프로그램의 코드가 로딩된 코드 메모리 중 적어도 어느 하나로부터 상기 분기 명령이 발생한 주소를 추출하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
9 |
9
제7항에 있어서, 상기 퍼징용 실행 흐름 정보 생성부는, 상기 CPU가 실행한 상기 퍼징 대상 프로그램의 상기 기본 블록 및 상기 기본 블록간 실행 순서 중 적어도 어느 하나를 포함하는 상기 퍼징용 실행 흐름 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
10 |
10
제1항에 있어서, 상기 블록 정보 생성부는, 상기 퍼징 대상 프로그램 및 상기 퍼징 대상 프로그램 실행 중의 메모리 중 적어도 어느 하나로부터, 기본 블록 리스트 및 기본 블록 간 플로우 그래프 중 적어도 어느 하나를 포함하는 상기 기본 블록 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
11 |
11
제1항에 있어서, 생성된 상기 퍼징용 실행 흐름 정보를 퍼징 알고리즘에 입력하여, 퍼징용 데이터를 생성하는 퍼징용 데이터 생성부를 더 포함하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 장치
|
12 |
12
퍼징용 실행 흐름 정보 추출 장치에 의해 수행되는 퍼징용 실행 흐름 정보 추출 방법에 있어서, 퍼징 대상 프로그램이 실행한 CPU 인스트럭션 정보를 추출하는 단계, 상기 CPU 인스트럭션 정보로부터, CPU가 실행한 실행 코드 정보를 생성하는 단계, 상기 퍼징 대상 프로그램의 파일 및 메모리 중 적어도 어느 하나로부터, 기본 블록 정보를 생성하는 단계, 그리고생성된 상기 실행 코드 정보 및 상기 기본 블록 정보를 기반으로, 퍼징용 실행 흐름 정보를 생성하는 단계를 포함하는 퍼징용 실행 흐름 정보 추출 방법
|
13 |
13
제12항에 있어서, 상기 CPU 인스트럭션 정보를 추출하는 단계는, CPU 인스트럭션 정보 트레이스 하드웨어를 이용하여, 상기 퍼징 대상 프로그램이 실행한 상기 CPU 인스트럭션 정보를 추출하는 단계, 그리고 추출된 상기 CPU 인스트럭션 정보를 CPU 칩의 내부 메모리, 퍼징용 실행 흐름 정보 추출 장치의 메인 메모리 및 외부의 저장 장치 중 적어도 어느 하나에 저장하는 단계를 포함하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
14 |
14
제12항에 있어서, 상기 CPU가 실행한 실행 코드 정보를 생성하는 단계는, 추출된 상기 CPU 인스트럭션 정보를 릴레이 하드웨어로부터 읽어와, 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
15 |
15
제12항에 있어서, 상기 CPU가 실행한 실행 코드 정보를 생성하는 단계는, 상기 CPU 인스트럭션 정보에 인스트럭션 주소가 포함되어 있는 경우, 상기 CPU 인스트럭션 정보에 포함된 시작 주소, 끝 주소 및 코드 블록의 크기 중 적어도 어느 하나를 기반으로 상기 실행 코드 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
16 |
16
제12항에 있어서, 상기 CPU가 실행한 실행 코드 정보를 생성하는 단계는, 상기 CPU 인스트럭션 정보에 분기 명령이 포함되어 있는 경우, 상기 CPU 인스트럭션 정보로부터 상기 분기 명령의 종류, 상기 분기 명령이 발생한 주소 및 분기 대상 주소 중 적어도 어느 하나를 포함하는 분기 명령 정보를 추출하는 단계, 그리고 추출된 상기 분기 명령 정보를 기반으로, 상기 실행 코드 정보를 생성하는 단계를 포함하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
17 |
17
제16항에 있어서, 상기 퍼징용 실행 흐름 정보를 생성하는 단계는, 상기 CPU가 실행한 상기 퍼징 대상 프로그램의 상기 기본 블록 및 상기 기본 블록간 실행 순서 중 적어도 어느 하나를 포함하는 상기 퍼징용 실행 흐름 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
18 |
18
제12항에 있어서, 상기 기본 블록 정보를 생성하는 단계는, 상기 퍼징 대상 프로그램 및 상기 퍼징 대상 프로그램 실행 중의 메모리 중 적어도 어느 하나로부터, 기본 블록 리스트 및 기본 블록 간 플로우 그래프 중 적어도 어느 하나를 포함하는 상기 기본 블록 정보를 생성하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
19 |
19
제12항에 있어서, 생성된 상기 퍼징용 실행 흐름 정보를 퍼징 알고리즘에 입력하여, 퍼징용 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 퍼징용 실행 흐름 정보 추출 방법
|
20 |
20
CPU가 실행한 실행 코드 정보를 생성하고, 퍼징 대상 프로그램의 파일/메모리로부터 기본 블록 정보를 생성하고, 퍼징 대상 프로그램의 상기 실행 코드 정보 및 상기 기본 블록 정보를 기반으로, 퍼징용 실행 흐름 정보를 생성하는 퍼징용 실행 흐름 정보 추출 장치, 상기 퍼징용 실행 흐름 정보 추출 장치로부터 수신한 상기 퍼징용 실행 흐름 정보를 퍼징 알고리즘에 입력하여 퍼징용 데이터를 생성하는 퍼징 데이터 생성 장치, 그리고 상기 퍼징 대상 프로그램의 상기 퍼징 데이터를 실행하고, 상기 퍼징 데이터의 실행에 따른 상기 퍼징 대상 프로그램의 취약점 정보를 출력하는 퍼징 수행 단말기를 포함하는 퍼징 수행 시스템
|