JP2008535117A - Software protection - Google Patents
Software protection Download PDFInfo
- Publication number
- JP2008535117A JP2008535117A JP2008504888A JP2008504888A JP2008535117A JP 2008535117 A JP2008535117 A JP 2008535117A JP 2008504888 A JP2008504888 A JP 2008504888A JP 2008504888 A JP2008504888 A JP 2008504888A JP 2008535117 A JP2008535117 A JP 2008535117A
- Authority
- JP
- Japan
- Prior art keywords
- execution environment
- executable file
- call
- file
- virtual
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
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
本発明は、ソフトウェア保護に関する。実行環境によりコンピュータ装置において走ることの可能な元の実行ファイルが、代替えの実行環境においてラップされこれにより新しい実行ファイルを形成し、これにより、コンピュータ装置のオペレーティングシステムに対する元の実行ファイルからの呼び出しが、検査又は操作されないようにした方法が開示される。これによって、実行可能ファイルは、検査及びリバースエンジニアリングに対して保護される。 The present invention relates to software protection. The original executable file that can be run on the computing device by the execution environment is wrapped in the alternative execution environment, thereby forming a new executable file, whereby calls from the original executable file to the operating system of the computing device are made. Disclosed is a method for preventing inspection or manipulation. This protects the executable file against inspection and reverse engineering.
Description
本発明は、検査及び/又は操作に対してコンピュータ装置にける実行ファイルを保護するための方法に関し、特にそのコンピュータ装置が当該実行ファイルの実行環境を有するものに関する。 The present invention relates to a method for protecting an executable file in a computer device against inspection and / or manipulation, and more particularly to the computer device having an execution environment for the executable file.
コンピュータ上のソフトウェアが不正な検査や改竄、リバースエンジニアリングなどにかけられる可能性があることは、よく知られた問題である。この問題は、コンピュータが益々少なくとも時としてエクストラネットやイントラネット、インターネットなどのネットワークを介して他のコンピュータと接続されるにつれて益々厳しいものとなりつつある。 It is a well-known problem that software on a computer can be subjected to unauthorized inspection, falsification, reverse engineering, and the like. This problem is becoming more severe as computers are connected to other computers, at least sometimes via networks such as extranets, intranets, and the Internet.
実行ファイルをパックしそれを伸長コードと組み合わせるよう圧縮アルゴリズムを用いるシェルパッケージャユーティリティ(shell packager utility)がある。結果としての実行ファイルは、先ずメモリにおけるその圧縮された実行ファイルを伸長するブートストラップコードを有し当該実行ファイルのエントリポイントを呼び出す。しかしながら、実行ファイルはコンピュータのメモリ媒体において利用可能になるので、現在のパッケージャユーティリティを介して実行ファイルが圧縮されると、リバースエンジニアリングが可能となる。さらに、実行ファイルからオペレーティングシステム(OS)、レジストリ又はメモリへの呼び出しのスパイ行為は、それらの伸長の後に現在の圧縮された実行ファイルで可能となる。 There is a shell packager utility that uses a compression algorithm to pack an executable file and combine it with decompressed code. The resulting executable file first has bootstrap code that decompresses the compressed executable file in memory and calls the entry point of the executable file. However, since the executable file is made available in the computer's memory medium, reverse engineering is possible once the executable file is compressed via the current packager utility. Furthermore, spying of calls from the executable file to the operating system (OS), registry or memory is possible with the current compressed executable file after their decompression.
米国特許出願に係る文献のUS6006328は、盗聴、改竄、検査、追跡及びなりすましに対するソフトウェアの保護について記述している。この保護は、暗号化、難文化、追跡防止、改竄防止、自己検証、実行時間自己監視及び視聴覚認証技術の組み合わせによって得られる。しかしながら、これは、これら技術の処理の比較的に大規模なロギングを必要とする複雑な組み合わせである。 The US patent application US60000632 describes software protection against eavesdropping, tampering, inspection, tracking and spoofing. This protection is obtained by a combination of encryption, hardship, tracking prevention, tampering prevention, self-verification, runtime self-monitoring and audiovisual authentication technology. However, this is a complex combination that requires relatively extensive logging of the processing of these techniques.
したがって本発明の目的は、検査及び/又は操作に対するソフトウェア保護を強固にする代替えの方法を提供することである。 Accordingly, it is an object of the present invention to provide an alternative method for strengthening software protection against inspection and / or manipulation.
この目的は、冒頭の段落の方法が、・オペレーティングシステム呼び出しの実現を有する代替えの実行環境を発生するステップと、・当該元の実行ファイルと前記代替えの実行環境とを組み合わせて新しい実行ファイルにするステップと、を有するときに達成される。 The purpose of this is that the method in the opening paragraph includes: generating an alternative execution environment having an implementation of an operating system call; and combining the original execution file and the alternative execution environment into a new execution file. And the step is achieved.
これにより、元の実行ファイルは、当該代替えの実行環境を有する新しい実行ファイルの中へパック/ラップされ、元の実行ファイルからコンピュータ装置のオペレーティングシステムへの呼び出しは、もはや検査又は操作されることができない。これは、どのタイプの検査及び操作に対しても実行ファイルの保護をなす。現在のオペレーティングシステム及びコンパイラは、通常はオペレーティングシステムにより提供されるAPI(Application Program Interface)を呼び出すためのいわゆるダイナミックリンキング法(dynamic linking method)を用いているので、元の実行ファイルは、オペレーティングシステムへの呼び出しを有するのが普通である。このような呼び出しは、当該オペレーティングシステムのAPIサービスを実現するライブラリ又は機能への呼び出しとすることができる。 This packs / wraps the original executable file into a new executable file with the alternative execution environment, and calls from the original executable file to the operating system of the computing device can no longer be examined or manipulated. Can not. This protects the executable file against any type of inspection and manipulation. Because current operating systems and compilers typically use a so-called dynamic linking method to call an API (Application Program Interface) provided by the operating system, the original executable file is passed to the operating system. It is normal to have Such a call may be a call to a library or function that implements the API service of the operating system.
この明細書を通じて、「検査及び/又は操作」なる文言は、盗聴、改竄、調査、リバースエンジニアリング、APIハイジャック、API導入及びAPIスパイ行為のいずれかをカバーすることを意味するものである。さらに、「実行ファイル」なる文言は、プログラムを含むソフトウェア又はファイル、すなわちコンピュータ装置におけるプログラムとして実行させ又は走らせることの可能なソフトウェア又はファイルをカバーすることを意味する。「OS呼び出しの実現」なる文言は、元の実行ファイルにおけるOS呼び出しに対応する呼び出しを行う方法を含むことを意味する。最後に、「呼び出し」なる文言は、「コマンド」又は「リクエスト」と同義語であることを意味する。 Throughout this specification, the term “inspection and / or manipulation” is meant to cover any of wiretapping, tampering, investigation, reverse engineering, API hijacking, API introduction, and API spying. Further, the term “executable file” is meant to cover software or files containing programs, ie, software or files that can be executed or run as programs on a computer device. The phrase “realization of OS call” means to include a method of making a call corresponding to the OS call in the original executable file. Finally, the term “call” means synonymous with “command” or “request”.
好ましくは、本方法は、前記元の実行ファイルにおける呼び出しを前記代替えの実行環境において実現される対応の呼び出しに変換するステップをさらに有する。本方法のこの変換ステップにおいて、例えばダイナミックにリンクづけされるライブラリへの当該元の実行ファイルにおける参照又は呼び出しは、代替えの実行環境において実現される呼び出しにより置換され又は当該呼び出しに変換される。これにより、新しい実行ファイルの機能が元の実行ファイルの機能と対応することが保証される。元の実行ファイルにおける呼び出しを変換するステップは、ダイナミックにリンクづけされるライブラリへの参照を含む元の実行ファイルにおけるテーブルを通じて動作し代替えの実行環境において実現される呼び出しへのこうした参照を置換することによって行うことができる。 Preferably, the method further comprises the step of converting a call in the original executable file into a corresponding call implemented in the alternative execution environment. In this conversion step of the method, for example, a reference or call in the original executable file to a dynamically linked library is replaced or converted to a call implemented in an alternative execution environment. This ensures that the function of the new executable file corresponds to the function of the original executable file. The step of translating calls in the original executable replaces these references to calls implemented in an alternative execution environment that operates through a table in the original executable that contains references to dynamically linked libraries. Can be done by.
好適実施例において、前記代替えの実行環境は、仮想オペレーティングシステムを有する。この仮想オペレーティングシステムは、元の実行ファイルにおける呼び出しが仮想オペレーティングシステムにおける対応の呼び出しに変換されたときに、元の実行ファイルに関連づけてオペレーティングシステムのタスクを実行するように構成される。但し、仮想オペレーティングシステムにおけるこのような呼び出しは、仮想オペレーティングシステムの外において検出可能とはならない。 In a preferred embodiment, the alternative execution environment comprises a virtual operating system. The virtual operating system is configured to perform an operating system task in association with the original execution file when a call in the original execution file is translated into a corresponding call in the virtual operating system. However, such calls in the virtual operating system will not be detectable outside the virtual operating system.
本発明による方法の他の好適実施例においては、前記代替えの実行環境はさらに、仮想ファイルシステム、仮想レジストリ、仮想プロセスマネージャ、仮想リソースマネージャのうちの1つ又は複数の構成部を有する。これら構成部の各々が代替えの実行環境に含まれるべきかどうかは、元の実行ファイルにおいてどの構成部が呼び出されるかによることになるので、元の実行ファイルにおいて呼び出されない構成部は、代替えの実行環境に含まれる必要はなく、逆に、代替えの実行環境に含まれる必要がある場合は元の実行ファイルにおいて構成部が呼び出されるものとなる。 In another preferred embodiment of the method according to the invention, said alternative execution environment further comprises one or more components of a virtual file system, a virtual registry, a virtual process manager, a virtual resource manager. Whether each of these components should be included in the alternative execution environment depends on which component is called in the original executable, so components that are not called in the original executable are It is not necessary to be included in the execution environment, and conversely, if it is necessary to be included in the alternative execution environment, the component is called in the original execution file.
好ましくは、本発明による方法における組み合わせのステップは、前記新しい実行ファイルをブートストラップコードと組み合わせることを有する。これにより、新しい実行ファイルを、コンピュータ装置の中へロードし、ブートストラップコードを用いることにより当該コンピュータ上で実行することができる。 Preferably, the combining step in the method according to the invention comprises combining the new executable with bootstrap code. This allows a new executable file to be loaded into the computer device and executed on the computer by using the bootstrap code.
本方法の好適実施例において、さらに、元の実行ファイルにおける呼び出しを識別する前置ステップを有し、これにより、代替えの実行環境を発生するステップは、元の実行ファイルにおいて識別される呼び出しについてのみ実現を生じさせることを含む。これにより、過度に複雑又は大規模な代替えの実行環境を発生することが回避される。 In a preferred embodiment of the method, the method further comprises a pre-step for identifying calls in the original executable file, whereby the step of generating an alternative execution environment is only for calls identified in the original executable file. Including producing realizations. This avoids generating an overly complex or large alternative execution environment.
本方法のまた別の好適実施例において、当該代替えの実行環境は、最も一般的なオペレーティングシステム(OS)呼び出しの実現を有するように発生される。こうした最も一般的なオペレーティングシステム(OS)呼び出しには、例えば、ファイルシステム呼び出し、レジストリ呼び出し、処理マネージメント呼び出し及びリソースマネージメント呼び出しがある。これにより、元の実行ファイルにおける呼び出しの識別が回避される。
以下、本発明を、好適な実施例について図面を参照しつつ詳細に説明する。
In yet another preferred embodiment of the method, the alternative execution environment is generated to have the most common operating system (OS) call implementation. These most common operating system (OS) calls include, for example, file system calls, registry calls, processing management calls, and resource management calls. This avoids call identification in the original executable.
The present invention will be described in detail below with reference to the drawings with regard to preferred embodiments.
図の説明全体を通して、その構成部は、コンピュータ装置において実現可能なハードウェア、ソフトウェア又はミドルウェアの一部であると理解されたい。さらに、当該コンピュータ装置は、例えばコンピュータ装置内へ初期時にロードされた後にそのコンピュータ装置における他の全てのプログラムを管理するプログラムなどのオペレーティングシステム(OS)を有することも理解されたい。他のプログラムは、実行ファイル又はアプリケーションプログラムと呼ばれる。実行ファイル又はアプリケーションプログラムは、規定されたアプリケーションプログラムインターフェース(OS API)を通じたサービスのために呼び出し又はリクエストをなすことによってオペレーティングシステムを用いる。このOS APIは、図において水平線として示され、OS APIへの呼び出しは、これを指し示す矢印により示される。オペレーティングシステム(OS)への直接の呼び出しは、この水平線の下に位置づけられる要素を指し示す矢印として示される。 Throughout the description of the figures, the components should be understood to be part of hardware, software or middleware that can be implemented in a computer device. Further, it should also be understood that the computer device has an operating system (OS) such as a program that manages all other programs in the computer device after it is initially loaded into the computer device. Other programs are called executable files or application programs. An executable file or application program uses the operating system by making calls or requests for services through a defined application program interface (OS API). This OS API is shown as a horizontal line in the figure, and calls to the OS API are indicated by arrows pointing to it. Direct calls to the operating system (OS) are shown as arrows pointing to elements located below this horizontal line.
また、このコンピュータ装置は、レジストリ、記憶手段、プロセッサユニット、入力/出力手段、表示手段などの適切な構成部を有するのが普通であると理解されたい。但し、図にはこれらは示されていない。 It should also be understood that the computer device typically has appropriate components such as a registry, storage means, processor unit, input / output means, display means, and the like. However, these are not shown in the figure.
図1は、従来技術の実行環境の構成部の概略図である。示されているのは、元の実行ファイル10である。この実行ファイルは、矢印10aにより示されるOS APIへ呼び出しをなすことができる。付加的実行ファイル20は、元の実行ファイル10の実行に関与させられるようにすることができる。これら付加的実行ファイル20は、それら自身が、矢印20aにより示されるOS APIへの呼び出しをなしうる。矢印30aは、ファイルシステムにおいて元の実行ファイル10又は付加的実行ファイル20からファイル及び/又はディレクトリ30への呼び出しを示す。矢印40aは、例えばレジストリ設定40を読み取るために元の実行ファイル10又は付加的実行ファイル20からレジストリへの呼び出しを示す。最後に、矢印50aは、元の実行ファイル10又は付加的実行ファイル20から付加的リソース50への呼び出しを示す。このような呼び出し30a,40a,50aは、オペレーティングシステムOSにより処理され、例えば、当該ファイル、ディレクトリ、リソースなどへのアクセスを管理するOSへ送られる。
FIG. 1 is a schematic diagram of components of an execution environment of the prior art. Shown is the
図1のこれまでの説明から、元の実行ファイルは、例えばAPIハイジャック又はAPI導入法によりOS API及びOSへの呼び出し10a〜50aを暴くようにリバースエンジニアリングにかけられうる。元の実行ファイル10がコンピュータ装置におけるメモリ装置のファイルをアクセスし又はコンピュータ装置におけるレジストリにおけるキーをアクセスしようとする場合、APIスパイツールを当該呼び出しを監視しスパイ対象とするよう用いることができる。
From the previous description of FIG. 1, the original executable file can be reverse engineered to expose the OS API and calls 10a-50a to the OS, for example by API hijacking or API introduction methods. If the
図2は、本発明による代替えの実行環境100の構成部の概略図である。代替えの実行環境100は、仮想オペレーティングシステム101、仮想ファイルシステム110、仮想レジストリ120並びに仮想プロセス及びリソースマネージャ130を有する。仮想OS101は、「ファイル作成」(Create File)、「ファイルオープン」(Open File)、「ファイル読み出し」(Read File)などのファイルI/Oについて仮想ファイルシステム110に呼び出し111をなすことができる。さらに、仮想OS101は、「キー開放」(Open Key)、「キー読み出し」(Read Key)などのレジストリI/Oに関して仮想レジストリ120への呼び出し121をなすことができる。最後に、仮想OSは、「プロセス作成」(Create Process)、「ライブラリロード」(Load Library)、「リソース取得」(Get Resource)など、プロセスマネージメントに関する呼び出し及び/又はリソースマネージメント132に関する呼び出しを、仮想プロセス及びリソースマネージャ130に対して行うことができる。
FIG. 2 is a schematic diagram of components of an
図2に示される代替えの実行環境の構成部は、模範例に過ぎず、他の又は代替えの構成部を元の実行ファイルにおける呼び出しに応じて代替えの実行環境の一部とすることができる。 The components of the alternative execution environment shown in FIG. 2 are merely exemplary, and other or alternative components can be part of the alternative execution environment in response to a call in the original execution file.
図3は、本発明による新しい実行ファイル1000の概略図である。新しい実行ファイル1000は、代替えの実行環境100において元の実行ファイル10を処理しラッピングしたことの結果である。したがって、新しい実行ファイル1000は、図1に示される元の実行ファイル10、付加的実行ファイル20、付加的ファイル及びディレクトリ30、レジストリ設定40並びに付加的リソース50を含む。さらに、新しい実行ファイル1000は、図2に示される仮想OS100、仮想ファイルシステム110、仮想レジストリ120並びに仮想プロセス及びリソースマネージャ130と、呼び出し111,121,131及び132とを含む。さらに、図3に示されるように、新しい実行ファイル1000は、新しい実行ファイル1000をメモリにロードしそれが実行を開始することを可能にするためのブートストラップコード1010を有する。
FIG. 3 is a schematic diagram of a new
なお、図1及び図3における元の実行ファイル10は、圧縮可能である。
The original
図4は、本発明の模範的方法のフローチャートである。図示の方法は、ステップAにおいて開始する。後続のステップにおいて、ステップBでは、元の実行ファイルにおける呼び出しが識別される。これら呼び出しは、通常はオペレーティングシステムへの呼び出しである。その後、ステップCにおいて、代替えの実行環境が発生される。この代替えの実行環境は、オペレーティングシステム呼び出しの実現を有するのがよい。代替えの実行環境は、仮想オペレーティングシステムと、恐らくは仮想ファイルシステム、仮想レジストリ、仮想プロセスマネージャ、仮想リソースマネージャのうちの1つ又は複数とを有することができる。その後、ステップDにおいて、ステップBにおいて識別された元の実行ファイルにおける呼び出しは、代替えの実行環境において実現される対応の呼び出しに変換される。この方法は、ステップEへ継続し、そこで元の実行ファイル及び代替えの実行環境が組み合わされて新しい実行ファイルとなる。好ましくは、この新しい実行ファイルも、ブートストラップコードと組み合わされる。このフローはステップFにおいて終了する。 FIG. 4 is a flowchart of an exemplary method of the present invention. The illustrated method starts at step A. In a subsequent step, in step B, a call in the original executable file is identified. These calls are usually calls to the operating system. Thereafter, in step C, an alternative execution environment is generated. This alternative execution environment may have an implementation of an operating system call. An alternative execution environment may have a virtual operating system and possibly one or more of a virtual file system, a virtual registry, a virtual process manager, a virtual resource manager. Thereafter, in step D, the call in the original executable file identified in step B is translated into a corresponding call implemented in an alternative execution environment. The method continues to step E where the original executable file and the alternative execution environment are combined into a new executable file. Preferably, this new executable is also combined with the bootstrap code. This flow ends in step F.
なお、この明細書において用いられる場合に「有する」,「有し」なる文言は、記述した特徴、整数、ステップ又は構成部の存在を特定するために使われているが、1つ又は複数の他の特徴、整数、ステップ、構成部又はそれらのグループの存在又は追加を排除するものではないことに留意されたい。単に或る特定の方策が相互に異なる従属請求項に挙げられているという点又は異なる実施例において説明されているという点は、これら方策の組み合わせが活用できないことを示すものではない。 As used in this specification, the terms “having” and “having” are used to specify the existence of the described feature, integer, step or component, but may include one or more Note that the presence or addition of other features, integers, steps, components or groups thereof is not excluded. The mere fact that certain measures are recited in mutually different dependent claims or described in different embodiments does not indicate that a combination of these measures cannot be utilized.
Claims (9)
・オペレーティングシステム呼び出しの実現を有する代替えの実行環境を発生するステップと、
・当該元の実行ファイルと前記代替えの実行環境とを組み合わせて新しい実行ファイルにするステップと、
を有する方法。 A method for protecting an executable file in a computer device against inspection and / or manipulation, the computer device having an execution environment for execution of the execution file,
Generating an alternative execution environment having an implementation of an operating system call;
Combining the original executable file and the alternative execution environment into a new executable file;
Having a method.
前記元の実行ファイルにおける呼び出しを識別し、これにより前記代替えの実行環境を発生するステップは、前記元の実行ファイルにおいて識別される呼び出しについてのみ実現を生じることを有するようにする前置ステップをさらに有する、方法。 A method according to any one of claims 1 to 5, comprising
Identifying a call in the original executable and thereby generating the alternative execution environment further comprises a pre-step to have a realization only for the call identified in the original executable Having a method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05102722 | 2005-04-07 | ||
PCT/IB2006/051003 WO2006106469A1 (en) | 2005-04-07 | 2006-04-03 | Software protection |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008535117A true JP2008535117A (en) | 2008-08-28 |
Family
ID=36763097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008504888A Pending JP2008535117A (en) | 2005-04-07 | 2006-04-03 | Software protection |
Country Status (7)
Country | Link |
---|---|
US (1) | US20080216071A1 (en) |
EP (1) | EP1869606A1 (en) |
JP (1) | JP2008535117A (en) |
KR (1) | KR20080005493A (en) |
CN (1) | CN101151617A (en) |
TW (1) | TW200705236A (en) |
WO (1) | WO2006106469A1 (en) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100461200C (en) * | 2006-12-22 | 2009-02-11 | 北京飞天诚信科技有限公司 | Method and device for realizing software protection in software protection device |
US20110035601A1 (en) * | 2007-12-21 | 2011-02-10 | University Of Virginia Patent Foundation | System, method and computer program product for protecting software via continuous anti-tampering and obfuscation transforms |
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 |
KR101013509B1 (en) * | 2008-01-04 | 2011-02-11 | 주식회사 마크애니 | Virtual application system, storage device, virtual application execution method and virtual environment protection method |
FR2942951B1 (en) | 2009-03-12 | 2012-03-30 | Euros Sa | SPINAL IMPLANT WITH LOCKING BALL JOINT |
KR20140053754A (en) * | 2010-03-25 | 2014-05-08 | 어데토 캐나다 코포레이션 | System and method for dynamic, variably-timed operation paths as a resistance to side channel and repeated invocation attacks |
US20120102103A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Running legacy applications on cloud computing systems without rewriting |
CN102779030B (en) * | 2011-05-11 | 2015-08-19 | 奇智软件(北京)有限公司 | A kind of manner of execution of registry operations and device |
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 |
US10545775B2 (en) | 2013-06-28 | 2020-01-28 | Micro Focus Llc | Hook framework |
US10044695B1 (en) | 2014-09-02 | 2018-08-07 | Amazon Technologies, Inc. | Application instances authenticated by secure measurements |
US9491111B1 (en) | 2014-09-03 | 2016-11-08 | Amazon Technologies, Inc. | Securing service control 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 |
US10079681B1 (en) | 2014-09-03 | 2018-09-18 | Amazon Technologies, Inc. | Securing service layer on third party hardware |
US9442752B1 (en) | 2014-09-03 | 2016-09-13 | Amazon Technologies, Inc. | Virtual secure execution environments |
US10061915B1 (en) | 2014-09-03 | 2018-08-28 | Amazon Technologies, Inc. | Posture assessment in a secure execution environment |
US9584517B1 (en) * | 2014-09-03 | 2017-02-28 | Amazon Technologies, Inc. | Transforms within secure execution environments |
US9754116B1 (en) | 2014-09-03 | 2017-09-05 | Amazon Technologies, Inc. | Web services in secure execution environments |
CN108280329B (en) * | 2018-01-22 | 2020-06-02 | 北京数科网维技术有限责任公司 | Verification and release method for software operation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312170A (en) * | 2001-04-10 | 2002-10-25 | Ricoh Co Ltd | Hybrid disc |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2708608B2 (en) * | 1990-05-25 | 1998-02-04 | 富士通株式会社 | Virtual machine IPL processing method |
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 |
US6694435B2 (en) * | 2001-07-25 | 2004-02-17 | Apple Computer, Inc. | Method of obfuscating computer instruction streams |
JP2004206269A (en) * | 2002-12-24 | 2004-07-22 | Sony Corp | Information processing device and its method |
US8694802B2 (en) * | 2004-04-30 | 2014-04-08 | Apple Inc. | System and method for creating tamper-resistant code |
-
2006
- 2006-04-03 WO PCT/IB2006/051003 patent/WO2006106469A1/en not_active Application Discontinuation
- 2006-04-03 KR KR1020077022540A patent/KR20080005493A/en not_active Withdrawn
- 2006-04-03 EP EP06727805A patent/EP1869606A1/en not_active Ceased
- 2006-04-03 CN CNA2006800108611A patent/CN101151617A/en active Pending
- 2006-04-03 US US11/910,530 patent/US20080216071A1/en not_active Abandoned
- 2006-04-03 JP JP2008504888A patent/JP2008535117A/en active Pending
- 2006-04-04 TW TW095112042A patent/TW200705236A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312170A (en) * | 2001-04-10 | 2002-10-25 | Ricoh Co Ltd | Hybrid disc |
Also Published As
Publication number | Publication date |
---|---|
TW200705236A (en) | 2007-02-01 |
CN101151617A (en) | 2008-03-26 |
KR20080005493A (en) | 2008-01-14 |
EP1869606A1 (en) | 2007-12-26 |
WO2006106469A1 (en) | 2006-10-12 |
US20080216071A1 (en) | 2008-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008535117A (en) | Software protection | |
CN106462476B (en) | Extends an app's functionality to another app's compatible extension points that allow extensions | |
US20070271446A1 (en) | Application Execution Device and Application Execution Device Application Execution Method | |
CN104239757B (en) | Application program reversing-preventing method and device and operation method and terminal | |
CN112417484B (en) | Resource file protection method, device, computer equipment and storage medium | |
Busch et al. | Unearthing the {TrustedCore}: A critical review on {Huawei’s} trusted execution environment | |
CN111400757B (en) | Method for preventing native code in android third-party library from revealing user privacy | |
JPWO2007011001A1 (en) | Execution device | |
EP2831790A1 (en) | Secured execution of a web application | |
WO2011114655A1 (en) | Information processing device, virtual machine generation method, and application software distribution system | |
JP4890569B2 (en) | Prevent executable code changes | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
JP2009501369A (en) | Changing the code execution path using kernel mode redirection | |
KR102039380B1 (en) | Apparatus and Method of Providing Security, and Apparatus and Method of Executing Security for Protecting Code of Shared Object | |
US10719456B2 (en) | Method and apparatus for accessing private data in physical memory of electronic device | |
JP4526383B2 (en) | Tamper evident removable media for storing executable code | |
CN100470473C (en) | Computer system and method of installing software on computer system | |
CN108304158B (en) | Dynamic library proxy method and device | |
JP2008040853A (en) | Application execution method and application execution apparatus | |
JP2013041598A (en) | Program code generation method, program development system, portable data carrier, and program | |
WO2006123875A1 (en) | Method of preventing audio-data capture in windows multimedia system | |
CN106648770B (en) | Generation method, loading method and device of application program installation package | |
JP2021005375A (en) | Method and device for removing obfuscation | |
CN118094597B (en) | An encryption system and method applied to Android virtual framework | |
CN111562916B (en) | Method and device for sharing algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120131 |