JP2022538512A - メモリ上に実行可能イメージをロードする方法およびシステム - Google Patents

メモリ上に実行可能イメージをロードする方法およびシステム Download PDF

Info

Publication number
JP2022538512A
JP2022538512A JP2021563710A JP2021563710A JP2022538512A JP 2022538512 A JP2022538512 A JP 2022538512A JP 2021563710 A JP2021563710 A JP 2021563710A JP 2021563710 A JP2021563710 A JP 2021563710A JP 2022538512 A JP2022538512 A JP 2022538512A
Authority
JP
Japan
Prior art keywords
executable
executable file
memory space
file
loading
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.)
Granted
Application number
JP2021563710A
Other languages
English (en)
Other versions
JP7348701B2 (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.)
Line Plus Corp
Original Assignee
Line Plus Corp
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 Line Plus Corp filed Critical Line Plus Corp
Publication of JP2022538512A publication Critical patent/JP2022538512A/ja
Application granted granted Critical
Publication of JP7348701B2 publication Critical patent/JP7348701B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/445Program loading or initiating

Landscapes

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

Abstract

Figure 2022538512000001
メモリ上に実行可能イメージをロードする方法およびシステムを開示する。一実施形態に係る実行可能イメージロード方法は、実行可能ファイルをサーバに格納する段階、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、前記サーバから前記実行可能ファイルを受信して、前記受信した実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階を含む。

Description

