KR101462829B1 - 가상화 정보 가공장치 및 방법 - Google Patents

가상화 정보 가공장치 및 방법 Download PDF

Info

Publication number
KR101462829B1
KR101462829B1 KR1020140011220A KR20140011220A KR101462829B1 KR 101462829 B1 KR101462829 B1 KR 101462829B1 KR 1020140011220 A KR1020140011220 A KR 1020140011220A KR 20140011220 A KR20140011220 A KR 20140011220A KR 101462829 B1 KR101462829 B1 KR 101462829B1
Authority
KR
South Korea
Prior art keywords
virtualization
application program
information
api
dynamic library
Prior art date
Application number
KR1020140011220A
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 KR1020140011220A priority Critical patent/KR101462829B1/ko
Application granted granted Critical
Publication of KR101462829B1 publication Critical patent/KR101462829B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 가상화 정보 가공장치 및 방법에 관한 것이다. 개시된 가상화 정보 가공장치 및 방법은, 가상화 컴퓨터 환경에서의 가상화 정보 가공장치에 있어서, 가상화 정보 가공을 위한 동적 라이브러리를 응용프로그램에 삽입하는 동적 라이브러리 삽입모듈; 및 응용프로그램의 장치정보 질의 API호출을 전달받고, 시스템의 가상화 정보를 가공하여 결과값을 반환하는 가상화 정보 가공모듈을 포함하는 것을 특징으로 하는 가상화 정보 가공장치 및 그에 따른 방법을 제공한다. 본 발명에 의하면, 가상화 환경에서 일부 웹사이트나 어플리케이션이 가상화 환경에서 기능을 제한하더라도 가상화 환경을 PC 처럼 인식하게 할 수 있으며, 이로 인하여 종래 기술에 의한 가상화 환경의 제약을 해소하여 가상화 환경의 산업분야 확산을 촉진할 수 있다는 이점이 있다.

Description

