KR20080005493A - 소프트웨어 보호 - Google Patents

소프트웨어 보호 Download PDF

Info

Publication number
KR20080005493A
KR20080005493A KR1020077022540A KR20077022540A KR20080005493A KR 20080005493 A KR20080005493 A KR 20080005493A KR 1020077022540 A KR1020077022540 A KR 1020077022540A KR 20077022540 A KR20077022540 A KR 20077022540A KR 20080005493 A KR20080005493 A KR 20080005493A
Authority
KR
South Korea
Prior art keywords
executable
execution environment
call
virtual
computer device
Prior art date
Application number
KR1020077022540A
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 코닌클리케 필립스 일렉트로닉스 엔.브이.
Publication of KR20080005493A publication Critical patent/KR20080005493A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 소프트웨어 보호에 대한 것이다. 실행 환경을 가진 컴퓨터 디바이스 상에서 실행될 수 있는 원래의 실행가능부(original executable)는 대안적인 실행 환경 내에서 랩핑(wrapping)되어, 이에 따라 새로운 실행가능부를 형성하고, 따라서 원래의 실행가능부로부터 컴퓨터 디바이스의 운영 체제로의 호출(call)이 더 이상 검사되거나 조작될 수 없는, 방법이 개시된다. 이에 따라, 실행가능부는 조사(examination)와 역공학(reverse engineering)에 대해서 보호된다.

Description

