KR101460091B1 - 보안 폴더의 아이콘 변경 장치 및 방법 - Google Patents

보안 폴더의 아이콘 변경 장치 및 방법 Download PDF

Info

Publication number
KR101460091B1
KR101460091B1 KR1020130064864A KR20130064864A KR101460091B1 KR 101460091 B1 KR101460091 B1 KR 101460091B1 KR 1020130064864 A KR1020130064864 A KR 1020130064864A KR 20130064864 A KR20130064864 A KR 20130064864A KR 101460091 B1 KR101460091 B1 KR 101460091B1
Authority
KR
South Korea
Prior art keywords
desktop
file
ini
ini file
folder
Prior art date
Application number
KR1020130064864A
Other languages
English (en)
Inventor
이형주
김형석
Original Assignee
주식회사 파수닷컴
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 파수닷컴 filed Critical 주식회사 파수닷컴
Priority to KR1020130064864A priority Critical patent/KR101460091B1/ko
Priority to PCT/KR2013/010375 priority patent/WO2014196701A1/ko
Application granted granted Critical
Publication of KR101460091B1 publication Critical patent/KR101460091B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]

Abstract

보안 폴더의 아이콘 변경 장치가 개시된다. 저장부는 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 저장하고 관리한다. 식별부는 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더를 식별한다. 가상 desktop.ini 데이터 생성부는 템플릿 파일을 복사하거나 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 파일 버퍼를 생성한다. 핸들링부는 필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) 중 어느 하나의 요청이 오면 내부 데이터 버퍼의 정보를 이용해 가상화 대상 여부를 파악하여 처리한다. 데이터 플러싱부는 가상 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 쓰기 동작으로 수정된 내용이 desktop.ini 파일로 플러싱(flushing)된다. 본 발명에 따르면, 프로그램 실행시에만 특정 폴더의 아이콘을 동적으로 변경할 수 있고, 임의의 desktop.ini 수정에 따른 폴더 아이콘의 변경을 차단할 수 있다. 나아가, 프로그램 동작/정지 상태와 상관없이 desktop.ini의 최종 상태를 보존할 수 있다.

Description