가상화 정보 가공장치 및 방법{Apparatus and Method for Processing Information of Virtualized Computing Resources}
본 발명은 가상화 정보 가공장치 및 방법에 관한 것으로, 더욱 상세하게는 가상화 환경에서 응용프로그램의 호환성 문제를 해소하기 위한 가상화 정보 가공장치 및 이를 위한 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
가상화(Virtualization)란 물리적으로 다른 시스템을 논리적으로 통합하거나 반대로 하나의 시스템을 논리적으로 분할해 자원을 효율적으로 사용케 하는 기술을 말하며, 최근에는 서버나 PC에서도 이러한 기능이 절대적으로 요구되고 있다.
가상화의 종류에는 어플리케이션 가상화, 데스크탑 가상화, 서버 가상화, 스토리지 가상화, 네트워크 가상화 등으로 구분될 수 있다.
어플리케이션 가상화는 사용자의 로컬PC에 필요한 어플리케이션을 매번 설치하지 않고도 가상화를 통해 제공하는 기술이다.
데스크탑 가상화는 기존 데스크탑 수준의 성능을 가진 가상머신들을 중앙의 서버에 생성하고 관리자에 의해 사용자들에게 할당하여, 사용자는 데스크탑이나 다양한 모바일 기기를 이용해 할당 받은 계정으로 인증하고 로그인하면 언제 어디서든 인터넷용 가상화 PC 또는 업무용 가상화 PC를 자신만의 가상 데스크탑처럼 사용할 수 있는 기술을 말한다.
특히 보안이 중요한 금융권, 공공기관 등의 사업분야에서 업무나 인터넷 브라우징을 기존 PC 환경에서 어플리케이션 가상화나 데스크탑 가상화 환경으로 활발히 전환되고 있다. 그러나, 대법원 인터넷등기소나 인터넷 전자민원사이트 등의 일부 웹사이트나 어플리케이션은 보안의 목적으로 가상화 환경에서는 접속이나 기능을 제한하는 경우가 많아서, PC 환경을 대체하고자 하는 가상화 환경의 제약이 되고 있다.
이에, 본 발명에서는, 전술한 기술적 제약을 해소시킬 수 있는 가상화 정보 가공장치 및 방법을 제안하고자 한다.
한국공개특허 제10-2013-0127629, 2013년 11월 25일 공개(명칭:가상화 애플리케이션 제공 장치 및 그 방법)
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 전술한 목적을 달성하기 위한 본 발명의 일 양상은 가상화 환경에서 웹사이트나 어플리케이션이 가상화 환경을 PC 처럼 인식할 수 있도록 시스템 정보를 가공하여, 가상화 환경에서 웹사이트나 어플리케이션의 PC대비 호환성을 동일하게 유지할 수 있는 장치 및 방법을 제안한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
전술한 목적을 달성하기 위한 본 발명의 일 양상은, 가상화 컴퓨터 환경에서의 가상화 정보 가공장치에 있어서, 가상화 정보 가공을 위한 동적 라이브러리를 응용프로그램에 삽입하는 동적 라이브러리 삽입모듈; 및 응용프로그램의 장치정보 질의 API호출을 전달받고, 시스템의 가상화 정보를 가공하여 결과값을 반환하는 가상화 정보 가공모듈을 포함하는 것을 특징으로 하는 가상화 정보 가공장치를 제공한다.
본 발명의 다른 일 양상은, 가상화 컴퓨터 환경에서의 가상화 정보 가공방법에 있어서, 응용프로그램에 API 후킹 동적 라이브러리를 삽입하는 단계; 상기 삽입된 API 후킹 동적 라이브러리가 응용프로그램의 구동에 의해 특정 API의 호출이 발생되는지 감시하는 단계; 상기 특정 API 호출이 발생되면 상기 삽입된 API 후킹 동적 라이브러리가 상기 특정 API 호출을 가로채는 단계; 상기 특정 API 호출에 대한 시스템 API 호출을 하고 그에 따른 결과값 정보를 가공하는 단계; 및 상기 가공한 결과값 정보를 상기 응용프로그램에 전달하는 단계를 포함하는 것을 특징으로 하는 가상화 정보 가공방법을 제공한다.
본 발명의 다른 일 양상은, 가상화 정보 가공방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명의 가상화 정보 가공장치 및 방법에 의하면, 가상화 환경에서 일부 웹사이트나 어플리케이션이 가상화 환경에서 기능을 제한하더라도, 가상화 환경을 PC 처럼 인식하게 할 수 있다는 효과가 있다.
또한, 종래 기술에 의한 가상화 환경에서의 제약을 해소하여 가상화 기술의 산업분야 확산을 촉진할 수 있다는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 개략적인 구성을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 호스트 컴퓨터의 가상화 환경의 구성을 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 가상화 정보 가공방법을 예시한 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예에 대해 살펴보기로 한다.
도 1은 본 발명의 일 실시예에 따른 가상화 시스템의 개략적인 구성을 예시한 도면이다.
로컬PC(100)의 예로는 퍼스널 컴퓨터, 랩탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 메인프레임(mainframe) 컴퓨터, 미니(mini)컴퓨터 및 Web TV와 같은 인터넷 액세스 디바이스이다.
나아가, 로컬PC(100)는 바람직하게는 MICROSOFT INTERNET EXPLORER, MOZILLAFIREFOX 등과 같은 웹 브라우저 소프트웨어를 장착하여 임의의 알려진 데이터 통신 네트워킹 기술을 사용하여 통신망(300)에 연결된다.
데스크탑 가상화 환경에서는 리모트 데스크탑 클라이언트가 로컬PC(100)에 해당될 수 있다. 호스트 컴퓨터(200)는 가상화 환경을 구축하여 로컬PC(100)에 제공하는 서버이다. 물리적으로 1대의 시스템상에서 윈도즈나 리눅스 등 각기 다른 운영 체계(OS)의 다양한 어플리케이션을 효율적으로 운영할 수 있다. 호스트 컴퓨터(200)의 가상화 환경의 구성요소에 대하여는 도2의 설명에서 상세히 설명하도록 한다.
통신망(300)은 로컬PC(100)와 호스트 컴퓨터(200)간에 접속을 제공할 수 있는 연결수단을 말한다. 바람직하게는 인터넷과 같은 글로벌 공공 통신 네트워크(Global Public Communication Network)이지만, WAN(wide area network), LAN(local area network), 인트라넷, CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), GSM(Global System for Mobile Communications), LTE(Long Term Evolution) 등의 이동통신망 또는 그 명칭 여부에 불구하고 향후 구현될 어떠한 형태의 네트워크일 수 있다.
이하 도2를 중심으로 본 발명의 핵심 구성요소인 가상화 정보 가공 장치의 구성요소들을 상세히 설명하도록 한다.
도2는 본 발명의 일 실시예에 따른 호스트 컴퓨터의 가상화 환경의 구성을 예시한 도면이다.
하이퍼바이저(210)와 그 위에서 동작하는 구성요소에 대하여만 도시하였고, 호스트 하드웨어 및 호스트 운영체제 등 본 발명의 요지와 관련도가 적은 부분은 편의상 미도시 하였다.
하이퍼바이저(Hypervisor, 210)는 호스트 컴퓨터에서 다수의 운영 체제(operating system)를 동시에 실행하기 위한 논리적 플랫폼(platform)이며, 중앙처리장치와 OS사이의 일종의 미들웨어(Middleware)이다. 가상화 머신 모니터(virtual machine monitor, 줄여서 VMM)라고도 불린다.
게스트 가상머신(220)은 개별 게스트 사용자를 위하여 실재하는 호스트 컴퓨터(200)상에 소프트웨어로 논리적으로 만들어낸 컴퓨터를 말한다. 중앙처리장치(CPU), 입출력장치(I/O) 등 컴퓨터의 모든 자원을 가상화하는 것이며, 1대의 컴퓨터상에서 여러 사용자의 로컬PC(100)가 접속하여 여러 개의 시스템을 동작시키는 것이 가능하다.
게스트 OS(230)는 게스트 가상머신(220) 상에서 구동하는 운영체제로 CP/M, MS-DOS, Windows, 유닉스, 리눅스, VMS, OS/2 등 어떠한 운영체제도 될 수 있다.
시스템 API(Application Program Interface, 231)는 어플리케이션(240) 또는 웹 어플리케이션(250)이 응용프로그램이 구동되는 시스템의 기본적인 기능을 사용할 필요가 있을 때에 호출할 수 있는 서브루틴 또는 함수의 집합이다.
호스트 장치 드라이버 스택(280)은 장치 드라이버 가상화 레이어(270)를 통하여 가상화 되고, 게스트 가상머신(220)에서는 가상장치 드라이버 스택(232)이 시스템의 주요 하드웨어 장치를 제어하는 기능을 수행한다.
어플리케이션(240)은 게스트 OS(230) 상에서 구동되는 개별 응용프로그램을 말하며, 웹 어플리케이션(250)은 인터넷으로 연결된 웹 환경에서 사용자들간의 연결을 통해 서비스를 제공하는 어플리케이션을 의미한다. 로컬PC(100)의 웹브라우저의 주소창이나, 하이퍼링크, 서브밋버튼 등을 사용하여 서비스를 요청하면 그 요청정보를 처리하여 HTML 형식으로 로컬PC(100)의 웹 브라우저에 보내준다.
본 명세서에서 어플리케이션(240), 웹 어플리케이션(250)을 포괄하는 개념으로 응용프로그램이란 용어가 사용될 것이다.
가상화 정보 가공장치(260)는 응용프로그램이 가상화 환경으로 인지하지 못하도록 가상화 정보를 제거하는 본 발명의 실시예의 핵심 장치이다. 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 어느 하나 이상의 구성이 물리적으로 분리 또는 통합되어 구현될 수 있다.
가상화 정보 가공장치(260)에는 동적 라이브러리 삽입모듈(261), 응용프로그램 목록 관리모듈(262), 가상화 정보 가공모듈(263)이 포함된다.
동적 라이브러리 삽입모듈(261)은 시스템 전역에서 구동을 시작하는 응용프로그램을 감시하면서, 해당 응용프로그램들에 API 후킹 동적 라이브러리(241, 251)를 삽입하는 기능을 수행한다.
바람직하게는 해당 응용프로그램이 응용프로그램 목록 관리모듈(262)에서 등록된 응용프로그램인지를 확인하여 API 후킹 동적 라이브러리(241, 251)를 삽입한다.
라이브러리(Library)는 특정한 코드(함수 혹은 클래스)를 포함하고 있는 컴파일된 파일로서, 자주 사용되는 특정한 기능을 main 함수에서 분리시켜 놓음으로써, 프로그램을 유지, 디버깅을 쉽게하고 컴파일 시간을 좀더 빠르게 하기 위하여 사용된다. 라이브러리는 그 쓰임새에 따라 정적, 공유, 동적 라이브러리로 구분되는데, 본 발명의 실시예에서는 유연성이 좋으며 플러그인 모듈에 적합한 동적 라이브러리(Dynamic Library) 를 삽입하는 것이 바람직하나, 반드시 이에 한정되는 것은 아니다.
동적 라이브러리 (Dynamic Library) 는 소프트웨어의 일종으로, 프로그램 수행 도중 해당 모듈이 필요할 때 불러 쓰는 프로그램 모듈이다. 말 그대로 동적 링크를 사용한 라이브러리로서, 여러 프로그램이 공통으로 필요로 하는 기능을 프로그램과는 분리하여 필요할 때에만 불러내어 쓸 수 있게 만들어 놓은 라이브러리를 말한다.
API 후킹 동적 라이브러리(241, 251)는 응용프로그램의 프로세스 영역 안에 삽입되어 있다가 해당 응용프로그램이 장치정보를 질의하는 API 호출을 하면 이를 가로채어 가상화 정보 가공모듈(263)에 전달하는 역할을 한다.
API 후킹 동적 라이브러리(241, 251)는 게스트 OS(230)가 마이크로소프트 WINDOWS라면 동적 링크 라이브러리는 확장자(extension)가 DLL(Dynamic Link Library))인 파일로 제공될 것이고, 유닉스, 리눅스에선 /lib 디렉터리 밑의 .so(Shared Library) 파일 등으로 구현 될 것이다.
응용프로그램 목록 관리모듈(262)은 가상화 정보를 가공할 응용프로그램 목록을 관리하는 기능을 수행한다.
가상화 정보 가공모듈(263)은 API 후킹 동적 라이브러리(241,251)가 가로챈 장치정보 질의 시스템 API호출을 전달받아서, 해당 시스템 API(231) 호출을 하고, 이에 대한 결과값을 받아서 가상화 관련 정보를 제거하고, 필요시 PC 장치정보인 것처럼 값을 변조한 후 반환하는 기능을 수행한다. 이로 인하여 응용프로그램에서 가상화 환경에서 구동되고 있음을 인지하지 못하게 되는 것이다. 이때, 상기 PC 장치는 가상화가 아닌 물리적인 장치를 의미하는 것으로 한다.
이하, 본 발명의 실시예에 따른 가상화 정보 가공방법에 대해 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 가상화 정보 가공방법을 예시한 도면이다.
동적 라이브러리 삽입모듈(261)은 시스템 전역에서 구동을 시작하는 응용프로그램들을 감시하여(S310), 해당 응용프로그램이 응용프로그램 목록 관리모듈(262)에 등록된 응용프로그램이면 API 후킹 동적 라이브러리(241,251)를 응용프로그램의 프로세스 영역 안으로 삽입한다(S320).
S320단계에서 해당 응용프로그램이 응용프로그램 목록 관리모듈(262)에 등록되었는지 여부의 확인은 필수적으로 수행되는 것은 아니다. 즉, 구동되는 모든 응용프로그램에 API 후킹 동적 라이브러리(241,251)를 삽입할 수도 있고, 응용프로그램 목록 관리모듈(262)에 등록된 응용프로그램에만 API 후킹 동적 라이브러리(241,251)를 삽입할 수도 있다.
응용프로그램의 프로세스 영역 안으로 삽입된 API 후킹 동적 라이브러리(241,251)는 응용프로그램에서 장치정보를 질의하는 API 호출이 발생하는지 지속적으로 감시한다(S330).
장치정보를 질의하는 API 호출이 발생하면, 응용프로그램에 삽입된 API 후킹 동적 라이브러리(241,251)는 해당 장치정보를 질의하는 API 호출을 가로챈다(S340).
이후, API 후킹 동적 라이브러리(241,251)는 가로챈 장치정보를 질의하는 API 호출을 가상화 정보 가공모듈(263)에 전달한다(S350).
가상화 정보 가공모듈(263)은 장치정보를 질의하는 API 호출을 전달받은 후, 시스템 API(231)호출을 통하여 결과값을 받아온다(S360). 가상화 정보 가공모듈(263)은 받아온 결과값에 대하여 가상화 정보가 들어있다면 이를 제거하고, 필요 시 PC 장치인 것처럼 값을 변조하여(S370) 응용프로그램에 반환한다(S380).
도 3에서는 단계 S310 내지 단계 S380를 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3에 기재된 순서를 변경하여 실행하거나 단계 S310 내지 단계 S380 중 하나 이상의 단계를 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3은 시계열적인 순서로 한정되는 것은 아니다.
본 명세서에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 가상화 정보 가공장치 및 방법에 따르면, 가상화 환경에서 응용프로그램의 PC대비 호환성을 동일하게 유지할 수 있고, 이를 가상화 업무환경의 효율을 높이는 솔루션으로 활용하는 것이 가능하다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100: 로컬PC 200: 호스트 컴퓨터 300: 통신망
210: 하이퍼바이저 220: 게스트 가상머신 230: 게스트 OS
231: 시스템 API 232: 가상장치 드라이버 스택
240: 어플리케이션 250: 웹 어플리케이션 241,251: API후킹 동적라이브러리
260: 가상화 정보 가공장치 261: 동적 라이브러리 삽입모듈
262: 응용프로그램 목록 관리모듈 263: 가상화 정보 가공모듈
270: 장치 드라이버 가상화 레이어 280: 호스트 장치 드라이버 스택