소프트웨어 보호{SOFTWARE PROTECTION}
본 발명은 검사 및/또는 조작에 대해 컴퓨터 디바이스 상의 실행가능부를 보호하기 위한 방법에 대한 것이고, 상기 컴퓨터 디바이스는 상기 실행가능부의 실행을 위한 실행가능 환경을 포함한다.
컴퓨터 디바이스상의 소프트웨어가 부정한(fraudulent) 조사(examination), 탬퍼링(tampering), 역공학 등을 당할 수 있다는 것은 잘 알려진 문제점이다. 이 문제점은 점점 더 많은 컴퓨터가 엑스트라넷, 인트라넷, 인터넷 등과 같은 네트워크를 통해 다른 컴퓨터와 적어도 이따금씩은 연결됨에 따라, 점점 심각해지고 있다.
실행가능부(executable)를 패킹하고 이것을 압축 해제 코드와 결합하기 위한 압축 알고리즘을 사용하는 쉘(shell) 패키저(packager) 유틸리티가 존재한다. 결과적으로 생성되는 실행가능부는 메모리 내에서 압축된 실행가능부를 먼저 압축 해제하고 실행가능부의 엔트리 지점을 호출하는 부트스트랩 코드를 가진다. 하지만, 만약 실행가능부가 현재의 패키저 유틸리티를 통해 압축되면, 역공학이 가능한데, 그 이유는 실행가능부는 컴퓨터의 메모리 매체 내에 이용가능할 것이기 때문이다. 또한, 실행가능부로부터 운영 체제(OS), 레지스트리 또는 메모리로의 호출의 스파 잉(spying)은 그 압축 해제 후에 현재의 압축된 실행가능부로 가능하다.
US 6 006 328은 도청, 탬퍼링, 조사, 트레이싱(tracing)과 스푸핑(spoofing)에 대해 소프트웨어 보호를 설명한다. 이 보호는 암호화, 난독화(obfuscation), 트레이싱 방지, 탬퍼링 방지, 자가 검증, 런타임 자가 감시와 시청각 인증 기술의 결합에 의해 달성된다. 하지만, 이것은 기술 처리의 상대적으로 광범위한 기록(logging)을 요구하는 복잡한 조합이다.
그러므로, 본 발명의 목적은 검사 및/또는 조작에 대해 소프트웨어 보호를 향상시키는 대안적인 방법을 제공하는 것이다. 이 목적은 서두에 설명된 방법이: 운영 체제(OS) 호출의 실현을 포함하는 대안적인 실행 환경을 생성하는 단계와; 원래의 실행가능부와 새로운 실행가능부에 대한 대안적인 실행 환경을 결합하는 단계를 포함할 때 달성된다.
이에 따라, 원래의 실행가능부가 대안적인 실행 환경을 포함하는 새로운 실행가능부로 패키징/랩핑되고, 따라서 원래의 실행가능부로부터 컴퓨터 디바이스의 운영 체제로의 호출이 더 이상 검사되거나 조작될 수 없다. 이것은 임의의 유형의 검사와 조작에 대해 실행가능부의 보호를 제공한다. 현재의 운영 체제와 컴파일러는 일반적으로 운용체제에 의해 제공되는 애플리케이션 프로그램 인터페이스(API)를 호출하기 위한 소위 동적 연결 방법을 사용하므로, 원래의 실행가능부는 일반적으로 운영 체제로의 호출을 포함한다. 이러한 호출은 운영 체제의 API-서비스를 실현하는 라이브러리와 함수로의 호출일 수 있다.
본 명세서 전체에 걸쳐서, 용어 "검사 및/또는 조작"은 도청, 탬퍼링, 조사, 역공학, API 하이잭킹(hijacking), API 주입(injection)과 API 스파잉(spying) 중의 임의의 것을 포괄하는 것으로 의미된다. 또한, 용어 "실행가능부(executable)"는 프로그램, 즉, 컴퓨터 디바이스 내의 프로그램으로서 실행되거나 수행될 수 있는 소프트웨어 또는 파일을 포함하는 임의의 소프트웨어 또는 파일을 포괄하는 것으로 의미된다. 용어 "OS의 호출의 실현"은 원래의 실현가능부 내의 OS 호출에 대응하는 호출을 수행하기 위한 임의의 방법을 포괄하는 것이 의미된다. 마지막으로, 용어 "호출"은 "커맨드(command)" 또는 "요청"과 동일한 뜻을 갖는 것으로 의미된다.
바람직하게, 본 방법은 원래의 실행가능부 내의 임의의 호출을 대안적인 실행 환경 내에서 실현되는 대응되는 호출로 번역하는 단계를 포함한다. 본 방법의 이 번역 단계에서, 원래의 실행가능부에서 예를 들면 동적으로 연결된(linked) 라이브러리로의 참조 또는 호출은 대안적인 실행 환경 내에서 실현된 호출로 대체되거나 번역된다. 이에 따라, 새로운 실행가능부의 동작은 원래의 실행가능부의 동작에 대응하는 것이 보장된다. 원래의 실행가능부에서의 호출을 번역하는 단계는 동적으로 연결된 라이브러리로의 참조를 포함하는 원래의 실행가능부 내의 테이블 전체를 훑고(work through), 이러한 참조를 대안적인 실행 환경 내에서 실현된 호출로 대체하여 수행될 수 있다.
바람직한 실시예에서, 대안적인 실행 환경은 가상 운영 체제를 포함한다. 이러한 가상 운영 시스템은 원래의 실행가능부 내의 임의의 호출이 가상 운영 체제 내의 대응하는 호출로 번역되었을 때, 원래의 실행가능부와 관련된 운영 체제의 작업을 수행하기 위해 배열된다. 하지만, 가상 운영 체제 내의 이러한 호출은 가상 운영 시스템 외부에서는 검출가능하지 않을 것이다.
본 발명에 따른 방법의 다른 바람직한 실시예에서, 대안적인 실행 환경은 가상 파일 시스템, 가상 레지스트리, 가상 프로세스 관리자, 가상 자원 관리자 중의 하나 이상의 구성 요소를 더 포함한다. 이러한 구성 요소의 각각이 대안적인 실행 환경에 포함되는 지의 여부는 상기 어느 구성 요소가 원래의 실행가능부 내에서 호출되는지에 따라 결정되어, 그 결과 원래의 실행가능부 내에서 호출되지 않는 구성 요소는 대안적인 실행 환경 내에 포함될 필요가 없으며, 그 반대 경우도 마찬가지이다.
바람직하게, 본 발명에 따른 방법의 결합하는 단계는 상기 새로운 실행가능부를 부트스트랩 코드(1010)와 결합하는 단계를 더 포함한다. 이에 따라, 새로운 실행가능부가 컴퓨터 디바이스 내로 로딩될 수 있어서, 부트스트랩 코드를 사용해서 컴퓨터 디바이스 상에서 실행될 수 있다.
본 방법의 바람직한 실시예에서, 이 방법은 상기 원래의 실행가능부 내의 임의의 호출(들)을 식별하는 이전 단계로서, 상기 대안적인 실행 환경을 생성하는 단계는 상기 원래의 실행가능부 내에서 식별된 임의의 호출(들)의 실현만을 생성하는 단계를 더 포함한다. 이에 따라, 과도하게 복잡하거나 큰 대안적인 실행 환경을 생성하는 것이 방지된다.
본 방법의 다른 바람직한 실시예에서, 상기 대안적인 실행 환경이 가장 일반적인 운영 체제(OS) 호출의 실현을 포함하기 위해 생성된다. 이러한 가장 일반적인 운영 체제(OS) 호출은 예를 들면, 파일 시스템 호출, 레지스트리 호출, 프로세스 관리 호출과 자원 관리 호출을 포함한다. 이에 따라, 원래의 실행가능부 내의 호출의 임의의 식별이 방지된다.
본 발명은 도면을 참조해서 바람직한 실시예와 관련해서 아래에서 보다 충분히 설명될 것이다.
도 1은 종래 기술의 실행 환경의 구성 요소를 도시하는 개략도.
도 2는 본 발명에 따라 대안적인 실행 환경의 구성 요소를 도시하는 개략도.
도 3은 본 발명에 따라 새로운 실행가능부(executable)의 개략도.
도 4는 본 발명의 예시적인 방법의 흐름도.
도면의 설명 전체에 걸쳐, 본 설명에서 구성 요소는 컴퓨터 디바이스 내에서 실현될 수 있는 하드웨어, 소프트웨어 또는 미들웨어의 일부라는 것이 이해되어야 한다. 컴퓨터 디바이스 내로 초기적으로 로딩된 후에 컴퓨터 디바이스 내의 모든 다른 프로그램을 관리하는 프로그램인, 운영 체제(OS)를 컴퓨터 디바이스가 포함한다는 것이 또한 이해되어야 한다. 다른 프로그램은 실행가능부 또는 애플리케이션 프로그램이라고 불린다. 실행가능부 또는 애플리케이션 프로그램은 정의된 애플리케이션 프로그램 인터페이스(OS API)를 통해 서비스에 대한 호출 또는 요청에 대한 호출을 수행하여 운영 체제를 사용한다. 이 OS API는 수평 라인으로서 도면에 지정 되어 있고, OS API로의 호출은 이 OS API를 가리키는 화살표에 의해 지정된다. 운영 체제(OS)로의 직접적인 호출은 이 수평 라인 아래에 위치된 요소를 가리키는 화살표로서 지정된다.
컴퓨터 디바이스는 일반적으로 레지스트리, 저장 수단, 프로세서 유닛(들), 입출력 수단, 디스플레이 수단 등과 같은 적절한 구성 요소를 포함한다는 것을 이해한다. 하지만, 이러한 구성 요소는 도면에는 도시되지 않는다.
도 1은 종래 기술의 실행 환경의 구성 요소의 개략도이다. 원래의 실행가능부(10)가 도시된다. 이 실행가능부는 화살표(10a)에 의해 지시된 것처럼, OS API로의 호출을 수행한다. 여분의 실행가능부(20)는 실행가능부의 실행에 관련될 수 있으며, 이러한 여분의 실행가능부(20)는 그 스스로 화살표(20a)에 의해 지시된 것처럼, OS API로의 호출을 수행할 수 있다. 화살표(30a)는 원래의 실행가능부(10) 또는 여분의 실행가능부(20)로부터 파일 시스템 내의 여분의 파일 및/또는 디렉토리(30)로의 호출을 지시한다. 화살표(40a)는 원래의 실행가능부(10) 또는 여분의 실행가능부(20)로부터, 예를 들면 레지스트리 설정(40)을 판독하기 위한 레지스트로의 호출을 지시한다. 마지막으로, 화살표(50a)는 원래의 실행가능부(10) 또는 여분의 실행가능부(20)로부터 여분의 자원(50)으로의 호출을 지시한다. 이러한 호출(30a, 40a, 50a)은 운영 체제(OS)에 의해 취급되는데, 즉, 파일, 디렉토리, 자원 등으로의 액세스를 관리하기 위해 OS에게 전송된다.
원래의 실행가능부는 예를 들면, API-하이잭 또는 API 주입 방법에 의해 OS API로의 호출(10a-50a)을 드러내기 위해 역공학되어질 수 있다는 것이 도 1의 상기 설명으로부터 명백하다. 원래의 실행가능부(10)가 컴퓨터 디바이스 내에서 메모리디바이스 상의 파일을 액세스하거나, 컴퓨터 디바이스 내의 레지스트리 내의 키를 액세스하려고 할 때, API 스파이 툴(spy tool)이 호출을 감시하고 스파잉(spying)하기 위해 사용될 수 있다.
도 2는 본 발명에 따른 대안적인 실행 환경(100)의 구성 요소의 개략도이다. 대안적인 실행 환경(100)은 가상 운영 체제(101), 가상 파일 시스템(110), 가상 레지스트리(120)와 가상 프로세스 및 자원 관리자(130)를 포함한다. 가상 OS(101)는 "파일 생성", "파일 열기", "파일 판독" 등과 같은 파일 I/O에 대해서, 가상 파일 시스템(110)으로의 호출(111)을 수행할 수 있다. 또한, 가상 OS(101)는 "키 열기", "키 판독" 등과 같은 레지스트리 I/O에 대한 가상 레지스트리(120)로의 호출(121)을 수행할 수 있다. 마지막으로, 가상 OS는, "프로세스 생성", "라이브러리 로딩", "자원 획득" 등과 같은, 가상 프로세스 및 자원 관리자(130)로의 프로세스 관리에 대한 호출(131) 및/또는 자원 관리에 대한 호출(132)을 수행할 수 있다.
도 2에 도시된 대안적인 실행 환경의 구성 요소는 단지 예시적인 것일 뿐이고, 다른 또는 대안적인 구성 요소가 원래 실행가능부 내의 호출에 따라서 대안적인 실행 환경의 일부일 수 있다.
도 3은 본 발명에 따른 새로운 실행가능부(1000)의 개략도이다. 새로운 실행가능부(1000)는 대안적인 실행 환경(100) 내에서 원래의 실행가능부(10)를 처리하고 랩핑하는 동작의 결과이다. 따라서, 새로운 실행가능부(1000)는 도 1에 도시된 원래의 실행가능부(10), 여분의 실행가능부(20), 여분의 파일과 디렉토리(30), 레 지스트리 설정(40)과 여분의 자원(50)을 포함한다. 또한, 새로운 실행가능부(1000)는 도 2에 도시된 호출(111, 121, 131과 132) 뿐만 아니라 가상 OS(100), 가상 파일 시스템(110), 가상 레지스트리(120)와 가상 프로세스 및 자원 관리자(130)를 포함한다. 또한, 도 3에서 도시된 것처럼, 새로운 실행가능부(1000)는 새로운 실행가능부(1000)를 메모리로 로딩하고, 이 새로운 실행가능부의 실행을 시작하게 하기 위한 부트스트랩 코드(1010)를 포함한다.
도 1과 도 3에 도시된 원래의 실행가능부(10)는 압축될 수 있다는 것이 주목되어야 한다.
도 4는 본 발명의 예시적인 방법의 흐름도이다. 도시된 방법은 단계(A)에서 시작한다. 후속 단계인 단계(B)에서, 원래의 실행가능부 내의 임의의 호출이 식별된다. 이러한 호출은 일반적으로 운영 체제로의 호출이다. 후속적으로, 단계(C)에서, 대안적인 실행 환경이 생성된다. 이러한 대안적인 실행 환경은 운영 체제 호출의 실현을 포함해야 한다. 대안적인 실행 환경은 가상 운영 체제와, 아마도 가상 파일 시스템, 가상 레지스트리, 가상 프로세스 관리자, 가상 자원 관리자 중의 하나 이상의 것을 포함할 수 있다. 그 다음에, 단계(D)에서, 단계(B)에서 식별된 원래의 실행가능부 내의 호출이 대안적인 실행 환경 내에서 실현되는 대응하는 호출로 번역된다. 이 방법은 단계(E)로 진행하며, 이 단계에서 원래의 실행가능부와 대안적인 실행 환경이 새로운 실행가능부로 결합된다. 바람직하게, 새로운 실행가능부가 또한 부트스트랩 코드와 결합된다. 방법의 흐름은 단계(F)에서 종결된다.
본 명세서에서 사용될 때, 용어 "포함한다/포함하는"은 기술된 특징, 완전 체(integer), 단계 또는 구성 요소의 존재를 명시하기 위해 사용되지만, 하나 이상의 특징, 완전체, 단계, 구성 요소와 이것들의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 강조되어야 한다. 특정 조치가 서로 다른 종속 청구항들에서 열거되고, 다른 실시예들에서 설명된다는 사실은 이러한 조치의 결합이 이득을 얻기 위해 사용될 수 없다는 것을 지시하는 않는다.
본 발명은 검사 및/또는 조작에 대해 컴퓨터 디바이스 상의 실행가능부를 보호하기 위한 방법에 이용가능하다.