以下の説明は、メモリ上に実行可能イメージをロードする方法およびシステムに関する。
リバースエンジニアリング(Reverse Engineering)では、特定のプログラムの動作原理を暴くことが可能であり、このような動作原理を利用して特定のプログラムの動作方式を変更することができる。一例として、クライアント端末に配布されたアプリケーションは、リバースエンジニアリングによってその動作方式を把握することができるため、このようなリバースエンジニアリングによってアプリケーション機能を盗用することが可能となる。また、アプリケーションの本来の機能を修正してアプリケーションが意図する動作とは違った動作させることにより、アプリケーションが提供するサービスと該当のサービスを提供するシステムの信頼性に悪影響を与えることもできる。
このようなリバースエンジニアリング過程からプログラムを保護するために、実行ファイルを難読化して本来のコードおよびデータを見ることができないようにする方法が使用された。一例として、コード難読化は、プログラミング言語で作成されたコードを読み取り難くするためにプログラムコードの一部または全部を変更する方法の1つであって、コードの可読性を低めることによってリバースエンジニアリングへの対策を講じている。例えば、韓国登録特許第10-1328012号公報は、アプリケーションコード難読化装置およびその方法に関するものであって、アプリケーションに使用されるコードのうちの重要コードおよび重要コードを呼び出すための呼出しコードをネイティブコード形態に変換する技術を開示している。
しかし、実行可能ファイル(一例として、exe、dll、so、dynlib、apk、ipa、dexなどの拡張子を持つファイル)に難読化を適用した場合であっても、その内容は常にディスクにファイル形態で格納されて存在するようになるため、従来のファイルで発生していた問題が常に存在するようになる。例えば、該当のファイルは、他の場所に簡単にコピーすることができ、ファイルの実行時点に作動するアンチリバーシング(Anti-reversing)に関連する機能がディスクでは実行される前であるため、ファイルの内容を制約なく参照することができる。また、該当の実行可能ファイルの名前を基準に、実行時点にロードされたメモリの位置を簡単に確認できてしまうという問題もそのまま存在するようになる。
実行可能ファイルをディスクではなく実行可能イメージの形態でメモリ上に位置させ、実行可能ファイルの実行時に、メモリ上に位置する実行可能イメージを参照して実行可能イメージのプログラムコードをメモリ上にロードすることにより、悪意のあるユーザによって実行可能ファイルが盗用および/または変調されることを防ぐことができる、実行可能イメージロード方法、前記方法を実行するコンピュータ装置、前記コンピュータ装置と結合して前記方法を前記コンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムおよびその記録媒体を提供する。
コンピュータ装置が含む少なくとも1つのプロセッサが実行する実行可能イメージロード方法であって、前記少なくとも1つのプロセッサにより、実行可能ファイルをサーバに格納する段階、前記少なくとも1つのプロセッサにより、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、前記少なくとも1つのプロセッサにより、前記サーバから前記実行可能ファイルを受信して、前記受信した実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および前記少なくとも1つのプロセッサにより、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階を含む、実行可能イメージロード方法を提供する。
コンピュータ装置が含む少なくとも1つのプロセッサが実行する実行可能イメージロード方法であって、前記少なくとも1つのプロセッサにより、実行可能ファイルを暗号化して前記コンピュータ装置のローカルストレージに格納する段階、前記少なくとも1つのプロセッサにより、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、前記少なくとも1つのプロセッサにより、前記ローカルストレージに格納された前記暗号化された実行可能ファイルを復号化して、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および前記少なくとも1つのプロセッサにより、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階を含む、実行可能イメージロード方法を提供する。
コンピュータ装置と結合して前記方法を前記コンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
前記方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、実行可能ファイルをサーバに格納し、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当て、前記サーバから前記実行可能ファイルを受信し、前記受信した実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードし、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行することを特徴とする、コンピュータ装置を提供する。
コンピュータ装置で読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、実行可能ファイルを暗号化して前記コンピュータ装置のローカルストレージに格納し、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当て、前記ローカルストレージに格納された前記暗号化された実行可能ファイルを復号化して、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードし、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行することを特徴とする、コンピュータ装置を提供する。
実行可能ファイルをディスクではなく実行可能イメージの形態でメモリ上に位置させ、実行可能ファイルの実行時に、メモリ上に位置する実行可能イメージを参照して実行可能イメージのプログラムコードをメモリ上にロードすることにより、悪意のあるユーザによって実行可能ファイルが盗用および/または変調されることを防ぐことができる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。 本発明の一実施形態における、実行可能イメージロード方法の例を示したフローチャートである。 本発明の一実施形態における、実行可能イメージをメモリにロードする過程の例を示した図である。 本発明の一実施形態における、実行可能イメージロード方法の他の例を示したフローチャートである。 本発明の一実施形態における、実行可能イメージをメモリにロードする過程の例を示した図である。 本発明の一実施形態における、実行可能イメージを利用してプログラムを実行する方法の例を示したフローチャートである。 本発明の一実施形態における、実行可能イメージを利用してプログラムを実行する過程の例を示した図である。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係る実行可能イメージロードシステムは、少なくとも1つのコンピュータ装置によって実現されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の実施形態に係る実行可能イメージロード方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して前記方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの1つを説明するための一例に過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160のそれぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ファイル配布サービス、対話サービス、地図サービス、翻訳サービス、金融サービス、決済サービス、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービスなど)を提供するシステムであってよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140のそれぞれやサーバ150、160のそれぞれは、図2に示すコンピュータ装置200によって実現されてよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワークを介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカなどのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置として構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、実行可能イメージロード方法の例を示したフローチャートである。本実施形態に係る実行可能イメージロード方法は、図2を参照しながら説明したコンピュータ装置200によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図3の方法に含まれる段階310~340を実行するようにコンピュータ装置200を制御してよい。
段階310で、コンピュータ装置200は、実行可能ファイルをサーバに格納してよい。本実施形態に係るコンピュータ装置200は、実行可能ファイルをディスクのようなコンピュータ装置200のローカルストレージに格納しない状態で実行可能ファイルを実行してよい。言い換えれば、実行可能ファイルのプログラムコードに対する保護のための領域を、ローカルストレージとコンピュータ装置200のメモリ210の2カ所から、メモリ210の1カ所に制限してよい。このため一実施形態として、コンピュータ装置200は、実行可能ファイルをローカルストレージではなくサーバに記録してよい。したがって、コンピュータ装置200の使用者は、サーバに記録された実行可能ファイルを任意に盗用したり変調したりすることができなくなる。また、実行可能ファイルをサーバに格納するコンピュータプログラムは、実行可能ファイルのプログラムコードとは別のプログラムコードとなるため、コンピュータ装置200の使用者は、実行可能ファイルがどこに格納されているか知ることができない。したがって、コンピュータ装置200の使用者は、メモリ210ではない、ディスクのようなローカルストレージから実行可能ファイルのプログラムコードを取得することができなくなる。
段階320で、コンピュータ装置200は、実行可能ファイルに対する実行要請に応答して、実行可能ファイルに対するメモリ空間を割り当ててよい。上述したように、実行可能ファイルは、コンピュータ装置200のローカルストレージには格納されていないため、コンピュータ装置200は、一般的な方式では実行可能ファイルを実行することができない。コンピュータ装置200に格納された実行可能ファイルを実行する場合、一般的に、コンピュータ装置200のオペレーティングシステムは、コンピュータ装置200のメモリ210に実行可能ファイルの実行のためのメモリ空間を割り当て、割り当てられたメモリに実行可能ファイルに対する実行可能イメージをロードする。この反面、本実施形態では、実行可能ファイルはサーバに格納されているため、コンピュータ装置200は、通常の方法では実行可能ファイルを実行させることができない。さらに、実行可能ファイルは、コンピュータ装置200のローカルストレージには格納されていないため、コンピュータ装置200は、コンピュータプログラムの制御にしたがい、サーバから受信される実行可能ファイルに対する実行可能イメージをそのままメモリ210上に格納するために、実行可能ファイルに対するメモリ空間を予め割り当ててよい。このために、コンピュータ装置200は、実行可能ファイルの第1サイズ以上の容量を有する任意のファイルをメモリにロードし、前記任意のファイルがロードされたアドレスのメモリ空間を前記実行可能ファイルのためのメモリ空間として割り当てるか、または予め割り当てられたメモリ空間のうちの少なくとも一部を前記実行可能ファイルのためのメモリ空間として割り当ててよい。言い換えれば、コンピュータ装置200は、実行可能ファイルを格納していないため、サーバから実行可能ファイルを受信する前にメモリ空間を予め割り当てなければならない。これにより、コンピュータ装置200は、任意のファイルを利用してメモリ空間を割り当てて活用するか、または予め割り当てられたメモリ空間の一部を活用してよい。
段階330で、コンピュータ装置200は、サーバから実行可能ファイルを受信して、受信した実行可能ファイルに対する実行可能イメージを割り当てられたメモリ空間にロードしてよい。上述したように、実行可能ファイルがコンピュータ装置200のローカルストレージに格納されないようにするために、サーバから受信される実行可能ファイルもコンピュータ装置200のローカルストレージに格納されない。コンピュータ装置200は、コンピュータプログラムの制御にしたがってサーバから実行可能ファイルを受信してよく、受信した実行可能ファイルは格納せずに、実行可能ファイルに対する実行可能イメージを、メモリ210上の割り当てられたメモリ空間にそのままロードしてよい。
一方、サーバに格納される実行可能ファイルは、暗号化されて格納されてもよい。例えば、コンピュータ装置200は、段階310で、実行可能ファイルを暗号化して、暗号化された実行可能ファイルをサーバに格納してよい。この場合、コンピュータ装置200は、段階330で、暗号化された実行可能ファイルをサーバから受信して復号化して、復号化された実行可能ファイルに対する実行可能イメージを割り当てられたメモリ空間にロードしてよい。
段階340で、コンピュータ装置200は、割り当てられたメモリ空間にロードされた実行可能イメージを参照して実行可能ファイルのプログラムコードを実行してよい。このために、コンピュータ装置200は、実行可能ファイルに格納された情報に基づいて、割り当てられたメモリ空間の属性、参照アドレス、エクスポート(export)アドレス、およびインポート(import)アドレスのうちの少なくとも1つを設定してよい。このような設定過程については、以下でさらに詳しく説明する。実行可能ファイルのプログラムコードを実行するために、コンピュータ装置200は、実行可能ファイルのプログラムコードで最初に実行されなければならない開始コードを、前記実行可能イメージまたは別の領域から探して実行してよい。基本的に、開始コードは、実行可能イメージ内に含まれているが、実行可能イメージの保護のための保護モジュールなどのアクティブ化のために、開始コードの位置が別の領域に変更されている場合もある。これにより、コンピュータ装置200は、このような開始コードを実行可能イメージや保護モジュール内のような別の領域から探して開始コードを実行することにより、実行可能ファイルのプログラムコードが実行されるようになる。
図4は、本発明の一実施形態における、実行可能イメージをメモリにロードする過程の例を示した図である。図4は、電子機器110とサーバ150を示している。電子機器110は、実行可能ファイル410を電子機器110のストレージA420には格納せず、サーバ150のストレージB430に格納してよい。例えば、電子機器110においてインストールされて実行された実行可能イメージロード方法のためのコンピュータプログラムは、電子機器110にインストールされるファイルの実行可能ファイルが、電子機器110のストレージA420ではなくサーバ150のストレージB430に格納されるように電子機器110を制御してよい。この場合、電子機器110は、実行可能ファイル410の実行が要求されるときに、コンピュータプログラムの制御にしたがい、実行可能ファイル410のためのメモリ空間を予めメモリ440上に割り当てた後、サーバ150から実行可能ファイル410を受信し、実行可能ファイル410に対する実行可能イメージ450を割り当てられたメモリ空間にロードしてよい。この後、電子機器110は、メモリ440に割り当てられたメモリ空間にロードされた実行可能イメージ450を参照して実行可能ファイル410のプログラムコードを実行してよい。メモリ440の揮発性を考慮するとき、実行可能ファイル410の実行が終われば、メモリ440から実行可能イメージを取得することはできなくなる。
図5は、本発明の一実施形態における、実行可能イメージロード方法の他の例を示したフローチャートである。本実施形態に係る実行可能イメージロード方法も、図2を参照しながら説明したコンピュータ装置200によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図5の方法に含まれる段階510~540を実行するようにコンピュータ装置200を制御してよい。
段階510で、コンピュータ装置200は、実行可能ファイルを暗号化してコンピュータ装置のローカルストレージに格納してよい。本実施形態に係るコンピュータ装置200は、実行可能ファイルをディスクのようなコンピュータ装置200のローカルストレージに格納するものの、実行可能ファイルを暗号化して格納してよい。したがって、実行可能ファイルの暗号化は、実行可能ファイルとは関係のない、本実施形態に係る実行可能イメージロード方法のためのコンピュータプログラムによって実行されるため、単に暗号化された実行可能ファイルを取得した使用者は、実行可能ファイルを任意に盗用したり変調したりすることができない。
段階520で、コンピュータ装置200は、実行可能ファイルに対する実行要請に応答して、実行可能ファイルに対するメモリ空間を割り当ててよい。実行可能ファイルが暗号化されてコンピュータ装置200に格納されている場合、コンピュータ装置200は、実行可能ファイルをそのまま実行させることができないため、一般的なファイル実行方法では実行可能ファイルを実行して実行可能ファイルのためのメモリ空間を割り当てることができない。これにより、コンピュータ装置200は、コンピュータプログラムの制御にしたがい、実行可能ファイルの第1サイズと同じ容量であるか、第1サイズ以上の容量を有する任意のファイルをコンピュータ装置200のメモリ210にロードし、このような任意のファイルがロードされたアドレスのメモリ空間を実行可能ファイルのためのメモリ空間として割り当ててよい。他の例として、コンピュータ装置200は、コンピュータプログラムの制御にしたがい、以前に既に割り当てられたメモリ空間の一部を実行可能ファイルのためのメモリ空間として割り当ててよい。
段階530で、コンピュータ装置200は、ローカルストレージに格納された暗号化された実行可能ファイルを復号化し、復号化された実行可能ファイルに対する実行可能イメージを割り当てられたメモリ空間にロードしてよい。実行可能ファイルの暗号化だけでなく、復号化も、実行可能ファイルとは関係のない、本実施形態に係る実行可能イメージロード方法のためのコンピュータプログラムによって実行されるため、単に暗号化された実行可能ファイルを取得した使用者は、実行可能ファイルを任意に盗用したり変調したりすることができない。
段階540で、コンピュータ装置200は、割り当てられたメモリ空間にロードされた実行可能イメージを参照して実行可能ファイルのプログラムコードを実行してよい。このために、コンピュータ装置200は、実行可能ファイルに格納された情報に基づいて、割り当てられたメモリ空間の属性、参照アドレス、エクスポートアドレス、およびインポートアドレスのうちの少なくとも1つを設定してよい。このような設定過程については、以下でさらに詳しく説明する。実行可能ファイルのプログラムコードを実行するために、コンピュータ装置200は、実行可能ファイルのプログラムコードで最初に実行されなければならない開始コードを前記実行可能イメージまたは別の領域から探して実行してよい。基本的に、開始コードは、実行可能イメージ内に含まれているが、実行可能イメージの保護のための保護モジュールなどのアクティブ化のために、開始コードの位置が別の領域に変更されている場合もある。これにより、コンピュータ装置200は、このような開始コードを実行可能イメージや保護モジュール内のような別の領域から探して開始コードを実行することにより、実行可能ファイルのプログラムコードが実行されるようになる。
図6は、本発明の一実施形態における、実行可能イメージをメモリにロードする過程の例を示した図である。図4の実施形態とは異なり、図6の実施形態では、電子機器110のストレージA430に、実行可能ファイル410を暗号化して生成された、暗号化された実行可能ファイル610が格納されてよい。このような実行可能ファイル410の暗号化および以下で説明する復号化(復元)は、電子機器110においてインストールされて実行されたコンピュータプログラムの制御にしたがって実行されてよい。このようなコンピュータプログラムによって実行可能ファイル410に対する実行要請が伝達されれば、電子機器110は、コンピュータプログラムの制御にしたがい、ストレージA430に格納された暗号化された実行可能ファイル610をインポートして実行可能ファイル410を復元した後、復元された実行可能ファイル410に対する実行可能イメージ450をメモリ440にロードしてよい。メモリ440上にメモリ空間を割り当てる方式は、図4の実施形態と同じであってよい。言い換えれば、実行可能ファイル410を格納することはできないため、電子機器110は、実行可能ファイル410に対する実行可能イメージ450をロードするためのメモリ空間を予め割り当ててよい。
図7は、本発明の一実施形態における、実行可能イメージを利用してプログラムを実行する方法の例を示したフローチャートである。図7の段階710~740は、図3を参照しながら説明した段階340または図5を参照しながら説明した段階540に含まれて実行されてよい。上述したように、コンピュータ装置200は、割り当てられたメモリ空間にロードされた実行可能イメージを参照して実行可能ファイルのプログラムコードを実行するときに、実行可能ファイルに格納された情報に基づいて、割り当てられたメモリ空間の属性、参照アドレス、エクスポートアドレス、およびインポートアドレスのうちの少なくとも1つを設定してよい。図7の段階710~740では、このような設定過程の例について説明する。
段階710で、コンピュータ装置200は、割り当てられたメモリ空間の属性を、読み取り(read)、書き込み(write)および実行(execute)のうちの少なくとも1つに設定してよい。一例として、コンピュータ装置200は、実行可能イメージに定義された各セグメントの属性に合うようにメモリ領域の属性(read、write、execute)を設定してよい。上述したように、実行可能ファイルに保護モジュールのような別の領域が含まれる場合、コンピュータ装置200は、別の領域に格納された各セグメント属性に合うように各メモリ領域の属性を設定してよい。このようなセグメントの属性は、実行可能ファイルを参照することで取得されてよい。言い換えれば、図3の実施形態でサーバから実行可能ファイルが受信された後に、または図5の実施形態で暗号化された実行可能ファイルが復号化された後に、受信または復号化された実行可能ファイルからセグメントの属性が取得されてよい。
段階720で、コンピュータ装置200は、再配置(relocation)情報を利用して、コードのアドレスをメモリ開始アドレス(base address)からの相対アドレスに修正して参照アドレスを設定してよい。例えば、コンピュータ装置200は、実行可能イメージに定義された再配置情報を利用して、現在のメモリ開始アドレスからの相対アドレスにコードのアドレスを修正してよい。また、上述したように、実行可能ファイルに保護モジュールのような別の領域が含まれる場合、コンピュータ装置200は、別の領域に格納された再配置情報を利用して、現在のメモリ開始アドレスからの相対アドレスにコードのアドレスを修正してよい。
段階730で、コンピュータ装置200は、実行可能イメージでエクスポートのためのアドレスを設定してよい。例えば、コンピュータ装置200は、エクスポートしなければならない関数や変数のアドレスを、割り当てられたメモリ空間に該当するアドレスに修正してよい。
段階740で、コンピュータ装置200は、実行可能イメージでインポートしなければならないアドレスを設定してよい。例えば、コンピュータ装置200は、インポートする外部ライブラリ(実行可能イメージの形態であって、メモリ上にロードされた外部ライブラリ)の現在アドレスを取得して参照アドレスを修正してよい。このために、コンピュータ装置200は、システムAPIを利用して、外部ライブラリのアドレスをインポートするか、またはメモリから外部ライブラリの位置およびエクスポート情報を直接照会してアドレスをインポートしてよい。
このように、実行可能ファイルに格納された情報に基づいて、割り当てられたメモリ空間の属性、参照アドレス、エクスポートアドレス、およびインポートアドレスのうちの少なくとも1つが設定されてから、図3の段階340または図5の段階540のように、割り当てられたメモリ空間にロードされた実行可能イメージを参照して実行可能ファイルのプログラムコードが実行されてよい。
図8は、本発明の一実施形態における、実行可能イメージを利用してプログラムを実行する過程の例を示した図である。図8は、本発明の実施形態に係る実行可能イメージロード方法によってメモリ上にロードされた実行可能イメージ1(810)と実行可能イメージ2(820)を示している。先ず、コンピュータ装置200は、それぞれのセグメント(Code、Data、Import、Export、Relocation)の属性にしたがい、対応するメモリ空間の属性を設定してよい。例えば、最初は、実行可能イメージのロードのために全体メモリ空間が書き込み(write)属性であってよく、この後に「Code」セグメントと「Data」セグメントが読み取り(Read)属性に設定されてよい。また、コンピュータ装置200は、実行可能イメージ1(810)に定義された再配置(Relocation)情報を利用して、コードのアドレスをメモリ開始アドレス(base address)からの相対アドレスに修正して参照アドレスを設定してよい。ここで、コードとは、「Code」セグメントの関数や「Data」セグメントの変数を意味してよい。また、コンピュータ装置200は、エクスポート(Export)しなければならない関数や変数のアドレスを割り当てられたメモリ上の該当するアドレスに修正してよく、実行可能イメージ2(820)のような外部ライブラリの現在のアドレスを取得して参照アドレスを修正することにより、インポート(Import)のためのアドレスを設定してよい。この後、コンピュータ装置200は、実行可能ファイルで最初に実行されなければならない開始コードを探して実行することにより、実行可能ファイルが実行されるようになる。
このように、本発明の実施形態によると、実行可能ファイルをディスクではなく実行可能イメージの形態でメモリ上に位置させ、実行可能ファイルの実行時に、メモリ上に位置する実行可能イメージを参照して実行可能イメージのプログラムコードをメモリ上にロードすることにより、悪意のあるユーザによって実行可能ファイルが盗用および/または変調されることを防ぐことができる。
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる多様な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に格納されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体も挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置または置換されたりしたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。