보안 폴더의 아이콘 변경 장치 및 방법{Apparatus and method for changing icon of secure folder}
본 발명은 보안 폴더의 아이콘 변경 장치 및 방법에 관한 것으로, 더욱 상세하게는, 보안 폴더의 아이콘을 다른 폴더와 식별 가능하도록 변경할 수 있는 보안 폴더의 아이콘 변경 장치 및 방법에 관한 것이다.
마이크로소프트 윈도우 운영 체제(이하, 'OS'라 함)의 폴더 아이콘을 변경하는 기존 방법으로는 IOH(Icon Overlay Handler)와 Desktop.ini를 이용한 폴더 아이콘 변경 방법이 있다.
먼저, IOH는 in-process Component Object Model(COM) 객체로, DLL로 구현된다. 외부에 IshellIconOverlayUdentifier 인터페이스가 노출되며, 이 인터페이스는 다음과 같은 세 개의 메소드를 제공해야 한다.
- IShellIconOverlayIdentifier::GetOverlayInfo
- IShellIconOverlayIdentifier::GetPriority
- IShellIconOverlayIdentifier::IsMemberOf.
IOH 기술은 기존의 파일/폴더의 아이콘 위에 별도의 아이콘을 겹쳐서 그릴 수 있는 기능을 제공한다. 겹쳐지는 아이콘의 투명도를 조절하여, 완전히 다른 아이콘을 덮어 씌우거나, 혹은 기존 아이콘에 부가적인 이미지를 추가할 수 있다. 그러나, IOH 기술은 하나의 파일/폴더에 여러 개의 IOH가 적용되어야 하는 경우 레이스(race) 조건이 발생하여 임의의 하나의 아이콘만 적용된다. 하나의 IOH 객체는 하나의 아이콘만을 설정가능하므로 여러 개의 아이콘을 지원해야 하는 경우 여러 개의 IOH 객체를 지원해야 한다. OS에서 지원하는 IOH의 최대 개수는 15개로 제한되며, OS에서 기본으로 사용하는 IOH를 제외하면 사용 가능한 최대 IOH 개수는 13개가 된다.
다음으로, Desktop.ini는 폴더의 아이콘 지정, 삭제 알림 표시, 폴더 툴팁 지정 등에 사용 가능한 설정 파일로, 'system' 및 'hidden' 속성을 가진다. Desktop.ini에 폴더 표시시 표시될 아이콘을 지정함으로써 아이콘을 변경할 수 있다. 여러 개의 프로그램 또는 사용자가 폴더 아이콘을 지정하는 경우, 마지막 수정 정보만 반영된다. 즉, 여러 개의 아이콘을 지정할 수 없는 단점이 있다.
한국특허공개공보 제10-2008-7005814호(알림 영역에서의 네트워크 연결 및 무선 상태)에는 서로 다른 유형/상태의 연결 및 서로 다른 유형의 미디어 접속을 디스플레이하기 위해 아이콘의 서로 다른 이미지를 표현하는 것을 비롯하여, 하나의 알림 영역 아이콘을 통해 네트워크 연결 정보가 전달될 수 있는 기술이 개시되어 있다. 한국특허공개공보 제10-2010-0003584호(휴대 단말기 및 그 동작 제어방법)에는 디스플레이부에 근거리 무선통신이 가능한 단말기에 대응하는 적어도 하나의 아이콘을 표시하고 표시된 적어도 하나의 아이콘 중 어느 하나를 선택하면 선택된 아이콘에 대응하는 단말기와 페어링을 수행하여, 페어링이 완료된 단말기의 성능에 따라 선택된 아이콘의 형태를 변경하여 표시하는 방법이 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는, 프로그램 실행시에만 특정 폴더의 아이콘을 동적으로 변경할 수 있고, 임의의 desktop.ini 수정에 따른 폴더 아이콘의 변경을 차단할 수 있는 보안 폴더의 아이콘 변경 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 프로그램 실행시에만 특정 폴더의 아이콘을 동적으로 변경할 수 있고, 임의의 desktop.ini 수정에 따른 폴더 아이콘의 변경을 차단할 수 있는 보안 폴더의 아이콘 변경 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한 본 발명에 따른 보안 폴더의 아이콘 변경 장치는, 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 저장하고 관리하는 저장부; 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더를 식별하는 식별부; 템플릿 파일을 복사하거나 상기 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 파일 버퍼를 생성하는 가상 desktop.ini 데이터 생성부; 필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) 중 어느 하나의 요청이 오면 내부 데이터 버퍼의 정보를 이용해 가상화 대상 여부를 파악하여 처리하는 핸들링부; 및 상기 가상 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 상기 desktop.ini 파일로 플러싱(flushing)되는 데이터 플러싱부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 보안 폴더의 아이콘 변경 장치는, 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 동적 자료 구조로 저장하고 관리하는 저장부; 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더에 대해 제어 대상 여부를 식별하는 식별부; 상기 식별부에 의해 상기 대상 프로세스 및 상기 접근 폴더가 제어 대상으로 확인되면, 소정의 방법을 통해 가상 데이터 버퍼를 생성하는 가상 desktop.ini 파일 생성부; 및 가상 desktop.ini 파일에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 기존 desktop.ini 파일로 플러싱(flushing)되는 데이터 플러싱부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 보안 폴더의 아이콘 변경 방법은, 보안 폴더의 아이콘 변경 장치에 의해 수행되는 아이콘 변경 방법에 있어서, (a) 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더를 식별하는 단계; (b) 템플릿 파일을 복사하거나 상기 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 파일 버퍼를 생성하는 단계; (c) 필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) 중 어느 하나의 요청이 오면 내부 데이터 버퍼의 정보를 이용해 가상화 대상 여부를 파악하여 처리하는 단계; 및 (d) 상기 가상 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 상기 desktop.ini 파일로 플러싱(flushing)되는 단계;를 갖는다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 보안 폴더의 아이콘 변경 방법은, (a) 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더에 대해 제어 대상 여부를 식별하는 단계; (b) 상기 (a) 단계에 의해 상기 대상 프로세스 및 상기 접근 폴더가 제어 대상으로 확인되면, 소정의 방법을 통해 가상 desktop.ini 파일을 생성하는 단계; 및 (c) 상기 가상 desktop.ini 파일에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 기존 desktop.ini 파일로 플러싱(flushing)되는 단계;를 갖는다.
상기의 다른 기술적 과제를 달성하기 위한 본 발명에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법 중 어느 하나를 컴퓨터에서 실행시키기 위한 프로그램을 기록한다.
본 발명에 따른 보안 폴더의 아이콘 변경 장치 및 방법에 의하면, 프로그램 실행시에만 특정 폴더의 아이콘을 동적으로 변경할 수 있고, 임의의 desktop.ini 수정에 따른 폴더 아이콘의 변경을 차단할 수 있다. 나아가, 프로그램 동작/정지 상태와 상관없이 desktop.ini의 최종 상태를 보존할 수 있다.
도 1은 종래 아이콘 변경에 대한 기본 구조를 도시한 도면,
도 2는 본 발명에 따른 보안 폴더의 아이콘 변경 방법이 구현되는 파일 시스템 필터(file system filter) 기반의 파일 우회 알고리즘을 도시한 도면,
도 3은 본 발명의 일실시예에 따른 보안 폴더의 아이콘 변경 장치의 구성을 도시한 블록도,
도 4는 본 발명의 일실시예에 따른 데이터 식별 정보를 동적 자료 구조로 저장한 모습을 도시한 도면,
도 5는 본 발명의 일실시예에 따른 desktop.ini 파일에 접근하는 프로세스에 대해 식별 정보를 생성하는 과정을 도시한 도면,
도 6은 본 발명의 일실시예에 따른 가상 데이터 버퍼 생성하는 과정을 도시한 도면,
도 7은 본 발명의 일실시예에 따른 desktop.ini 파일에 대한 읽기/쓰기/파일 크기와 관련된 API 제어 과정을 도시한 도면,
도 8은 본 발명의 일실시예에 따른 close file I/O 요청이 발생하고 데이터 테이블에 저장된 식별 정보와 동일할 경우 원래 desktop.ini 파일로 저장하는 과정을 도시한 도면,
도 9는 본 발명의 다른 실시예에 따른 보안 폴더의 아이콘 변경 장치의 구성을 도시한 블록도,
도 10은 본 발명의 다른 실시예에 따른 데이터 식별 정보를 동적 자료 구조로 저장한 모습을 도시한 도면,
도 11은 본 발명의 다른 실시예에 따른 desktop.ini 파일에 접근하는 프로세스에 대해 식별 정보를 생성하는 과정을 도시한 도면,
도 12는 본 발명의 다른 실시예에 따른 가상 데이터 버퍼 생성하는 과정을 도시한 도면, 그리고,
도 13은 본 발명의 다른 실시예에 따른 close file I/O 요청이 발생하거나 프로세스가 종료할 때 데이터 테이블에 저장된 식별 정보와 동일할 경우 원래 desktop.ini 파일로 저장하는 과정을 도시한 도면이다.
이하에서 첨부의 도면들을 참조하여 본 발명에 따른 보안 폴더의 아이콘 변경 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
앞서 살펴본 폴더의 아이콘을 지정하는 기술인 기존 IOH 또는 Desktop.ini 기술 모두 하나의 폴더에 대해 중복 아이콘을 지정할 수 없으며, 특히 IOH의 경우 어떤 아이콘이 표시될지 예측하기 어려운 단점을 가지고 있다. 따라서 본 발명에 따른 보안 폴더의 아이콘 변경 장치 및 방법은 도 2에 도시된 바와 같이 파일 시스템 필터(file system filter) 기술을 기반으로 사용자 레벨(user level)의 어플리케이션에서 가상의 desktop.ini 데이터를 처리할 수 있는 2가지 방법을 제안한다.
종래 아이콘 변경에 대한 기본 구조를 도시한 도 1을 참조하면, 탐색기는 폴더를 화면에 표시할 때 폴더 내 desktop.ini 파일이 존재하는지 확인하고, 해당 파일이 존재하는 경우 파일 내의 정보를 확인하여 아이콘 정보를 불러와 화면에 표시하게 된다.
도 3은 본 발명의 일실시예에 따른 보안 폴더의 아이콘 변경 장치(100)의 구성을 도시한 블록도이다. 도 3을 참조하면, 본 발명에 따른 보안 폴더의 아이콘 변경 장치(100)는 저장부(110), 식별부(120), 가상 desktop.ini 데이터 생성부(130), 핸들링부(140) 및 데이터 플러싱부(150)를 포함한다.
저장부(110)는 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 동적 자료 구조로 저장하고 관리한다. 즉, 파일 시스템 필터(file system filter)는 제어 정보를 도 4에 도시된 바와 같이 동적 자료 구조로 저장/관리한다.
식별부(120)는 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더가 제어 대상인지 식별한다. 이러한 과정을 거쳐 특정 프로세스(또는 전체 프로세스)에 한해 필터링이 필요한 desktop.ini 파일 핸들(handle)을 내부 핸들 테이블(handle table)에 저장한다. 여기서, 제어 대상은 desktop.ini 파일에 접근한 프로세스(예를 들어, 탐색기, 오피스 등)를 식별하여 desktop.ini를 가상화할지 여부를 판단한다. 또한, 식별 방법은 프로세스의 경우 대상 프로세스의 이름으로 식별하며, 파일의 경우 파일 이름으로 식별하게 된다. 특히, 제어가 필요한 프로세스인지 여부는 해당 프로세스가 desktop.ini를 열어 폴더 아이콘을 표시할 용도로 접근할 경우에 해당하면 제어 대상 프로세스로 판단하게 된다. 즉, explorer.exe에서 desktop.ini를 접근하는 경우 제어 대상이 되지만, explorer.exe에서 abc.docx를 접근하는 경우 desktop.ini를 접근하는 것이 아니기 때문에 제어 대상이 되지 않는다. 나아가, service.exe.에서 desktop.ini를 접근하는 경우는 제어가 불필요한 프로세스이기 때문에 제어 대상이 되지 않는다.
도 5를 참조하면, desktop.ini 파일에 접근하는 프로세스에 대해 식별 정보를 생성하는 과정을 볼 수 있다. 임의의 유저 레벨 프로세스에서 desktop.ini 파일에 대한 생성 또는 열기 I/O(Input/Output) 요청이 입력되면, 먼저 파일 시스템(file system)에서 I/O(Input/Output) 요청을 처리한다. 파일 시스템(file system)에서 처리한 I/O(Input/Output) 요청이 성공한 경우, 파일 시스템 필터(file system filter)는 발생한 생성 또는 열기 I/O(Input/Output) 요청에 대해 제어 대상 여부를 식별한다. 즉, 호출한 대상 프로세스가 제어 대상 프로세스 목록에 포함되어 있는지 여부, 생성 또는 열기 시도한 파일이 desktop.ini 파일이 맞는지 여부, 또는 생성 또는 열기 시도한 폴더가 가상화 대상인지 여부를 식별하게 된다. 여기서, 가상화 대상이라 가상화 시킬 대상을 말하는 것으로 폴더의 아이콘을 변경할 대상을 의미한다. 그 결과, 제어 대상으로 확인되면, 내부 데이터 테이블(data table)에 새로운 데이터 식별 정보를 생성하게 된다. 제어 대상 프로세스 목록은 파일 리스트 형태로 미리 저장하며, 이때, 로컬 데이터베이스부에 따로 저장할 수 있으며, 파일 시스템 필터(file system filter) 프로그램이 시작되는 시점에 목록을 로드하게 된다. 또한, 생성 또는 열기 시도한 폴더가 가상화 대상인지 여부는 파일 경로(path)를 통해 식별하게 되는데, 예를 들어, 가상화 대상 폴더가 C:\securefolder일 경우 C:\securefolder\desktop.ini를 접근하면 가상화 대상이 되지만, C:\normalfolder\desktop.ini에 접근하면 가상화 대상이 아니다.
가상 desktop.ini 데이터 생성부(130)는 템플릿 파일을 복사하거나 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 데이터를 생성한다. 구체적으로, 가상 desktop.ini 데이터는 프로세스 단위로 생성되거나, 또는 모든 프로세스에 동일하게 적용될 경우 단일 버퍼를 사용하며, 데이터 식별 정보와 연결된다. 즉, 도 6을 참조하면, 가상 desktop.ini 데이터 생성은 미리 작성된 템플릿(template)에 경로(path)와 같은 동적 변수를 할당하여 생성하거나, 기존에 존재하는 desktop.ini 파일의 정보를 기반으로 아이콘 식별에 필요한 정보만을 교체하여 저장하는 두 가지 방식으로 생성할 수 있다.
핸들링부(140)는 필터링 대상 핸들에 대해 읽기(read)나 쓰기(write), 파일 크기(file size) 조회나 파일 크기 변경 처리 요청이 오는 경우, 실제 파일 시스템(file system) 정보가 아닌 내부 데이터 버퍼에 대해 기능을 처리하고 실제 파일 시스템(file system)으로 정보를 전달하거나 수신하지 않는다. 필터링 대상 핸들이 아닌 경우 파일 시스템 필터(file system filter)에서는 작업을 하지 않고, 파일 시스템(file system)으로 처리를 넘긴다.
도 7은 desktop.ini 파일에 대한 읽기/쓰기/파일 크기와 관련된 API 제어 과정을 도시하고 있다. 도 7을 참조하면, 읽기/쓰기/파일 크기 관련 I/O 요청이 입력되면, 인자로 전달된 파일의 핸들(handle)이 내부 데이터 테이블(data table)에 존재하는지 확인한다. 이때, 데이터 테이블에 존재하지 않는 핸들은 가상화 대상이 아니므로, 원래대로 파일 시스템(file system)으로 전달하여 처리한다. 반면, 데이터 테이블에 존재하는 핸들은 가상화 대상이므로 파일 시스템 필터(file system filter)에서 I/O 처리를 대행하고, 파일 시스템(file system) 호출이 발생하지 않도록 한다. 이때, 파일 시스템 필터(file system filter)에서 처리되는 모든 결과는 데이터 테이블 내의 버퍼를 이용하며, 메모리 상(또는 임시 파일)에만 존재하게 된다.
데이터 플러싱부(150)는 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 쓰기 동작으로 수정된 내용은 원래 desktop.ini 파일로 플러싱 되거나 무시된다. 제어 대상 파일에서 쓰기 동작이 발생하면 쓰기를 할 버퍼를 데이터 테이블(data table)에 저장한다. 따라서 상술한 버퍼는 가상화하는 미리 준비된 버퍼가 아닌 원래 원본의 버퍼이며, 제어 대상 파일이 close될 때 원본 데이터를 저장하기 위해 데이터 테이블(data table)에 저장해 둔다.
도 8은 close file I/O 요청이 발생하고 데이터 테이블에 저장된 식별 정보와 동일할 경우 원래 desktop.ini 파일로 저장하는 과정을 나타낸다. 도 8을 참조하면, 파일에 대한 해제 요청이 발생하는 경우, 인자로 전달된 파일의 핸들이 데이터 테이블에 존재하는지 확인한다. 데이터 테이블에 존재하지 않는 핸들은 가상화 대상이 아니므로, 원래대로 파일 시스템(file system)으로 전달한다. 반면, 데이터 테이블에 존재하는 핸들은 가상화 대상이므로 파일 시스템 필터(file system filter)에서 전처리를 마친 후, 파일 시스템(file system)으로 전달한다. 이때, 만일 내부 버퍼가 갱신되었고, 파일 시스템(file system)으로 변경된 desktop.ini 파일 정보가 플러싱 되도록 처리되었다면, 파일 시스템(file system)에 대한 쓰기 작업은 파일 시스템 필터(file system filter)에서 진행한다. 이 과정이 완료되면, 데이터 테이블에서 해당 핸들에 대한 정보를 제거한다.
즉, 데이터 플러싱부(150)는 desktop.ini 파일 버퍼가 변경된 경우 핸들(handle)이 닫힐 때 원본 파일인 desktop.ini 파일로 쓰기 동작을 실행하거나, 또는, 프로그램 종료시 desktop.ini 파일 버퍼의 수정이 발생하면 원본 파일인 desktop.ini 파일로 쓰기 동작을 실행한다.
도 9는 본 발명의 다른 실시예에 따른 보안 폴더의 아이콘 변경 장치(200)의 구성을 도시한 블록도이다. 도 9를 참조하면, 본 발명에 따른 보안 폴더의 아이콘 변경 장치(200)는 저장부(210), 식별부(220), 가상 desktop.ini 파일 생성부(230) 및 데이터 플러싱부(240)를 포함한다.
저장부(210)는 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 동적 자료 구조로 저장하고 관리한다. 즉, 파일 시스템 필터(file system filter)는 제어 정보를 도 10에 도시된 바와 같이 동적 자료 구조로 저장/관리한다.
식별부(220)는 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더가 제어 대상인지 식별한다. 이러한 과정을 거쳐 특정 프로세스(또는 전체 프로세스)에 한해 가상 desktop.ini 파일 정보를 제공할 수 있으며, 특정 폴더(또는 전체 폴더)에 대해서도 동일하다.
도 11을 참조하면, desktop.ini 파일에 접근하는 프로세스에 대해 식별 정보를 생성하는 과정을 볼 수 있다. 임의의 유저 레벨 프로세스에서 desktop.ini 파일에 대한 생성 또는 열기 I/O(Input/Output) 요청이 입력되면, 파일 시스템 필터(file system filter)는 발생한 생성 또는 열기 I/O(Input/Output) 요청에 대해 제어 대상 여부를 식별한다. 즉, 호출한 대상 프로세스가 제어 대상 프로세스 목록에 포함되어 있는지 여부, 생성 또는 열기 시도한 파일이 desktop.ini 파일이 맞는지 여부, 또는 생성 또는 열기 시도한 폴더가 가상화 대상인지 여부를 식별하게 된다. 그 결과, 제어 대상이 아닌 경우, 파일 시스템(file system)으로 호출을 그대로 넘겨준다. 반면, 제어 대상으로 확인되면, I/O(Input/Output) 인자 중 경로(path)를 다른 위치에 존재하는 desktop.ini 파일의 경로로 수정(reparse)한다. 이 과정에서 수정된 경로 상에 파일이 존재하지 않는 경우 새로운 desktop.ini 파일을 생성할 수 있다. 또한, 내부 데이터 테이블(data table)에 새로운 데이터 식별 정보를 생성하게 된다.
가상 desktop.ini 파일 생성부(230)는 소정의 방법을 통해 가상 데이터 버퍼를 생성한다. 가상 desktop.ini 파일은 프로세스 단위로 생성되거나, 도는 모든 프로세스에 동일하게 적용될 경우 단일 파일을 사용하며, 데이터 식별 정보와 연결된다. 구체적으로, 도 12를 참조하면, 가상 파일 생성 방법으로 3가지를 예로 들고 있다. 먼저, Windows API를 통해 새로운 위치에 desktop.ini 파일을 생성하거나, desktop.ini 템플릿(template)에 경로(path)와 같은 동적 정보를 입력하여 desktop.ini 파일을 생성하거나, 또는 제어 대상 폴더에 이미 존재하는 desktop.ini 파일 내용 중 폴더 아이콘 정보를 변경하여 저장함으로서 desktop.ini 파일을 생성할 수 있다.
데이터 플러싱부(150)는 가상 desktop.ini 파일에 대한 쓰기 동작이 이루어지는 경우, 쓰기 동작으로 수정된 내용은 원래 desktop.ini 파일로 플러싱 되거나 무시된다. 도 13은 close file I/O 요청이 발생하거나 프로세스가 종료할 때 데이터 테이블에 저장된 식별 정보와 동일할 경우 원래 desktop.ini 파일로 저장하는 과정을 나타낸다.
도 13을 참조하면, 파일에 대한 해제 요청이 발생하는 경우, 인자로 전달된 파일의 핸들이 데이터 테이블에 존재하는지 확인한다. 데이터 테이블에 존재하지 않는 핸들은 가상화 대상이 아니므로, 원래대로 파일 시스템(file system)으로 전달한다. 반면, 데이터 테이블에 존재하는 핸들은 가상화 대상이므로 파일 시스템 필터(file system filter)에서 전처리를 마친 후, 파일 시스템(file system)으로 전달한다. 이때, 만일 가상의 desktop.ini가 갱신되었고, 파일 시스템(file system)으로 변경된 desktop.ini 파일 정보가 플러싱 되도록 처리되었다면, 가상의 desktop.ini 파일을 실제 desktop.ini 파일로 덮어쓰기를 실행한다. 이 과정이 완료되면, 데이터 테이블에서 해당 핸들에 대한 정보를 제거한다.
즉, 데이터 플러싱부(150)는 desktop.ini 파일 버퍼가 변경된 경우 핸들(handle)이 닫힐 때 원본 파일인 desktop.ini 파일로 쓰기 동작을 실행하거나, 또는, 프로그램 종료시 desktop.ini 파일 버퍼의 수정이 발생하면 원본 파일인 desktop.ini 파일로 쓰기 동작을 실행한다.
따라서 본 발명에 따른 보안 폴더의 아이콘 변경 방법은 프로그램 실행시에만 특정 폴더의 아이콘을 동적으로 변경할 수 있고, 임의의 desktop.ini 파일 수정에 따른 폴더 아이콘의 변경을 차단할 수 있다. 나아가, 프로그램의 동작 또는 정지 상태와 상관없이 desktop.ini 파일의 최종 상태를 보존할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 유무선 통신망으로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
100, 200 : 보안 폴더의 아이콘 변경 장치
110, 210 : 저장부
120, 220 : 식별부
130 : 가상 desktop.ini 데이터 생성부
230 : 가상 desktop.ini 파일 생성부
140 : 핸들링부
150, 240 : 데이터 플러싱부

