1 |
1
응용 프로그램의 블록 입출력 정보(block I/O data)를 수집하는 시스템에 있어서,상기 응용 프로그램의 실행에 따라, 사용자 공간에서 시스템 호출 후킹 또는 라이브러리 함수 후킹에 따른 상기 응용 프로그램의 파일 입출력 정보를 수집하는 수집부; 및상기 파일 입출력 정보를 기반으로 블록(block) 정보를 획득하여 블록 입출력 정보를 생성하는 생성부를 포함하는 블록 입출력 정보의 수집 시스템
|
2 |
2
제1항에 있어서,상기 수집부는시스템 호출 함수(ptrace)를 이용하여 입출력 관련 시스템에 대한 호출 요청에 따른 시스템 호출을 후킹하고, 상기 시스템 호출 함수를 이용하여 획득되는 범용 레지스터 정보 내 포함된 상기 입출력 관련 시스템에 대한 호출 요청에 따른 상기 파일 입출력 정보를 수집하는 시스템 수집부; 및라이브러리 프리로딩(Library preloading) 기법을 이용하여 입출력 관련 라이브러리 함수를 후킹하고, 상기 라이브러리 프리로딩 기법을 이용하여 획득되는 래퍼(wrapper) 함수로부터 상기 파일 입출력 정보를 수집하는 라이브러리 수집부를 포함하는 블록 입출력 정보의 수집 시스템
|
3 |
3
제2항에 있어서,상기 시스템 수집부는상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 호출을 요청하는 경우, 상기 시스템 호출 함수를 이용하여 상기 범용 레지스터 정보를 획득하며, 상기 범용 레지스터 정보에 저장된 시스템 요청 호출의 파일 경로, 오프셋 및 요청 크기를 포함하는 상기 파일 입출력 정보를 수집하는 것을 특징으로 하는 블록 입출력 정보의 수집 시스템
|
4 |
4
제3항에 있어서,상기 시스템 수집부는상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 호출을 요청하는 경우, 상기 응용 프로그램의 동작을 멈추고, 해당 시점에서의 상기 범용 레지스터 정보를 획득하여 시스템 호출의 인자 정보 및 반환값을 수집하며, 상기 시스템 호출의 인자 정보 및 반환값을 기반으로 상기 파일 입출력 정보를 수집하는 블록 입출력 정보의 수집 시스템
|
5 |
5
제2항에 있어서,상기 라이브러리 수집부는상기 라이브러리 프리로딩 기법을 이용하여 상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 호출을 요청하는 경우, 상기 입출력 관련 라이브러리 함수를 후킹하여 상기 래퍼 함수를 구현하고, 상기 래퍼 함수의 인자 정보로 인해 수집되는 파일 경로 및 오프셋, 상기 래퍼 함수의 내부에서 실제 표준 라이브러리 함수로부터 호출되는 요청 크기(반환값)를 포함하는 상기 파일 입출력 정보를 수집하는 것을 특징으로 하는 블록 입출력 정보의 수집 시스템
|
6 |
6
제5항에 있어서,상기 라이브러리 수집부는상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 read() 및 fread()의 상기 입출력 관련 라이브러리 함수를 호출하는 경우, 상기 래퍼 함수를 이용하여 상기 인자 정보를 획득하고, 상기 래퍼 함수 내부에서 상기 실제 표준 라이브러리의 read() 함수를 호출하여 상기 반환값을 수집하며, 상기 인자 정보 및 상기 반환값을 기반으로 상기 파일 입출력 정보를 수집하는 블록 입출력 정보의 수집 시스템
|
7 |
7
제1항에 있어서,상기 생성부는상기 파일 입출력 정보를 기반으로 API(Application Program Interface; 응용 프로그램 프로그래밍 인터페이스)를 이용하여 LBA(Logical Block Address; 논리적 블록주소 지정)의 상기 블록 정보를 획득하며, 상기 블록 정보로부터 상기 블록 입출력 정보를 로깅하는 블록 입출력 정보의 수집 시스템
|
8 |
8
제7항에 있어서,상기 생성부는fiemap_ioctl을 포함하는 상기 API를 이용하여 상기 LBA와 같은 상기 블록 정보를 획득하는 것을 특징으로 하는 블록 입출력 정보의 수집 시스템
|
9 |
9
응용 프로그램의 블록 입출력 정보(block I/O data)를 수집하는 시스템의 동작 방법에 있어서,상기 응용 프로그램의 실행에 따라, 사용자 공간에서 시스템 호출 후킹 또는 라이브러리 함수 후킹에 따른 상기 응용 프로그램의 파일 입출력 정보를 수집하는 단계; 및상기 파일 입출력 정보를 기반으로 블록(block) 정보를 획득하여 블록 입출력 정보를 생성하는 단계를 포함하는 블록 입출력 정보의 수집 방법
|
10 |
10
제9항에 있어서,상기 파일 입출력 정보를 수집하는 단계는시스템 호출 함수(ptrace)를 이용하여 입출력 관련 시스템에 대한 호출 요청에 따른 시스템 호출을 후킹하고, 상기 시스템 호출 함수를 이용하여 획득되는 범용 레지스터 정보 내 포함된 상기 입출력 관련 시스템에 대한 호출 요청에 따른 상기 파일 입출력 정보를 수집하는 시스템 단계를 포함하는 블록 입출력 정보의 수집 방법
|
11 |
11
제10항에 있어서,상기 입출력 관련 시스템에 대한 호출 요청에 따른 상기 파일 입출력 정보를 수집하는 시스템 단계는상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 호출을 요청하는 경우, 상기 시스템 호출 함수를 이용하여 상기 범용 레지스터 정보를 획득하며, 상기 범용 레지스터 정보에 저장된 시스템 요청 호출의 파일 경로, 오프셋 및 요청 크기를 포함하는 상기 파일 입출력 정보를 수집하는 것을 특징으로 하는 블록 입출력 정보의 수집 방법
|
12 |
12
제9항에 있어서,상기 파일 입출력 정보를 수집하는 단계는라이브러리 프리로딩(Library preloading) 기법을 이용하여 입출력 관련 라이브러리 함수를 후킹하고, 상기 라이브러리 프리로딩 기법을 이용하여 획득되는 래퍼(wrapper) 함수로부터 상기 파일 입출력 정보를 수집하는 단계를 포함하는 블록 입출력 정보의 수집 방법
|
13 |
13
제12항에 있어서,상기 래퍼(wrapper) 함수로부터 상기 파일 입출력 정보를 수집하는 단계는상기 라이브러리 프리로딩 기법을 이용하여 상기 응용 프로그램이 상기 입출력 관련 시스템에 대한 호출을 요청하는 경우, 상기 입출력 관련 라이브러리 함수를 후킹하여 상기 래퍼 함수를 구현하고, 상기 래퍼 함수의 인자 정보로 인해 수집되는 파일 경로 및 오프셋, 상기 래퍼 함수의 내부에서 실제 표준 라이브러리 함수로부터 호출되는 요청 크기(반환값)를 포함하는 상기 파일 입출력 정보를 수집하는 것을 특징으로 하는 블록 입출력 정보의 수집 방법
|
14 |
14
제9항에 있어서,상기 블록 입출력 정보를 생성하는 단계는상기 파일 입출력 정보를 기반으로 API(Application Program Interface; 응용 프로그램 프로그래밍 인터페이스)를 이용하여 LBA(Logical Block Address; 논리적 블록주소 지정)의 상기 블록 정보를 획득하며, 상기 블록 정보로부터 상기 블록 입출력 정보를 로깅하는 블록 입출력 정보의 수집 방법
|
15 |
15
제9항 내지 제14항 중 어느 한 항의 방법을 수행하기 위하여 컴퓨터로 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램
|