Claims (11)

  1. 가상화 컴퓨터 환경에서의 가상화 정보 가공장치에 있어서,
    가상화 정보 가공을 위한 동적 라이브러리를 응용프로그램에 삽입하는 동적 라이브러리 삽입모듈; 및
    응용프로그램의 장치정보 질의 API호출을 전달받고, 상기 응용프로그램이 구동되는 시스템의 가상화 정보를 가공하여 결과값을 반환하는 가상화 정보 가공모듈을 포함하되,
    상기 응용프로그램에 삽입되는 동적 라이브러리는,
    상기 응용프로그램의 구동시 응용프로그램의 수행모듈 중의 하나로 구동되며, 장치 정보를 질의하는 API의 호출을 가로채는 기능을 하는 API 후킹 동적 라이브러리이고,
    상기 가상화 정보 가공모듈은,
    API 후킹 동적 라이브러리가 가로챈 장치정보 질의 API 호출에 대하여, 상기 응용프로그램이 구동되는 시스템의 상기 API 호출을 하고, 상기 API 호출에 따른 결과값 정보에서 가상화 관련 정보를 제거하고 상기 질의 대상인 장치가 가상화가 아닌 장치인 것처럼 정보를 변조하는 것을 특징으로 하는 가상화 정보 가공장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    가상화 정보가공 대상인 응용프로그램 목록을 관리하는 응용프로그램 목록 관리모듈을 더 포함하는 것을 특징으로 하는 가상화 정보 가공장치.
  5. 제4항에 있어서,
    상기 응용프로그램은 개별 어플리케이션 프로그램이나, 웹 어플리케이션 프로그램인 것을 특징으로 하는 가상화 정보 가공장치.
  6. 가상화 컴퓨터 환경에서의 가상화 정보 가공방법에 있어서,
    동적라이브러리 삽입모듈이 응용프로그램에 API 후킹 동적 라이브러리를 삽입하는 단계;
    상기 삽입된 API 후킹 동적 라이브러리가 응용프로그램의 구동에 의해 특정 장치정보 질의 API 호출이 발생되는지 감시하는 단계;
    상기 특정 장치정보 질의 API 호출이 발생되면 상기 삽입된 API 후킹 동적 라이브러리가 상기 특정 장치정보 질의 API 호출을 가로채는 단계;
    가상화정보 가공모듈이 상기 특정 장치정보 질의 API 호출에 대하여 상기 응용프로그램이 구동되는 시스템 API 호출을 수행하고, 상기 API 호출에 따른 결과값 정보에서 가상화 관련 정보를 제거하여 가상화 장치가 아닌 것처럼 정보를 변조하는 단계; 및
    가상화정보 가공모듈이 상기 변조한 결과값 정보를 상기 응용프로그램에 전달하는 단계를 포함하는 것을 특징으로 하는 가상화 정보 가공방법.
  7. 제 6항에 있어서,
    상기 API 후킹 동적 라이브러리를 삽입하는 단계 이전에,
    응용프로그램이 구동을 시작하는지 감시하는 단계를 더 포함하는 것을 특징으로 하는 가상화 정보 가공방법.
  8. 제7항에 있어서,
    상기 응용프로그램은,
    사전에 등록되어 관리되고 있는 응용프로그램인지 확인하는 단계를 더 포함하는 것을 특징으로 하는 가상화 정보 가공방법.
  9. 제6항에 있어서,
    상기 삽입된 API 후킹 동적 라이브러리가 응용프로그램의 구동시 감시하는 특정 API의 호출은 장치정보를 질의하는 API인 것을 특징으로 하는 가상화 정보 가공방법.
  10. 삭제
  11. 제6항 내지 제9항 중 어느 한 항에 기재된 가상화 정보 가공방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.