Claims (17)

  1. 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 저장하고 관리하는 저장부;
    파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더를 식별하는 식별부;
    템플릿 파일을 복사하거나 상기 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 파일 버퍼를 생성하는 가상 desktop.ini 데이터 생성부;
    필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) 중 어느 하나의 요청이 오면 내부 데이터 버퍼의 정보를 이용해 가상화 대상 여부를 파악하여 처리하는 핸들링부; 및
    상기 가상 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 상기 desktop.ini 파일로 플러싱(flushing)되는 데이터 플러싱부;를 포함하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  2. 제 1항에 있어서,
    상기 식별부는,
    임의의 유저 레벨 프로세스에서 상기 desktop.ini 파일에 대한 생성 또는 열기 I/O(Input/Output) 요청이 입력되면, 상기 파일 시스템(file system)에서 상기 I/O(Input/Output) 요청을 처리하고, 상기 파일 시스템 필터(file system filter)는 상기 생성 또는 열기 I/O(Input/Output) 요청에 대해 제어 대상 여부를 식별하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  3. 제 2항에 있어서,
    상기 제어 대상 여부를 식별하는 방법은 호출한 대상 프로세스가 제어 대상 프로세스 목록에 포함되어 있는지 여부, 상기 생성 또는 열기 시도한 파일이 desktop.ini 파일인지 여부 또는 상기 생성 또는 열기 시도한 폴더가 가상화 대상인지 여부 중 적어도 어느 하나를 포함하며,
    상기 생성 또는 열기 I/O(Input/Output) 요청이 제어 대상이면, 상기 식별부는 상기 대상 프로세스에 대해 필터링이 필요한 desktop.ini 파일 핸들을 내부 데이터 테이블(data table)에 저장하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  4. 제 1항에 있어서,
    상기 가상 desktop.ini 데이터 생성부는 상기 템플릿에 동적 변수를 할당하여 데이터를 생성하거나 상기 desktop.ini 파일 정보를 기반으로 상기 아이콘 식별에 필요한 정보를 교체하여 저장함으로써 데이터를 생성하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  5. 제 1항에 있어서,
    상기 핸들링부는 상기 필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) I/O(Input/Output) 요청이 입력되면 상기 파일의 핸들(handle)이 데이터 테이블(data table)에 존재하는지 확인하여,
    상기 핸들이 상기 데이터 테이블에 존재하지 않으면 상기 I/O(Input/Output) 요청은 상기 파일 시스템으로 전달하고, 상기 핸들이 상기 데이터 테이블에 존재하면 상기 파일 시스템 필터에서 상기 I/O(Input/Output) 요청을 처리하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  6. 제 1항에 있어서,
    상기 데이터 플러싱부는 상기 desktop.ini 파일 버퍼가 변경된 경우 상기 핸들(handle)이 닫힐 때 원본 파일인 상기 desktop.ini 파일로 쓰기 동작을 실행하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  7. 제 1항에 있어서,
    상기 데이터 플러싱부는 프로그램 종료시 상기 desktop.ini 파일 버퍼의 수정이 발생하면 원본 파일인 상기 desktop.ini 파일로 쓰기 동작을 실행하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  8. 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 동적 자료 구조로 저장하고 관리하는 저장부;
    파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더에 대해 제어 대상 여부를 식별하는 식별부;
    상기 식별부에 의해 상기 대상 프로세스 및 상기 접근 폴더가 제어 대상으로 확인되면, 소정의 방법을 통해 가상 desktop.ini 파일을 생성하는 가상 desktop.ini 파일 생성부; 및
    가상 desktop.ini 파일에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 기존 desktop.ini 파일로 플러싱(flushing)되는 데이터 플러싱부;를 포함하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  9. 제 8항에 있어서,
    상기 식별부는,
    임의의 유저 레벨 프로세스에서 상기 desktop.ini 파일에 대한 생성 또는 열기 I/O(Input/Output) 요청이 입력되면, 상기 파일 시스템 필터(file system filter)는 상기 생성 또는 열기 I/O(Input/Output) 요청에 대해 제어 대상 여부를 식별하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  10. 제 9항에 있어서,
    상기 제어 대상 여부를 식별하는 방법은 호출한 대상 프로세스가 제어 대상 프로세스 목록에 포함되어 있는지 여부, 상기 생성 또는 열기 시도한 파일이 desktop.ini 파일인지 여부 또는 상기 생성 또는 열기 시도한 폴더가 가상화 대상인지 여부 중 적어도 어느 하나를 포함하며,
    상기 생성 또는 열기 I/O(Input/Output) 요청이 제어 대상이면, 상기 I/O(Input/Output) 인자 중 경로(path)를 다른 위치에 존재하는 desktop.ini 경로로 수정하고, 수정된 경로 상에 상기 desktop.ini 파일이 존재하지 않으면 새로운 desktop.ini 파일을 생성하고, 상기 새로운 desktop.ini 파일 핸들을 내부 데이터 테이블(data table)에 저장하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  11. 제 8항에 있어서,
    상기 소정의 방법은,
    Windows API를 통해 새로운 위치에 desktop.ini 파일을 생성하거나, desktop.ini 템플릿(template)에 경로(path)와 같은 동적 정보를 입력하여 desktop.ini 파일을 생성하거나, 또는 제어 대상 폴더에 이미 존재하는 desktop.ini 파일 내용 중 폴더 아이콘 정보를 변경하여 저장함으로서 desktop.ini 파일을 생성하는 방법 중 어느 하나를 포함하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  12. 삭제
  13. 제 8항에 있어서,
    상기 데이터 플러싱부는 프로그램 종료시 상기 desktop.ini 파일 버퍼의 수정이 발생하면 원본 파일인 상기 desktop.ini 파일로 쓰기 동작을 실행하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 장치.
  14. 보안 폴더의 아이콘 변경 장치에 의해 수행되는 아이콘 변경 방법에 있어서,
    (a) 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더를 식별하는 단계;
    (b) 템플릿 파일을 복사하거나 상기 desktop.ini 파일의 머지(merge)를 통해 가상 desktop.ini 파일 버퍼를 생성하는 단계;
    (c) 필터링 대상 핸들에 대해 읽기(read)/쓰기(write)/파일크기조회(file size) 중 어느 하나의 요청이 오면 내부 데이터 버퍼의 정보를 이용해 가상화 대상 여부를 파악하여 처리하는 단계; 및
    (d) 상기 가상 desktop.ini 파일 버퍼에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 상기 desktop.ini 파일로 플러싱(flushing)되는 단계;를 포함하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 방법.
  15. 보안 폴더의 아이콘 변경 장치에 의해 수행되는 아이콘 변경 방법에 있어서,
    (a) 파일 시스템(file system) 내의 desktop.ini 파일에 대한 접근이 이루어지면 대상 프로세스 및 접근 폴더에 대해 제어 대상 여부를 식별하는 단계;
    (b) 상기 (a) 단계에 의해 상기 대상 프로세스 및 상기 접근 폴더가 제어 대상으로 확인되면, 소정의 방법을 통해 가상 desktop.ini 파일을 생성하는 단계; 및
    (c) 상기 가상 desktop.ini 파일에 대한 쓰기 동작이 이루어지는 경우, 상기 쓰기 동작으로 수정된 내용이 기존 desktop.ini 파일로 플러싱(flushing)되는 단계;를 포함하는 것을 특징으로 하는 보안 폴더의 아이콘 변경 방법.
  16. 제 14항 또는 제 15항에 있어서,
    (e) 파일 시스템 필터(file system filter)에 의해 제어 정보인 데이터 식별 정보를 저장하는 단계;를 더 포함하고,
    상기 (e)단계는 상기 (a)단계 이전에 수행되는 것을 특징으로 하는 보안 폴더의 아이콘 변경 방법.
  17. 제 14항 또는 제 15항에 기재된 보안 폴더의 아이콘 변경 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020130064864A 2013-06-05 2013-06-05 보안 폴더의 아이콘 변경 장치 및 방법 KR101460091B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130064864A KR101460091B1 (ko) 2013-06-05 2013-06-05 보안 폴더의 아이콘 변경 장치 및 방법
PCT/KR2013/010375 WO2014196701A1 (ko) 2013-06-05 2013-11-15 보안 폴더의 아이콘 변경 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130064864A KR101460091B1 (ko) 2013-06-05 2013-06-05 보안 폴더의 아이콘 변경 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101460091B1 true KR101460091B1 (ko) 2014-11-10

Family

ID=52008315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130064864A KR101460091B1 (ko) 2013-06-05 2013-06-05 보안 폴더의 아이콘 변경 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101460091B1 (ko)
WO (1) WO2014196701A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220018186A (ko) * 2020-08-06 2022-02-15 주식회사 파수 가상 파일 관리 방법, 장치, 컴퓨터 프로그램 및 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356915B1 (en) * 1999-02-22 2002-03-12 Starbase Corp. Installable file system having virtual file system drive, virtual device driver, and virtual disks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100648227B1 (ko) * 1998-10-16 2007-03-02 삼성전자주식회사 컴퓨터 사용자 인터페이스
JP2002215286A (ja) * 2001-01-18 2002-07-31 Sharp Corp アイコン表示制御装置
KR101662660B1 (ko) * 2010-09-30 2016-10-06 삼성전자주식회사 서버 및 그 서비스 제공 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356915B1 (en) * 1999-02-22 2002-03-12 Starbase Corp. Installable file system having virtual file system drive, virtual device driver, and virtual disks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220018186A (ko) * 2020-08-06 2022-02-15 주식회사 파수 가상 파일 관리 방법, 장치, 컴퓨터 프로그램 및 기록 매체
KR102438329B1 (ko) 2020-08-06 2022-08-31 주식회사 파수 가상 파일 관리 방법, 장치, 컴퓨터 프로그램 및 기록 매체
US11625365B2 (en) 2020-08-06 2023-04-11 Fasoo Co., Ltd Method for managing virtual file, apparatus for the same, computer program for the same, and recording medium storing computer program thereof