Claims (9)

  1. 검사 및/또는 조작에 대해서 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법으로서,
    상기 컴퓨터 디바이스는 상기 실행가능부의 실행을 위한 실행 환경을 포함하고,
    상기 방법은:
    - 운영 체제(OS) 호출의 실현을 포함하는 대안적인 실행 환경(100)을 생성하는 단계(C)와;
    - 원래의 실행가능부(10)와 새로운 실행가능부(1000)에 대한 대안적인 실행 환경(100)을 결합하는 단계(E)를
    포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  2. 제1항에 있어서,
    - 상기 원래의 실행가능부(10) 내의 임의의 호출을 상기 대안적인 실행 환경(100) 내에서 실현된 대응하는 호출로 번역하는 단계(D)를,
    더 포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  3. 제1항 또는 제2항에 있어서, 상기 대안적인 실행 환경(100)은 가상 운영 체제(101)를 포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  4. 제3항에 있어서, 상기 대안적인 실행 환경(100)은 가상 파일 시스템(110), 가상 레지스트리(120), 가상 프로세스 관리자(130), 가상 자원 관리자(130) 중의 하나 이상의 구성 요소를 더 포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  5. 제1항 내지 제4항 중의 어느 한 항에 있어서, 상기 결합하는 단계는 상기 새로운 실행가능부(1000)를 부트스트랩 코드(1010)와 결합하는 단계를 더 포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  6. 제1항 내지 제5항 중의 어느 한 항에 있어서,
    - 상기 원래의 실행가능부(10) 내의 임의의 호출(들)을 식별하는 이전의 단계(B)를 더 포함하며, 그에 의해 상기 대안적인 실행 환경(100)을 생성하는 단계는 상기 원래의 실행가능부(10) 내에서 식별된 임의의 호출의 실현만을 생성하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  7. 제1항 내지 제6항 중의 어느 한 항에 있어서, 상기 대안적인 실행 환경(100)은 가장 일반적인 운영 체제(OS) 호출의 실현을 포함하기 위해 생성되는, 컴퓨터 디바이스 상의 실행가능부(executable)를 보호하기 위한 방법.
  8. 컴퓨터 프로그램이 데이터 처리 디바이스 상에서 실행될 때, 제1항 내지 제7항 중의 어느 한 항에 기재된 방법의 단계를 상기 데이터 처리 디바이스가 수행하도록 하기 위해 적응된 프로그램 코드 수단을 포함하는, 컴퓨터 프로그램.
  9. 제1항 내지 제7항 중의 어느 한 항에 기재된 방법을 수행하기 위해 적응된 제1 처리 회로를 포함하는, 데이터 처리 디바이스.
