[go: up one dir, main page]

JP2008535117A - Software protection - Google Patents

Software protection Download PDF

Info

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
Application number
JP2008504888A
Other languages
Japanese (ja)
Inventor
ニコルコ ギダロフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2008535117A publication Critical patent/JP2008535117A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security 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 original executable file 10. This executable file can make a call to the OS API indicated by arrow 10a. The additional executable file 20 can be involved in the execution of the original executable file 10. These additional executable files 20 can themselves make calls to the OS API as indicated by arrow 20a. An arrow 30a indicates a call from the original executable file 10 or additional executable file 20 to the file and / or directory 30 in the file system. Arrow 40a indicates a call to the registry from the original executable file 10 or additional executable file 20 to read the registry settings 40, for example. Finally, the arrow 50a indicates a call from the original executable file 10 or the additional executable file 20 to the additional resource 50. Such calls 30a, 40a, and 50a are processed by the operating system OS, and are sent to, for example, an OS that manages access to the file, directory, and resource.

図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 original executable file 10 attempts to access a file in a memory device on the computer device or access a key in the registry on the computer device, an API spy tool can be used to monitor the call and target it.

図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 alternative execution environment 100 according to the present invention. The alternative execution environment 100 includes a virtual operating system 101, a virtual file system 110, a virtual registry 120, and a virtual process and resource manager 130. The virtual OS 101 can make a call 111 to the virtual file system 110 for file I / O such as “Create File”, “Open File”, and “Read File”. Further, the virtual OS 101 can make a call 121 to the virtual registry 120 for registry I / O such as “Open Key” and “Read Key”. Finally, the virtual OS virtually calls process management and / or resource management 132 calls such as “Create Process”, “Load Library”, “Get Resource”, etc. This can be done for the process and resource manager 130.

図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 executable file 1000 according to the present invention. The new executable file 1000 is the result of processing and wrapping the original executable file 10 in the alternative execution environment 100. Accordingly, the new executable file 1000 includes the original executable file 10, the additional executable file 20, the additional files and directories 30, the registry settings 40, and the additional resources 50 shown in FIG. Further, the new executable file 1000 includes the virtual OS 100, the virtual file system 110, the virtual registry 120, the virtual process and resource manager 130, and the calls 111, 121, 131, and 132 shown in FIG. Further, as shown in FIG. 3, the new executable file 1000 has bootstrap code 1010 for loading the new executable file 1000 into memory and allowing it to begin execution.

なお、図1及び図3における元の実行ファイル10は、圧縮可能である。   The original executable file 10 in FIGS. 1 and 3 can be compressed.

図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.

従来技術の実行環境の構成部の概略図。Schematic of the structural part of the execution environment of a prior art. 本発明による代替えの実行環境の構成部の概略図。FIG. 3 is a schematic diagram of components of an alternative execution environment according to the present invention. 本発明による新しい実行ファイルの概略図。FIG. 3 is a schematic diagram of a new executable file according to the present invention. 本発明の模範的方法のフローチャート。2 is a flowchart of an exemplary method of the present invention.

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.
請求項1に記載の方法であって、前記元の実行ファイルにおける呼び出しを前記代替えの実行環境において実現される対応の呼び出しに変換するステップをさらに有する方法。   The method of claim 1, further comprising the step of converting a call in the original executable file into a corresponding call implemented in the alternative execution environment. 請求項1又は2に記載の方法であって、前記代替えの実行環境は、仮想オペレーティングシステムを有する、方法。   The method according to claim 1 or 2, wherein the alternative execution environment comprises a virtual operating system. 請求項3に記載の方法であって、前記代替えの実行環境はさらに、仮想ファイルシステム、仮想レジストリ、仮想プロセスマネージャ、仮想リソースマネージャのうちの1つ又は複数の構成部を有する、方法。   4. The method of claim 3, wherein the 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. 請求項1ないし4のうちいずれか1つに記載の方法であって、前記組み合わせるステップは、前記新しい実行ファイルをブートストラップコードと組み合わせることを有する、方法。   5. A method as claimed in any one of the preceding claims, wherein the combining step comprises combining the new executable with bootstrap code. 請求項1ないし5のうちいずれか1つに記載の方法であって、
前記元の実行ファイルにおける呼び出しを識別し、これにより前記代替えの実行環境を発生するステップは、前記元の実行ファイルにおいて識別される呼び出しについてのみ実現を生じることを有するようにする前置ステップをさらに有する、方法。
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.
請求項1ないし6のうちいずれか1つに記載の方法であって、前記代替えの実行環境は、最も一般的なオペレーティングシステム呼び出しの実現を有するように発生される、方法。   7. A method as claimed in any preceding claim, wherein the alternative execution environment is generated to have the most common operating system call implementation. データ処理装置に、請求項1ないし7のうちいずれか1つに記載の方法のステップを実行させることを、当該コンピュータプログラムが前記データ処理装置において実行されるときになすよう構成されるプログラムコード手段を有するコンピュータプログラム。   Program code means arranged to cause a data processing device to execute the steps of the method according to any one of claims 1 to 7 when the computer program is executed in the data processing device. A computer program comprising: 請求項1ないし7のうちいずれか1つに記載の方法を行うように構成された第1の処理回路を有するデータ処理装置。   A data processing apparatus comprising a first processing circuit configured to perform the method of any one of claims 1-7.
JP2008504888A 2005-04-07 2006-04-03 Software protection Pending JP2008535117A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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