Also Published As

Publication number Publication date
WO2014196701A1 (ko) 2014-12-11

Similar Documents

Publication Publication Date Title
JP4931255B2 (ja) 仮想化されたファイル・システム
US10866813B2 (en) Linking virtualized application namespaces at runtime
US7188127B2 (en) Method, system, and program for processing a file request
US9246992B2 (en) Virtual desktop implementation method, apparatus, and system
US10664592B2 (en) Method and system to securely run applications using containers
EP2659421B1 (en) Application execution in a restricted application execution environment
US8473941B2 (en) Dynamic file system restriction for portable storage devices
US10140461B2 (en) Reducing resource consumption associated with storage and operation of containers
US9424058B1 (en) File deduplication and scan reduction in a virtualization environment
EP1571548A2 (en) Hosted application as a designer in an integrated development environment
US10417179B2 (en) Method for managing files and apparatus using the same
EP2339466A2 (en) Data control device, data control method, and program
CN107463369A (zh) 一种虚拟桌面的接入设备控制方法与装置
US20170132022A1 (en) File-processing device for executing a pre-processed file, and recording medium for executing a related file-processing method in a computer
US7797727B1 (en) Launching an application in a restricted user account
KR100898968B1 (ko) 응용프로그램에서 사용되는 임시 파일의 자동 완전 삭제방법
CN103617039B (zh) 一种访问用户空间文件系统的方法及装置
KR20100025116A (ko) 완전삭제를 이용한 자동적인 문서유출 방지 시스템
US20190065223A1 (en) Disabling Just-In-Time Translation For Application Functions
KR101460091B1 (ko) 보안 폴더의 아이콘 변경 장치 및 방법
US20190286814A1 (en) Protecting stack memory in computer systems
JP2008152519A (ja) コンピュータ及びその基本ソフトウェア
CN102868690B (zh) Web服务隔离检测的方法及系统
KR101772129B1 (ko) 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템
CN105844151B (zh) 一种文件存储保护实现方法和系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 5