KR1020077022540A 2005-04-07 2006-04-03 소프트웨어 보호 KR20080005493A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05102722 2005-04-07
EP05102722.5 2005-04-07

Publications (1)

Publication Number Publication Date
KR20080005493A true KR20080005493A (ko) 2008-01-14

Family

ID=36763097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022540A KR20080005493A (ko) 2005-04-07 2006-04-03 소프트웨어 보호

Country Status (7)

Country Link
US (1) US20080216071A1 (ko)
EP (1) EP1869606A1 (ko)
JP (1) JP2008535117A (ko)
KR (1) KR20080005493A (ko)
CN (1) CN101151617A (ko)
TW (1) TW200705236A (ko)
WO (1) WO2006106469A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013509B1 (ko) * 2008-01-04 2011-02-11 주식회사 마크애니 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461200C (zh) * 2006-12-22 2009-02-11 北京飞天诚信科技有限公司 一种在软件保护装置中实现软件保护的方法与装置
EP2240857A4 (en) * 2007-12-21 2013-12-25 Univ Virginia Patent Found SYSTEM, METHOD AND COMPUTER PROGRAM FOR PROTECTING SOFTWARE THROUGH ANTI-FALSIFICATION AND OBSCURING TRANSFORMATIONS
WO2009088175A2 (en) * 2008-01-04 2009-07-16 Markany Inc. Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment
FR2942951B1 (fr) 2009-03-12 2012-03-30 Euros Sa Implant rachidien a liaison rotule verrouillable
CN102939608A (zh) * 2010-03-25 2013-02-20 埃德图加拿大公司 抗边通道和重复调用攻击的动态、可变定时操作路径的系统和方法
US20120102103A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Running legacy applications on cloud computing systems without rewriting
CN102779030B (zh) * 2011-05-11 2015-08-19 奇智软件(北京)有限公司 一种注册表操作的执行方法及装置
US8924958B1 (en) 2011-05-24 2014-12-30 BlueStack Systems, Inc. Application player
US10089093B1 (en) * 2011-05-24 2018-10-02 BlueStack Systems, Inc. Apparatuses, systems and methods of switching operating systems
US20120304283A1 (en) * 2011-05-27 2012-11-29 Microsoft Corporation Brokered item access for isolated applications
US10791538B1 (en) 2011-07-06 2020-09-29 BlueStack Systems, Inc. Cloud-based data synchronization
US9804864B1 (en) 2011-10-07 2017-10-31 BlueStack Systems, Inc. Method of mapping inputs and system thereof
EP3014435A4 (en) * 2013-06-28 2017-01-04 Hewlett-Packard Enterprise Development LP Hook framework
US10044695B1 (en) 2014-09-02 2018-08-07 Amazon Technologies, Inc. Application instances authenticated by secure measurements
US10079681B1 (en) 2014-09-03 2018-09-18 Amazon Technologies, Inc. Securing service layer on third party hardware
US9246690B1 (en) 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
US9577829B1 (en) 2014-09-03 2017-02-21 Amazon Technologies, Inc. Multi-party computation services
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
US9491111B1 (en) 2014-09-03 2016-11-08 Amazon Technologies, Inc. Securing service control on third party hardware
US10061915B1 (en) 2014-09-03 2018-08-28 Amazon Technologies, Inc. Posture assessment in a secure execution environment
US9442752B1 (en) 2014-09-03 2016-09-13 Amazon Technologies, Inc. Virtual secure execution environments
US9754116B1 (en) 2014-09-03 2017-09-05 Amazon Technologies, Inc. Web services in secure execution environments
CN108280329B (zh) * 2018-01-22 2020-06-02 北京数科网维技术有限责任公司 一种用于软件运行的验证放行方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2708608B2 (ja) * 1990-05-25 1998-02-04 富士通株式会社 仮想計算機のipl処理方式
US6006328A (en) 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US6192475B1 (en) * 1997-03-31 2001-02-20 David R. Wallace System and method for cloaking software
US6594761B1 (en) * 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
CA2305078A1 (en) * 2000-04-12 2001-10-12 Cloakware Corporation Tamper resistant software - mass data encoding
JP2002312170A (ja) * 2001-04-10 2002-10-25 Ricoh Co Ltd ハイブリッドディスク
US6694435B2 (en) * 2001-07-25 2004-02-17 Apple Computer, Inc. Method of obfuscating computer instruction streams
JP2004206269A (ja) * 2002-12-24 2004-07-22 Sony Corp 情報処理装置および方法
US8694802B2 (en) * 2004-04-30 2014-04-08 Apple Inc. System and method for creating tamper-resistant code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013509B1 (ko) * 2008-01-04 2011-02-11 주식회사 마크애니 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법