Claims (17)

  1. コンピュータ装置と結合して実行可能イメージロード方法を前記コンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
    前記実行可能イメージロード方法は、
    実行可能ファイルをサーバに格納する段階、
    前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、
    前記サーバから前記実行可能ファイルを受信して、前記受信した実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および
    前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階
    を含むことを特徴とする、コンピュータプログラム。
  2. 前記サーバから受信した実行可能ファイルは、前記コンピュータ装置のローカルストレージに格納されないことを特徴とする、請求項1に記載のコンピュータ装置。
  3. 前記格納する段階は、
    前記実行可能ファイルを暗号化して、前記暗号化された実行可能ファイルを前記サーバに格納し、
    前記ロードする段階は、
    暗号化された前記実行可能ファイルを前記サーバから受信して復号化し、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードすること
    を特徴とする、請求項1に記載のコンピュータプログラム。
  4. コンピュータ装置と結合して実行可能イメージロード方法を前記コンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
    前記実行可能イメージロード方法は、
    実行可能ファイルを暗号化して前記コンピュータ装置のローカルストレージに格納する段階、
    前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、
    前記ローカルストレージに格納された前記暗号化された実行可能ファイルを復号化して、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および
    前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階
    を含むことを特徴とする、コンピュータプログラム。
  5. 前記割り当てる段階は、
    前記実行可能ファイルの第1サイズ以上の容量を有する任意のファイルをメモリにロードして前記任意のファイルがロードされたアドレスのメモリ空間を前記実行可能ファイルのためのメモリ空間に割り当てるか、または予め割り当てられたメモリ空間のうちの少なくとも一部を前記実行可能ファイルのためのメモリ空間として割り当てるかすること
    を特徴とする、請求項1または4に記載のコンピュータプログラム。
  6. 前記実行する段階は、
    前記実行可能ファイルに格納された情報に基づいて、前記割り当てられたメモリ空間の属性、参照アドレス、エクスポート(export)アドレス、およびインポート(import)アドレスのうちの少なくとも1つを設定すること
    を特徴とする、請求項1または4に記載のコンピュータプログラム。
  7. 前記実行する段階は、
    前記割り当てられたメモリ空間の属性を、読み取り(read)、書き込み(write)、および実行(execute)のうちの少なくとも1つに設定する段階、
    再配置(relocation)情報を利用して、コードのアドレスをメモリ開始アドレス(base address)からの相対アドレスに修正して参照アドレスを設定する段階、
    前記実行可能イメージでエクスポートのためのアドレスを設定する段階、および
    前記実行可能イメージでインポートしなければならないアドレスを設定する段階
    を含むことを特徴とする、請求項1または4に記載のコンピュータプログラム。
  8. 前記実行する段階は、
    前記実行可能ファイルのプログラムコードで最初に実行されなければならない開始コードを前記実行可能イメージまたは別の領域から探して実行すること
    を特徴とする、請求項1または4に記載のコンピュータプログラム。
  9. コンピュータ装置が含む少なくとも1つのプロセッサが実行する実行可能イメージロード方法であって、
    前記少なくとも1つのプロセッサにより、実行可能ファイルをサーバに格納する段階、
    前記少なくとも1つのプロセッサにより、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、
    前記少なくとも1つのプロセッサにより、前記サーバから前記実行可能ファイルを受信して、前記受信した実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および
    前記少なくとも1つのプロセッサにより、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階
    を含む、実行可能イメージロード方法。
  10. 前記サーバから受信した実行可能ファイルは、前記コンピュータ装置のローカルストレージに格納されないことを特徴とする、請求項9に記載の実行可能イメージロード方法。
  11. 前記格納する段階は、
    前記実行可能ファイルを暗号化して、前記暗号化された実行可能ファイルを前記サーバに格納し、
    前記ロードする段階は、
    暗号化された前記実行可能ファイルを前記サーバから受信して復号化し、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードすること
    を特徴とする、請求項9に記載の実行可能イメージロード方法。
  12. コンピュータ装置が含む少なくとも1つのプロセッサが実行する実行可能イメージロード方法であって、
    前記少なくとも1つのプロセッサにより、実行可能ファイルを暗号化して前記コンピュータ装置のローカルストレージに格納する段階、
    前記少なくとも1つのプロセッサにより、前記実行可能ファイルに対する実行要請に応答して、前記実行可能ファイルに対するメモリ空間を割り当てる段階、
    前記少なくとも1つのプロセッサにより、前記ローカルストレージに格納された前記暗号化された実行可能ファイルを復号化して、前記復号化された実行可能ファイルに対する実行可能イメージを前記割り当てられたメモリ空間にロードする段階、および
    前記少なくとも1つのプロセッサにより、前記割り当てられたメモリ空間にロードされた実行可能イメージを参照して前記実行可能ファイルのプログラムコードを実行する段階
    を含む、実行可能イメージロード方法。
  13. 前記割り当てる段階は、
    前記実行可能ファイルの第1サイズ以上の容量を有する任意のファイルをメモリにロードして前記任意のファイルがロードされたアドレスのメモリ空間を前記実行可能ファイルのためのメモリ空間として割り当てるか、または予め割り当てられたメモリ空間のうちの少なくとも一部を前記実行可能ファイルのためのメモリ空間として割り当てるかすることを特徴とする、請求項9または12に記載の実行可能イメージロード方法。
  14. 前記実行する段階は、
    前記実行可能ファイルに格納された情報に基づいて、前記割り当てられたメモリ空間の属性、参照アドレス、エクスポート(export)アドレス、およびインポート(import)アドレスのうちの少なくとも1つを設定すること
    を特徴とする、請求項9または12に記載の実行可能イメージロード方法。
  15. 前記実行する段階は、
    前記割り当てられたメモリ空間の各セグメントの属性を、読み取り(read)、書き込み(write)、および実行(execute)のうちの少なくとも1つに設定する段階、
    再配置(relocation)情報を利用して、コードのアドレスをメモリ開始アドレス(base address)からの相対アドレスに修正して参照アドレスを設定する段階、
    前記実行可能イメージでエクスポートのためのアドレスを設定する段階、および
    前記実行可能イメージでインポートしなければならないアドレスを設定する段階
    を含むことを特徴とする、請求項9または12に記載の実行可能イメージロード方法。
  16. 前記実行する段階は、
    前記実行可能ファイルのプログラムコードで最初に実行されなければならない開始コードを前記実行可能イメージまたは別の領域から探して実行すること
    を特徴とする、請求項9または12に記載の実行可能イメージロード方法。
  17. 請求項9~12のうちのいずれか一項に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
JP2021563710A 2019-05-03 2019-05-03 メモリ上に実行可能イメージをロードする方法およびシステム Active JP7348701B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/005333 WO2020226189A1 (ko) 2019-05-03 2019-05-03 메모리상에서 실행 가능 이미지를 적재하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
JP2022538512A true JP2022538512A (ja) 2022-09-05
JP7348701B2 JP7348701B2 (ja) 2023-09-21

Family

ID=73051499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021563710A Active JP7348701B2 (ja) 2019-05-03 2019-05-03 メモリ上に実行可能イメージをロードする方法およびシステム

Country Status (3)

Country Link
JP (1) JP7348701B2 (ja)
KR (1) KR20210151077A (ja)
WO (1) WO2020226189A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2005165493A (ja) * 2003-12-01 2005-06-23 Nippon Telegr & Teleph Corp <Ntt> シェアードコンピュータ、その制御プログラム、および記録媒体
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
JP2013511782A (ja) * 2009-11-23 2013-04-04 マイケル アーバック,ジュリアン ストリームベースのソフトウェアアプリケーション配信及び起動システム
WO2015170473A1 (ja) * 2014-05-09 2015-11-12 日本電気株式会社 アプリケーション自動制御システム、アプリケーション自動制御方法およびプログラム記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
WO2012076266A1 (en) * 2010-12-09 2012-06-14 International Business Machines Corporation Computer-readable storage mediums for encrypting and decrypting a virtual disc
US9881142B2 (en) * 2015-09-11 2018-01-30 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
US10511598B2 (en) * 2016-03-29 2019-12-17 Intel Corporation Technologies for dynamic loading of integrity protected modules into secure enclaves
KR101842263B1 (ko) * 2016-08-26 2018-05-14 단국대학교 산학협력단 어플리케이션에 대한 역공학 차단 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP2005085188A (ja) * 2003-09-11 2005-03-31 Fujitsu Ltd プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2005165493A (ja) * 2003-12-01 2005-06-23 Nippon Telegr & Teleph Corp <Ntt> シェアードコンピュータ、その制御プログラム、および記録媒体
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
JP2013511782A (ja) * 2009-11-23 2013-04-04 マイケル アーバック,ジュリアン ストリームベースのソフトウェアアプリケーション配信及び起動システム
WO2015170473A1 (ja) * 2014-05-09 2015-11-12 日本電気株式会社 アプリケーション自動制御システム、アプリケーション自動制御方法およびプログラム記録媒体