KR1020140011220A 2014-01-29 2014-01-29 가상화 정보 가공장치 및 방법 KR101462829B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140011220A KR101462829B1 (ko) 2014-01-29 2014-01-29 가상화 정보 가공장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140011220A KR101462829B1 (ko) 2014-01-29 2014-01-29 가상화 정보 가공장치 및 방법

Publications (1)

Publication Number Publication Date
KR101462829B1 true KR101462829B1 (ko) 2014-11-21

Family

ID=52291141

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140011220A KR101462829B1 (ko) 2014-01-29 2014-01-29 가상화 정보 가공장치 및 방법

Country Status (1)

Country Link
KR (1) KR101462829B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039617A1 (ko) * 2017-08-21 2019-02-28 주식회사 스패로우 웹 애플리케이션의 동적 분석을 위한 api 호출 정보 제공 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019887A1 (en) * 2000-05-09 2002-02-14 International Business Machines Corporation Intercepting system API calls
US20070180448A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session
US20080047023A1 (en) * 2006-07-24 2008-02-21 Aplix Corporation User space virtualization system
KR101011145B1 (ko) * 2010-06-15 2011-01-26 주식회사 파수닷컴 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020019887A1 (en) * 2000-05-09 2002-02-14 International Business Machines Corporation Intercepting system API calls
US20070180448A1 (en) * 2006-01-24 2007-08-02 Citrix Systems, Inc. Methods and systems for providing access to a computing environment provided by a virtual machine executing in a hypervisor executing in a terminal services session
US20080047023A1 (en) * 2006-07-24 2008-02-21 Aplix Corporation User space virtualization system
KR101011145B1 (ko) * 2010-06-15 2011-01-26 주식회사 파수닷컴 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039617A1 (ko) * 2017-08-21 2019-02-28 주식회사 스패로우 웹 애플리케이션의 동적 분석을 위한 api 호출 정보 제공 방법 및 장치

Similar Documents

Publication Publication Date Title
CN110651269B (zh) 隔离的容器事件监视
US10095863B2 (en) Automating monitoring of a computing resource in a cloud-based data center
JP5893029B2 (ja) クラウド・コンピューティング環境においてハイパーバイザの制御を可能にする方法
US9400671B2 (en) Computer host with a baseboard management controller to manage virtual machines
US11099865B2 (en) Auditing clipboard operations in virtual desktop environments
US9342329B2 (en) Method and system for cross-operating systems execution of software applications
US9804869B1 (en) Evaluating malware in a virtual machine using dynamic patching
EP3572938A1 (en) Method and device for data migration
US10678918B1 (en) Evaluating malware in a virtual machine using copy-on-write
US20220405385A1 (en) Secure container construction device and method executable by android application, and computer-readable recording medium on which program thereof is recorded
US20170147462A1 (en) Agent dynamic service
TWI590073B (zh) 用於提供存取虛擬命名空間中資源的虛擬整合呼叫
US9558060B1 (en) End use self-help delivery system
KR101462829B1 (ko) 가상화 정보 가공장치 및 방법
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
KR20180051719A (ko) Html5 기반의 가상화 융합형 웹서비스 시스템 및 방법
JP6205013B1 (ja) アプリケーション利用システム
US10261921B2 (en) Universal secure platform virtualization system and method thereof
JP2014225302A (ja) ウイルス検出プログラム、ウイルス検出方法、及びコンピュータ
US20160210160A1 (en) Method and apparatus for portable self-contained node computer
US10223413B2 (en) Capturing components of an application using a static post-installation analysis of the system
US10263986B1 (en) Privilege elevation system and method for desktop administration
US9998348B2 (en) Monitoring a business transaction utilizing PHP engines
Iqbal et al. Introducing controlling features in cloud environment by using SNMP
US10303531B2 (en) Console application through web service

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: 20181022

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 6