Also Published As

Publication number Publication date
TW200705236A (en) 2007-02-01
US20080216071A1 (en) 2008-09-04
JP2008535117A (ja) 2008-08-28
CN101151617A (zh) 2008-03-26
EP1869606A1 (en) 2007-12-26
WO2006106469A1 (en) 2006-10-12

Similar Documents

Publication Publication Date Title
KR20080005493A (ko) 소프트웨어 보호
US9213826B2 (en) System and method to protect Java bytecode code against static and dynamic attacks within hostile execution environments
CN108932406B (zh) 虚拟化软件保护方法和装置
WO2016078130A1 (zh) 一种防逆向apk文件的动态加载方法
US8001596B2 (en) Software protection injection at load time
US20160203087A1 (en) Method for providing security for common intermediate language-based program
AU2006235058B2 (en) System and method for foreign code detection
CN109657488B (zh) 一种资源文件加密处理方法、智能终端及存储介质
US20160239671A1 (en) Method and device for protecting an application and method and device for executing a protected application thus protected
US20170103192A1 (en) Secure code delivery
Meyerovich et al. Object views: Fine-grained sharing in browsers
CN111400757B (zh) 防止安卓第三方库中native代码泄露用户隐私的方法
Yuhala et al. Montsalvat: Intel SGX shielding for GraalVM native images
CN110597496B (zh) 应用程序的字节码文件获取方法及装置
KR101749209B1 (ko) 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치
JP2008040853A (ja) アプリケーション実行方法およびアプリケーション実行装置
KR101436741B1 (ko) 프로그램 보안 솔루션 적용 방법 및 시스템
CN113220314B (zh) App资源加载及apk生成方法、装置、设备及介质
Lim et al. Protecting Android Applications with Multiple DEX Files Against Static Reverse Engineering Attacks.
CN110298146B (zh) 一种应用程序的处理、运行方法及装置
CN110046504B (zh) 基于Linker的SO文件隐藏方法、储存介质及装置
Anderson et al. Towards oblivious sandboxing with Capsicum
Bishop Improvements of User's Security and Privacy in a Web Browser
JP5863689B2 (ja) 不正使用防止機能付き共有ライブラリ
KR20190060181A (ko) 공유 오브젝트의 코드 보호를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid