説明

ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体

本発明は、ソフトウェア分離実行するための方法、装置、及びコンピュータで読み取り可能な記録媒体に関し、特定のソフトウェアに対し、静的バイナリ分析、またはランタイムプロファイリング(即ち、ダイナミック分析)を通じて、制御流れ、データ流れ、及びモジュール構造を分析して重要モジュールを識別し、該当モジュールを本体から分離して安全な実行環境を有するスマートカードに格納する。ユーザ端末機には、該当モジュールが除去され、インターフェースコードに取り替えられた、修正された本体を格納する。ソフトウェア使用時、ユーザ端末とスマートカードがコプロセッシング(Co-Processing)することで、スマートカードがユーザ端末機に締結される場合のみに実行可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本特許出願は、2008年12月29日に韓国に出願した特許出願番号第10−2008−0135308号に対し、米国特許法119(a)条(35 U.S.C§119(a))に従って優先権を主張しており、その全ての内容は参考文献として本特許出願に取り込まれる。併せて、本特許出願は、米国以外の国家に対しても上記と同一理由により優先権を主張し、その全ての内容は参考文献として本特許出願に取り込まれる。
【0002】
本発明は、ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体に関し、より詳しくは、特定のソフトウェアに対し、静的バイナリ(Static Binary)分析(Static Analysis)、またはランタイムプロファイリング(Runtime Profiling)(即ち、ダイナミック分析)を通じて制御流れ、データ流れ、及びモジュール構造を分析して重要モジュールを識別し、該当モジュールを本体から分離して安全(Secure)な実行環境を有するスマートカードに格納し、ユーザ端末機には、該当モジュールが除去され、インターフェースコードに取り替えられた修正された本体を格納して、ソフトウェアの使用時、ユーザ端末とスマートカードがコプロセッシング(Co-Processing)することで、スマートカードがユーザ端末機に締結される場合のみに実行可能であるように具体化するソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体に関する。
【背景技術】
【0003】
一般に、ソフトウェアは、CD−ROM、DVD−ROMなどの媒体を通じてオフライン(Off-line)上で直接販売されたり、該当ソフトウェア会社のインターネットサイトを用いて消費者がダウンロードする方式により販売がなされる。ソフトウェア(S/W)製品を購入したユーザが製品を設置し、使用するためには、ソフトウェア製造会社でCD−ROMなどと共に提供する正規商品認証用CD−キー(CD-Key)の入力を必要とする。
【0004】
しかしながら、正規商品認証用CD−キーは一般テキスト形式でユーザが入力するよう露出されているので、CD−キーとCD−ROMをそのままコピーして第3者が不法的に使用する事例が頻繁に発生する問題を抱いている。更に、このようなユーザはCD−キーのない場合でも不法に作られたCD−キー生成プログラムを利用したり、CD−キー認証プログラムをクラッキング(cracking)する方法などを動員してソフトウェアの正規商品認証方法をハッキングしているので、P2Pサイトなどを通じて不法な共有がなされてソフトウェア著作権保護に大きい被害を与えている。
【0005】
CD−ROM、DVD−ROMの特別なトラックに認証情報を格納し、ソフトウェア駆動時、該当認証情報無しで駆動できないようにする、即ち正規商品CD−ROM、DVD−ROMがユーザ端末機に挿入されていなければ実行できないようにする方法も使われているが、本体ソフトウェアから該当認証部分を削除するクラック方法を通じて容易に無力化されている。
【0006】
ここに、プリントポート(Printer Port)やUSBポートに別途のハードウェア装置を連結し、ソフトウェアで該当装置の存在有無を確認したり、該当装置に暗号化、復号化用のキー値とアルゴリズムを内蔵して実行時点で暗号されたコードを解除する方式のソフトウェア複製防止装置も使われている。しかしながら、実行時点にソフトウェアが結局は復号化されてメモリーにロードせざるを得ない構造的な問題によって、該当装置無しでソフトウェアを使用することができるようにするハッキング事例がよく発生し、甚だしくは有名なソフトウェア複製防止技術の場合、専門技術のない一般人もハッキングすることができる自動化されたハッキング道具が配布される事例もある。その他にも、仮想の実行環境(Virtual Machine)を通じてリバースエンジニアリング(Reverse Engineering)を難しくしてソフトウェアの認証キー確認ロジックを保護する方法が試図されたが、これもまたハッキング事例及び自動化されたハッキング道具配布事例が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
前述した問題点を解決するために、本発明は、スマートカードがユーザ端末機に締結される場合のみに実行可能であるように具体化するソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体を提供して不法複製を防止することを主な目的とする。
【課題を解決するための手段】
【0008】
前述した目的を達成するために、本発明は、ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうち、いずれか1つを識別する分析(Analysis)部と、上記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付け(Tagging)するプロファイリング(Profiling)部と、プロファイリングされた機能モジュール(Function Module)に属性情報とユーザフィードバックによる点数を与える評価(Assessment)部と、上記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー(Body)から分離する抽出(Extraction)部と、上記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入するインターフェーシング(Interfacing)部と、を含むことを特徴とする、ソフトウェア分離実行装置を提供する。
【0009】
また、本発明の他の目的によれば、ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうちのいずれか1つを識別するステップと、上記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付け(Tagging)するステップと、プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与えるステップと、上記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー(Body)から分離するステップと、上記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入するステップと、を含むことを特徴とする、ソフトウェア分離実行方法を提供する。
【0010】
また、本発明の他の目的によれば、前述したソフトウェア分離実行方法の各ステップを実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【発明の効果】
【0011】
以上、説明したように、本発明によれば、既存のソフトウェア複製防止技術に比べて、スマートカードという物理的に安全な実行環境でコードを保護することで、リバースエンジニアリングを通じたクラック(Crack)を根本的に防止できる効果がある。また、本発明によれば、スマートカードとユーザ端末との間のクライアント(Client-Server)方式のコプロセッシング技法(Co-Processing Scheme)で複製防止効果が生じるので、システムアーキテクチャに依存するアンチデバッギング(Anti-Debugging)技法や、効果が不明で、かつ複雑なコード暗復号化方法に依存する必要がなくなり、これによってクラック技法との消耗的な保安パッチ作業の手間を省くことができる効果がある。また、本発明によれば、ドングルまたは光メディアの特殊トラックとのデータ通信保護、リバースエンジニアリングツール(Reverse Engineering Tool)探知などのために、ユーザ端末環境に付加的な機能を設置することによって、発生していた誤りの可能性を避けることができる効果がある。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係るソフトウェア分離実行装置を概略的に示すブロック構成図である。
【図2】本発明の実施形態に係るソフトウェア分離実行方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の一部の実施形態を添付した図面を参照しつつ詳細に説明する。各図面の構成要素に参照符号を付加するに当たって、同一な構成要素に対してはたとえ他の図面上に表示されても、できる限り同一な符号を有するようにしていることに留意しなければならない。また、本発明を説明するに当たって、関連した公知構成または機能に対する具体的な説明が本発明の要旨を曖昧にすることができると判断される場合にはその詳細な説明は省略する。
【0014】
また、本発明の構成要素を説明するに当たって、第1、第2、A、B、(a)、(b)などの用語を使用することができる。このような用語はその構成要素を他の構成要素と区別するためのものであり、その用語により当該構成要素の本質や回順序または順序などが限定されない。どの構成要素が他の構成要素に“連結(connected)”、“結合(coupled)”、または“接続(linked)”されると記載された場合、その構成要素はその他の構成要素に直接的に連結、または接続できるが、各構成要素の間に更に他の構成要素が“連結”、“結合”、または“接続”されることもできると理解されるべきである。
【0015】
図1は、本発明の実施形態に係るソフトウェア分離実行装置を概略的に示すブロック構成図である。
【0016】
本実施形態に係るソフトウェア分離実行装置100は、分析(Analysis)部110、プロファイリング(Profiling)部120、評価(Assessment)部130、抽出(Extraction)部140、インターフェーシング(Interfacing)部150、変換(Transformation)部160、及び検証(Verification)部170を含む。
【0017】
本実施形態ではソフトウェア分離実行装置100が分析部110、プロファイリング部120、評価部130、抽出部140、インターフェーシング部150、変換部160、及び検証部170のみを含んで構成されるものと記載しているが、これは本実施形態の技術事象を例示的に説明したものに過ぎないものであって、本実施形態が属する技術分野で通常の知識を有する者であれば、本実施形態の本質的な特性から逸脱しない範囲でソフトウェア分離実行装置100に含まれる構成要素に対して多様に修正及び変形して適用可能である。
【0018】
分析部110は、オブジェクトコード(Object Code)でビルド(Build)されたバイナリファイル(Binary File)を逆アセンブル(Disassemble)状態、またはソースファイル(Source File)状態で、セマンチック(Semantic)分析、またはインタープリター(Interpreter)を通じた要約実行(インプットデータ(Input Data)と制御流れ(Control Flow)を見積もって実行)をして見たり(以上、セマンチック分析)、分析対象ソフトウェアをソース状態またはバイナリコード(Binary Code)で機能モジュール(Function Module)を追跡(Tracing)するための追跡コードを挿入し、実際に実行して見ながらログ(Log)を蓄積して(以上、ダイナミック分析)実行流れ(Control)、データ流れ(Data Flow)、モジュール構造(Module Structure)を解き明かす作業を遂行する。分析部110は、ダイナミックコードインジェクション(Dynamic Code Injection)またはソース(source)修正を通じたインストルメンテーション(instrumentation)、ランタイム(runtime)デバッガ(Debugger)、仮想マシン(Virtual Machine)、実行状態の予測のための要約実行インタープリターのうち、少なくとも1つ以上の技術を活用してソフトウェアの動作状態をモニターリングまたは予測して分析する。一方、本発明の分析部110は、本発明の本質的な特性から逸脱しない範囲で計測部(Instrumentation)として具体化できる。計測部は、ソフトウェアのバイナリコード(Binary Code)を読み込んだ後、ファンクションモジュール(Function Module)を追跡(Tracing)するための追跡コードを挿入する機能を遂行することで具体化できる。
【0019】
プロファイリング部120は、各モジュール別に実行状態及び属性情報タグ(Tag)を生成する機能を遂行する。一方、プロファイリング部120は、本発明の本質的な特性から逸脱しない範囲でソフトウェアを実行して追跡ログ(Tracing Log)情報を生成し、ソフトウェアの進行状態別に各ログにタグ(Tag)を生成する機能を遂行することで具体化できる。
【0020】
評価部130は、プロファイリングされた機能モジュールに特定の属性情報とユーザフィードバックに基づいて点数を与える機能を遂行する。評価部130は、入出力ダイナミシティ(Input/Output Dynamicity)属性情報、特定進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス(Memory Reference)回数属性情報、アーキテクチャ特殊命令語(Architecture Specific Instruction)使用有無属性情報、使用頻度属性情報、使用時点属性情報、実行負荷属性情報、制御流れ属性情報、モジュール内の独立変数個数属性情報、及び分離実行時の実行遅延時間属性情報のうち、1つ以上の属性情報によって点数を算出する機能を遂行する。一方、評価部130は、本発明の本質的な特性から逸脱しない範囲でプロファイリングされたファンクションモジュールに特定の属性情報に基づいて算出した点数を与える機能を遂行することで具体化できる。また、評価部130は、入出力ダイナミシティ属性情報、コードランタイムロード(Code Runtime Load)属性情報、特定の進行状態に到達するための必須要素有無属性情報、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、及び使用頻度属性情報のうち、1つ以上の属性情報によって点数を算出することで具体化できる。
【0021】
抽出部140は、評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー(Body)から分離する機能を遂行する。抽出部140は、最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する過程でアーキテクチャ特殊命令語使用情報及びシステムコール(System Call)に対する構成要素を分離しない。一方、抽出部140は、本発明の本質的な特性から逸脱しない範囲で、評価部130で最も高い点数を獲得したファンクションモジュールのボディーを分離する機能を遂行することで具体化でき、ボディーを分離する過程でメモリーレファレンス、アーキテクチャ特殊命令語使用情報、及びシステムコール(System Call)に対する構成要素は分離しないことで具体化できる。
【0022】
インターフェーシング部150は、スタックプッシュ/ポップ(Stack Push/Pop)、レジスタ(Register)変数等、コードモジュール間の入出力をスマートカードとのリモートプロシージャコール(Remote Procedure Call)に取り替える。ここで、ユーザ端末機はソフトウェアを演算、制御、及び格納するためのメモリー、プログラムを実行して演算及び制御するためのマイクロプロセッサーなどを具備している端末機をいうものであり、個人用コンピュータ(PC:Personal Computer)、ノートブック、個人携帯用情報端末機(PDA:Personal Digital Assistant)、及び移動通信端末機(Mobile Communication Terminal)等のうちのいずれか1つでありうる。一方、本発明でのインターフェーシング部150は、本発明の本質的な特性から逸脱しない範囲でボディーが分離されたファンクションモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入する機能を遂行することで具体化できる。また、インターフェーシング部150は、スタックプッシュ/ポップ(Stack Push/Pop)を通じた入出力をUSB入出力に取り替えるように具体化できる。
【0023】
変換部160は、インターフェーシングコードが挿入された機能モジュールの命令語のセット(Instruction Set)をスマートカード(Smart Card)のアーキテクチャに応じて変換するように機能する。ここで、スマートカードとは、マイクロプロセッサー、カード運営体制、保安モジュール、メモリーなどを具備することによって、特定の業務を処理することができる集積回路チップ(IC Chip)を内蔵したプラスチック形式のカードをいう。検証部170は、変換部で変換されたコードを実行して正常動作か否かを検証する機能を遂行する。
【0024】
一方、ソフトウェア分離実行装置100は、異種のアーキテクチャを仮想的に操作するエミュレーション部を更に含むことができる。
【0025】
図2は、本発明の実施形態に係るソフトウェア分離実行方法を説明するためのフローチャートである。
【0026】
分析部110は、ソフトウェアの制御流れ、データ流れ、及びモジュール構造を分析する(S210)。一方、分析部110が本発明の本質的な特性から逸脱しない範囲で計測部として具体化される場合、計測部はソフトウェアのバイナリコード(Binary Code)を読み込んだ後、ファンクションモジュール(Function Module)を追跡(Tracing)するための追跡コードを挿入することができる。
【0027】
プロファイリング部120は、ソフトウェアの各モジュール毎に実行状態及び属性情報タグ(Tag)を生成する(S220)。一方、プロファイリング部120は本発明の本質的な特性から逸脱しない範囲でソフトウェアを実行して追跡ログ(Tracing Log)情報を生成し、ソフトウェアの進行状態別に各ログにタグ(Tag)を生成することができる。ここで、評価部130は入出力ダイナミシティ(Input/Output Dynamicity)属性情報、特定進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス(Memory Reference)回数属性情報、アーキテクチャ特殊命令語(Architecture Specific Instruction)使用有無属性情報、モジュールで使われる独立変数の数、実行時間、演算量、及び使用頻度属性情報のうち、1つ以上の属性情報によって点数を算出することができる。一方、評価部130は、本発明の本質的な特性から逸脱しない範囲で入出力ダイナミシティ属性情報、コードランタイムロード(Code Runtime Load)属性情報、特定の進行状態に到達するための必須要素有無属性情報、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、及び使用頻度属性情報のうち、1つ以上の属性情報によって点数を算出することで具体化できる。
【0028】
抽出部140は、評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する(S240)。一方、抽出部140は、最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する過程でメモリーレファレンス、アーキテクチャ特殊命令語使用情報、及びシステムコール(System Call)に対する構成要素を分離しない。
【0029】
インターフェーシング部150は、本体ボディーから分離された機能モジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入する(S250)。例えば、インターフェーシング部150は、スタックプッシュ/ポップ(Stack Push/Pop)、レジスタ変数等、モジュール間の入出力をリモートプロシージャコール形態に取り替える。一方、インターフェーシング部150は、本発明の本質的な特性から逸脱しない範囲でボディーが分離されたファンクションモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入することで具体化できる。即ち、インターフェーシング部150は、スタックプッシュ/ポップ(Stack Push/Pop)を通じた入出力をUSB入出力に取り替えることができる。
【0030】
変換部160は、インターフェーシングコードが挿入された機能モジュールの命令語のセット(Instruction Set)をスマートカード(Smart Card)のアーキテクチャに応じて変換する(S260)。検証部170は、変換部で変換されたコードと原本コードとを同時に実行して原本コードの実行結果と比較して変換されたコードが正常動作か否かを検証する(S270)。一方、検証部170は、本発明の本質的な特性から逸脱しない範囲で、変換部160で変換されたコードを実行して正常動作か否かを検証することで具体化できる。
【0031】
図2ではソフトウェア分離実行方法がステップS210乃至ステップS270を順次に実行するものと記載しているが、これは本実施形態の技術事象を例示的に説明したものに過ぎないものであって、本実施形態が属する技術分野で通常の知識を有する者であれば、本実施形態の本質的な特性から逸脱しない範囲でソフトウェア分離実行方法が図2に記載された順序を変更して実行したり、ステップS210乃至ステップS270のうち、1つ以上のステップを並列的に実行することによって多様に修正及び変形して適用可能であるので、図2の時系列的な順序に限定されるものではない。
【0032】
前述したように、図2に記載された本実施形態に係るソフトウェア分離実行方法はプログラムで具体化され、コンピュータで読み取り可能な記録媒体に記録されることができる。
【0033】
本実施形態に係るソフトウェア分離実行方法を具体化するためのプログラムが記録され、コンピュータが読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが格納される全ての種類の記録装置を含む。
【0034】
このようなコンピュータが読み取り可能な記録媒体の例には、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ格納装置などがあり、また、キャリアウェーブ(例えば、インターネットを通じた転送)の形態で具体化されるものも含む。また、コンピュータが読み取り可能な記録媒体は、ネットワークにより連結された分散型コンピュータシステムにおいて提供され、分散された場所でコンピュータ読み取り可能なコードが格納され、実行されても良い。
【0035】
また、本実施形態を具体化するための機能的な(Functional)プログラム、コード、及びコードセグメントは、本実施形態が属する技術分野のプログラマーにより容易に推論できるものである。
【0036】
以上、本発明の実施形態を構成する全ての構成要素が1つに結合されるか、結合されて動作することと説明されたが、本発明が必ずこのような実施形態に限定されるものではない。即ち、本発明の目的範囲内であれば、その全ての構成要素が1つ以上に選択的に結合して動作することもできる。また、その全ての構成要素が各々1つの独立的なハードウェアで具体化されることができるが、各構成要素のその一部または全部が選択的に組み合わせて1つまたは複数個のハードウェアで組み合わせた一部または全部の機能を遂行するプログラムモジュールを有するコンピュータプログラムとして具体化されることもできる。そのコンピュータプログラムを構成するコード及びコードセグメントは本発明の技術分野の当業者により容易に推論できるものである。このようなコンピュータプログラムは、コンピュータが読取可能な格納媒体(Computer Readable Media)に格納されてコンピュータによって読取され、実行されることによって、本発明の実施形態を具体化することができる。コンピュータプログラムの格納媒体としては、磁気記録媒体、光記録媒体、キャリアウェーブ媒体などを含むことができる。
【0037】
また、以上で記載された“含む(include)”、“構成する(comprise)”、または“有する(have)”などの用語は、特別に反対になる記載がない限り、該当構成要素が内在できることを意味するものであるので、他の構成要素を除外するのでなく、他の構成要素を更に含むことができることと解釈されるべきである。技術的または科学的な用語を含んだ全ての用語は、異に定義されない限り、本発明が属する技術分野で通常の知識を有する者により一般的に理解されることと同一な意味を有する。事前に定義された用語のように、一般的に使われる用語は関連技術の文脈上の意味と一致するものと解釈されるべきであり、本発明で明らかに定義しない限り、理想的であるとか、過度に形式的な意味として解釈されない。
【0038】
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明が属する技術分野で通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能である。したがって、本発明に開示された実施形態は本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施形態により本発明の技術思想の範囲が限定されるのではない。本発明の保護範囲は請求範囲により解釈されなければならず、それと同等な範囲内にある全ての技術思想は本発明の権利範囲に含まれるものと解釈されるべきである。
【産業上の利用可能性】
【0039】
以上、説明したように、本発明はスマートカードがユーザ端末機に締結される場合のみに実行可能であるようにする多様な分野に適用されて、ソフトウェアをPCのような開放型コンピューティング環境とスマートカードのようなカバーされたコンピューティング環境に分離して実行することができる効果を発生する有用な発明である。

【特許請求の範囲】
【請求項1】
ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうち、いずれか1つを識別する分析部と、
前記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付けするプロファイリング部と、
プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与える評価部と、
前記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する抽出部と、
前記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入するインターフェーシング部と、
を含むことを特徴とする、ソフトウェア分離実行装置。
【請求項2】
前記インターフェーシングコードが挿入された機能モジュールの命令語のセットをスマートカードのアーキテクチャに従って変換する変換部と、
異種のアーキテクチャを仮想的に操作するエミュレーション部と、
を更に含むことを特徴とする、請求項1に記載のソフトウェア分離実行装置。
【請求項3】
前記評価部は、
入出力ダイナミシティ属性情報、特定の進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、使用頻度属性情報、使用時点属性情報、実行負荷属性情報、制御流れ属性情報、モジュール内の独立変数個数属性情報、及び分離実行時の実行遅延時間属性情報のうち、1つ以上の属性情報によって前記点数を算出することを特徴とする、請求項1に記載のソフトウェア分離実行装置。
【請求項4】
前記抽出部は、
前記ソフトウェアから前記最も高い点数を獲得した機能モジュールを分離する過程で、アーキテクチャ特殊命令語使用情報、及びシステムコール(System Call)に対する構成要素は分離しないことを特徴とする、請求項1に記載のソフトウェア分離実行装置。
【請求項5】
前記ソフトウェアは、
ダイナミックコードインジェクションを通じたインストルメンテーション、ランタイムデバッガ、仮想マシン、及び実行状態予測のための要約実行インタープリターのうち、少なくとも1つ以上のソフトウェアを含むことを特徴とする、請求項1に記載のソフトウェア分離実行装置。
【請求項6】
ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうちのいずれか1つを識別するステップと、
前記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付けするステップと、
プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与えるステップと、
前記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離するステップと、
前記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入するステップと、
を含むことを特徴とする、ソフトウェア分離実行方法。
【請求項7】
請求項6によるソフトウェア分離実行方法の各ステップを実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate


【公表番号】特表2012−514267(P2012−514267A)
【公表日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2011−544360(P2011−544360)
【出願日】平成21年12月21日(2009.12.21)
【国際出願番号】PCT/KR2009/007648
【国際公開番号】WO2010/077000
【国際公開日】平成22年7月8日(2010.7.8)
【出願人】(500310672)エスケーテレコム株式会社 (107)
【氏名又は名称原語表記】SK TELECOM CO.,LTD.
【住所又は居所原語表記】11,Euljiro−2ga,Jung−gu,Seoul,Korea