Also Published As

Publication number Publication date
WO2020226189A1 (ko) 2020-11-12
JP7348701B2 (ja) 2023-09-21
KR20210151077A (ko) 2021-12-13

Similar Documents

Publication Publication Date Title
US10255443B2 (en) Method, apparatus, system and non-transitory computer readable medium for code protection
US9836616B2 (en) Creating distinct user spaces through user identifiers
US10204235B2 (en) Content item encryption on mobile devices
EP3044900A1 (en) Security processing unit with configurable access control
US9887842B2 (en) Binding software application bundles to a physical execution medium
EP3785149B1 (en) Memory assignment for guest operating systems
US11163902B1 (en) Systems and methods for encrypted container image management, deployment, and execution
US20230015537A1 (en) Reducing latency of hardware trusted execution environments
JP2017142791A (ja) コード保護方法およびコンピュータプログラム
CN113742657A (zh) 软件保护方法及其系统
CN116628773A (zh) 数据处理方法、装置、电子设备及存储介质
JP7348701B2 (ja) メモリ上に実行可能イメージをロードする方法およびシステム
CN112805698A (zh) 呈现由多个drm保护的内容
US20210224393A1 (en) Method and system for dynamic application of storage encryption
KR20110050631A (ko) 암호화 파일 시스템에서 입력/출력의 제어 및 효율성을 향상시키기 위한 방법 및 시스템
KR20210154017A (ko) 클래스 분산 및 순차적 메모리 적재를 이용한 파일 보호 방법 및 시스템
CN108319872B (zh) 一种封闭容器生成方法、装置及设备
JP7320071B2 (ja) ヒープメモリを利用して実行可能ファイルを保護する方法およびシステム
TWI791995B (zh) 軟體保護方法及其系統
US20210224098A1 (en) Method and system for remote terminal access through application of communication module during boot
CN115859339A (zh) 一种云存储数据的加密和解密的方法、装置、介质及设备
CN111562916B (zh) 共享算法的方法和装置
KR20210008469A (ko) 네이티브 라이브러리를 보호하는 방법 및 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220427

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230904

R150 Certificate of patent or registration of utility model

Ref document number: 7348701

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150