(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】情報処理方法及び記録媒体
(51)【国際特許分類】
G06F 21/10 20130101AFI20240730BHJP
G06F 21/14 20130101ALI20240730BHJP
【FI】
G06F21/10 350
G06F21/14
(21)【出願番号】P 2021546600
(86)(22)【出願日】2020-09-04
(86)【国際出願番号】 JP2020033552
(87)【国際公開番号】W WO2021054145
(87)【国際公開日】2021-03-25
【審査請求日】2023-07-20
(31)【優先権主張番号】P 2019170117
(32)【優先日】2019-09-19
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】平塚 陽介
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2008-299776(JP,A)
【文献】特開平11-31130(JP,A)
【文献】特表2015-512073(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/10
G06F 21/14
(57)【特許請求の範囲】
【請求項1】
第1のプログラムが、ライセンスにより有効化される機能をコンピュータに実行させ、
少なくとも一部が難読化されている第2のプログラムが、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる
情報処理方法。
【請求項2】
前記第2のプログラムは、前記ライセンスが有効である場合、第3のプログラムに前記機能の一部の実行を指示し、前記第3のプログラムから前記機能の一部の実行結果を取得し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる
請求項1に記載の情報処理方法。
【請求項3】
前記第3のプログラムの少なくとも一部が難読化されている
請求項2に記載の情報処理方法。
【請求項4】
前記第2のプログラム及び前記第3のプログラムは、機械語により記述されている
請求項3に記載の情報処理方法。
【請求項5】
前記第3のプログラムは、前記第2のプログラムの正常動作に必要なプログラムである
請求項2に記載の情報処理方法。
【請求項6】
前記第2のプログラムは、前記ライセンスの認証結果をさらに前記第1のプログラムに出力する処理を前記コンピュータに実行させる
請求項2に記載の情報処理方法。
【請求項7】
前記第2のプログラムは、機械語により記述されている
請求項1に記載の情報処理方法。
【請求項8】
前記第1のプログラムは、中間言語により記述されている
請求項1に記載の情報処理方法。
【請求項9】
前記第2のプログラムは、前記ライセンスの認証結果をさらに前記第1のプログラムに出力する処理を前記コンピュータに実行させる
請求項1に記載の情報処理方法。
【請求項10】
ライセンスにより有効化される機能をコンピュータに実行させる第1のプログラムと、
少なくとも一部が難読化され、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる第2のプログラムと
を含むプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理方法及び記録媒体に関し、特に、ライセンスにより有効化される機能の不正使用を抑制する情報処理方法及び記録媒体に関する。
【背景技術】
【0002】
従来、ライセンスにより有効化される機能を提供するアプリケーションプログラム(以下、単にアプリケーションと称する)の復号に用いる共通鍵を、ユーザ名及び有効期限の情報を用いて難読化してユーザに提供する技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の発明では、復号後のアプリケーションの改ざん等により、当該機能が不正使用されるおそれがある。
【0005】
本技術は、このような状況に鑑みてなされたものであり、ライセンスにより有効化される機能の不正使用を抑制できるようにするものである。
【課題を解決するための手段】
【0006】
本技術の第1の側面の情報処理方法は、第1のプログラムが、ライセンスにより有効化される機能をコンピュータに実行させ、少なくとも一部が難読化されている第2のプログラムが、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる。
【0007】
本技術の第2の側面の記録媒体は、ライセンスにより有効化される機能をコンピュータに実行させる第1のプログラムと、少なくとも一部が難読化され、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる第2のプログラムとを含むプログラムが記録されている。
【0008】
本技術の第1の側面又は第2の側面においては、第1のプログラムにより、ライセンスにより有効化される機能がコンピュータにより実行され、少なくとも一部が難読化されている第2のプログラムにより、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理が前記コンピュータにより実行される。
【図面の簡単な説明】
【0009】
【
図1】アプリケーションプログラムの構成例を示す図である。
【
図2】本技術を適用した情報処理システムの第1の実施の形態を示すブロック図である。
【
図4】本技術を適用したアプリケーションプログラムの構成例を示す図である。
【
図5】特定処理実行処理を説明するためのフローチャートである。
【
図6】本技術を適用した情報処理システムの第2の実施の形態を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.有償機能の不正使用の対策に関する問題点
2.第1の実施の形態
3.第2の実施の形態
4.本技術の侵害発見方法の例
5.変形例
6.その他
【0011】
<<1.有償機能の不正使用の対策に関する問題点>>
まず、ライセンスにより有効化される有償機能の不正使用の対策に関する問題点について説明する。
【0012】
まず、有償機能の有効化処理の一例について簡単に説明する。
【0013】
例えば、サーバは、有償機能を有効化するためのライセンスのインストールに用いるインストールキーを含み、秘密鍵を用いて生成した署名をPC(パーソナルコンピュータ)に送信する。
【0014】
PCは、秘密鍵と対になる公開鍵を用いて署名の検証を行い、検証に成功した場合、インストールキーを用いてライセンスをインストールする。そして、ライセンスが有効である場合、有償機能を実現するアプリケーションの実行が可能になり、PCがアプリケーションを実行することにより、ユーザは有償機能を使用することができる。
【0015】
なお、ライセンスが有効である場合とは、例えば、正当かつ有効期限内のライセンスがPCにインストールされている場合である。一方、ライセンスが無効である場合とは、例えば、正当かつ有効期限内のライセンスがPCにインストールされていない場合である。より具体的には、例えば、ライセンスがインストールされていなかったり、インストールされているライセンスが正当なものでなかったり、ライセンスの有効期限が切れている場合等である。
【0016】
ここで、例えば、公開鍵が攻撃者の鍵に改ざんされ、偽のライセンスによりアプリケーションが実行可能にされることにより、有償機能が不正使用されるおそれがある。
【0017】
また、例えば、ライセンス認証の機能を無効化するようにアプリケーションが改ざんされ、ライセンスが無効な状態でもアプリケーションが実行可能にされることにより、有償機能が不正使用されるおそれがある。
【0018】
これに対して、例えば、アプリケーションを難読化して保護することが考えられる。アプリケーションの難読化とは、アプリケーションのコードを人間が理解しにくくなるように加工することである。
【0019】
ここで、アプリケーションの開発に用いられるプログラミング言語には、機械語型言語、中間言語型言語、スクリプト言語等がある。
【0020】
機械語型言語は、例えば、アプリケーションが機械語に変換された状態で配布されるプログラミング言語である。機械語型言語の代表例として、C言語、C++、Objective C、Delphi等が挙げられる。
【0021】
アプリケーションの開発に機械語型言語が用いられる場合、配布されるアプリケーションが機械語で記述されるため、高度な難読化が可能である。
【0022】
中間言語型言語とは、例えば、アプリケーションが中間言語に変換された状態で配布され、実行時に機械語に変換されるプログラミング言語である。中間言語型言語の代表例として、Java(登録商標)、C#等が挙げられる。
【0023】
アプリケーションの開発に中間言語型言語が用いられる場合、通常アプリケーションは、機械語に変換しやすい形式で配布される。そのため、高度な難読化は難しい。
【0024】
スクリプト言語は、簡易的なプログラミング言語の総称であり、大部分がインタプリタ型言語である。スクリプト言語の代表例として、JavaScript(登録商標)、Python等が挙げられる。
【0025】
アプリケーションの開発にスクリプト言語が用いられる場合、スクリプト言語の仕様から考えて、高度な難読化は難しい。
【0026】
このように、アプリケーションの開発に用いるプログラミング言語により、対応可能な難読化のレベルに差が生じてしまう。
【0027】
また、アプリケーション全体を難読化しようとすると、使用するプログラミング言語が制限されたり、開発者全員が難読化の手法や規則を学び、難読化の作業を行う必要が生じたりする。そのため、開発者の負担が増大し、開発効率が低下する。また、アプリケーション全体に余分なコードが追加されるため、実行速度が大幅に低下するおそれがある。
【0028】
これに対して、例えば、
図1に示されるように、アプリケーションプログラム11をメインプログラム21とライセンス処理部22に分け、ライセンス処理部22のみを難読化することが考えられる。
【0029】
ライセンス処理部22は、メインプログラム21の指示により、ライセンス認証を行い、ライセンスが有効であるか否かを示す認証結果をメインプログラム21に出力する。
【0030】
メインプログラム21は、ライセンスが有効である場合、PCによる有償機能の実行を許可する。一方、メインプログラム21は、ライセンスが無効である場合、PCによる有償機能の実行を禁止する。
【0031】
この場合、ライセンス処理部22は、小規模なプログラムとなるため、上述した開発効率及び実行速度の低下が抑制される。
【0032】
しかし、この場合、例えば、メインプログラム21のライセンス処理部22とのインタフェース部において、ライセンスの認証結果が常に有効となるように書き換える改ざんが行われると、ライセンスが無効であるにも関わらず、有償機能が不正使用されてしまうおそれがある。
【0033】
<<2.第1の実施の形態>>
次に、
図2乃至
図4を参照して、本技術の第1の実施の形態について説明する。
【0034】
<情報処理システム101の構成例>
図2は、本技術を適用した情報処理システム101の構成例を示している。
【0035】
情報処理システム101は、サーバ111、PC112、カメラ113、及び、ネットワーク121を備える。サーバ111とPC112は、ネットワーク121を介して接続されており、相互に通信を行う。
【0036】
サーバ111は、PC112上で実行される有償機能のライセンスを発行し、発行したライセンスをインストールするためのライセンス情報を、ネットワーク121を介して、PC112に送信する。
【0037】
なお、サーバ111からPC112へのライセンスの提供方法は、ライセンスを安全理に提供することが可能であれば、特に問わない。
【0038】
PC112は、サーバ111から提供されるライセンスをインストールした上で、所定のアプリケーションを実行することにより、所定の有償機能を実行する。例えば、PC113は、カメラ113から供給されるHD(High Definition)の画像データを4Kの画像データに変換し、編集等を行う機能を実行する。
【0039】
カメラ113は、撮影の結果得られたHDの画像データをPC112に供給する。
【0040】
<PC112の構成例>
図3は、PC112の構成例を示すブロック図である。
【0041】
PC112において、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続されている。
【0042】
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記録部208、通信部209、及びドライブ210が接続されている。
【0043】
入力部206は、入力スイッチ、ボタン、マイクロフォン、撮像素子等を備える。
【0044】
出力部207は、ディスプレイ、スピーカ等を備える。
【0045】
記録部208は、ハードディスクや不揮発性のメモリ等を備える。
【0046】
通信部209は、ネットワークインタフェース等を備える。
【0047】
ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は、半導体メモリ等のリムーバブルメディア211を駆動する。
【0048】
以上のように構成されるPC112では、CPU201が、例えば、記録部208に記録されているプログラム(例えば、有償機能を実現するアプリケーション)を、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、一連の処理が行われる。
【0049】
PC112(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0050】
PC112では、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記録部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記録部208にインストールすることができる。その他、プログラムは、ROM202や記録部208に、あらかじめインストールしておくことができる。
【0051】
<アプリケーションプログラムの構成例>
図4は、PC112のCPU201により実行されることにより有償機能を実現するアプリケーションプログラム301(以下、単にアプリケーション301と称する)の構成例を示している。有償機能は、例えば、上述したようにHDの画像データを4Kの画像データに変換し、編集を行う機能とされる。
【0052】
アプリケーション301は、メインプログラム311及びライセンス処理ライブラリ312を含む。
【0053】
メインプログラム311は、有償機能を実現するプログラムであり、有償機能実行部321を含む。有償機能実行部321は、有償機能をCPU201に実行させるプログラムであり、例えば、所定の関数とされる。
【0054】
ライセンス処理ライブラリ312は、有償機能のライセンス認証機能、及び、有償機能の一部(以下、特定処理と称する)を実現するプログラムを含むライブラリである。特定処理は、例えば、HDの画像データを4Kの画像データに変換する処理とされる。ライセンス処理ライブラリ312は、ライセンス処理部331及び特定処理実行部332を含む。
【0055】
ライセンス処理部331は、有償機能のライセンス認証をCPU201に実行させるプログラムであり、例えば、所定の関数とされる。ライセンス処理部331は、有償機能実行部321の指示により実行され、ライセンスの認証結果を有償機能実行部321に出力する。また、ライセンス処理部331は、必要に応じて特定処理の実行を特定処理実行部332に指示し、特定処理の実行結果を特定処理実行部332から取得し、特定処理の実行結果を有償機能実行部321に出力する。
【0056】
特定処理実行部332は、特定処理をCPU201に実行させるプログラムであり、例えば、所定の関数とされる。特定処理実行部332は、有償機能実行部321の指示により実行され、特定処理の実行結果をライセンス処理部331に出力する。
【0057】
ライセンス処理部331及び特定処理実行部332は、有償機能の不正使用を防止するために難読化される。従って、ライセンス処理部331及び特定処理実行部332は、機械語型言語で開発され、機械語により記述されることが望ましい。
【0058】
なお、ライセンス処理部331及び特定処理実行部332は、機械語の段階で難読化されていれば、機械語に変換される前に難読化されても、機械語に変換された後に難読化されてもよい。また、例えば、開発者が手作業で難読化するようにしてもよいし、難読化のソフトウエア等を用いて自動で難読化するようにしてもよい。
【0059】
一方、メインプログラム311は難読化されない。従って、メインプログラム311の開発に用いるプログラミング言語の種類、及び、メインプログラム311を記述する言語は、ライセンス処理部331及び特定処理実行部332に比べて制限が少ない。
【0060】
<特定処理実行処理>
次に、
図5のフローチャートを参照して、PC12がアプリケーション301を実行することにより実現される特定処理実行処理について説明する。
【0061】
なお、以下の説明では、実際はアプリケーション301を実行するCPU201が各種の処理を実行するが、説明を簡単にするために、アプリケーション301の各部(例えば、有償機能実行部321)が各種の処理を実行すると記載する。
【0062】
ステップS1において、有償機能実行部321は、特定処理の実行を指示する。例えば、有償機能実行部321は、ライセンス処理部331を呼び出すことにより、特定処理の実行をライセンス処理部331に指示する。
【0063】
ステップS2において、ライセンス処理部331は、ライセンス認証を行う。すなわち、ライセンス処理部331は、有償機能のライセンスが有効であるか否かを確認する。
【0064】
ステップS3において、ライセンス処理部331は、ステップS2の処理の結果に基づいて、ライセンスが有効であるか否かを判定する。ライセンスが有効であると判定された場合、処理はステップS4に進む。
【0065】
ステップS4において、特定処理実行部332は、特定処理を実行する。例えば、ライセンス処理部331は、特定処理実行部332を呼び出すことにより、特定処理の実行を特定処理実行部332に指示する。特定処理実行部332は、特定処理を実行する。
【0066】
ステップS5において、ライセンス処理部331は、特定処理の実行結果を出力する。具体的には、特定処理実行部332は、特定処理の実行結果をライセンス処理部331に返す(ライセンス処理部331に出力する)。
【0067】
ライセンス処理部331は、特定処理実行部332から取得した特定処理の実行結果を有償機能実行部321に返す(有償機能実行部321に出力する)。なお、このとき、ライセンス処理部331は、ライセンスの認証結果も合わせて有償機能実行部321に返すようにしてもよい。
【0068】
その後、特定処理実行処理は終了する。
【0069】
一方、ステップS3において、ライセンスが無効であると判定された場合、処理はステップS6に進む。
【0070】
ステップS6において、ライセンス処理部331は、ライセンスが無効であることを通知する。具体的には、ライセンス処理部331は、ライセンスが無効であることを示す認証結果を有償機能実行部321に返すことにより、ライセンスが無効であることを通知する。
【0071】
なお、例えば、ライセンス処理部331は、ライセンスが無効であることを通知する代わりに、特定処理の実行エラー等を通知するようにしてもよい。
【0072】
その後、特定処理実行処理は終了する。
【0073】
以上のようにして、ライセンスが無効にも関わらず有償機能が不正に使用されることが抑制される。
【0074】
すなわち、ライセンス処理部331及び有償機能実行部321が難読化されているため、ライセンスが無効な状態で特定処理を実行できるように改ざんすることが困難である。
【0075】
また、例えば、
図1を参照して上述したように、ライセンス処理部331から出力されるライセンスの認証結果を改ざんしたとしても、特定処理の実行結果が得られなくなる。その結果、有償機能が正常に動作しなくなる。
【0076】
例えば、上述した例では、HDの画像データを4Kに変換した画像データを得られなくなり、4Kの画像データの編集等が行えなくなる。
【0077】
さらに、アプリケーションプログラム11の一部のみが難読化されるため、上述した開発効率や実行速度の低下を抑制することができる。
【0078】
<<3.第2の実施の形態>>
次に、
図6を参照して、本技術の第2の実施の形態について説明する。
【0079】
<情報処理システム401の構成例>
図6は、本技術を適用した情報処理システム401の構成例を示している。なお、図中、
図2の情報処理システム101と対応する部分には同じ符号を付してあり、その説明は適宜省略する。
【0080】
情報処理システム401は、情報処理システム101と比較して、カメラ113の代わりに、カメラ411が設けられ、CCU(Camera Control Unit)412が追加されている点が異なる。
【0081】
カメラ411は、CCU412の制御の下に、撮影を行い、得られた画像データをCCU412に供給する。
【0082】
CCU412は、カメラ411の制御、並びに、画像データの蓄積及び伝送等を行う。
【0083】
PC112は、例えば、所定のアプリケーションを実行することにより、所定の有償機能を実行する。この有償機能は、例えば、GUI(Graphical User Interface)を用いて、CCU412に蓄積されている画像データの操作を行う機能とされる。
【0084】
このアプリケーションは、上述した
図4のアプリケーション301と同様の構成を有する。例えば、特定処理実行部332は、CCU412との間の通信機能をPC112に実行させる。
【0085】
従って、ライセンスが無効である場合、PC112とCCU412との間の通信ができなくなり、その結果、PC112からCCU412に蓄積されている画像データの操作ができなくなる。
【0086】
<<4.本技術の侵害発見方法の例>>
図7は、有償機能のライセンス処理用のDLL(Dynamic Link Library)をダンプしたダンプリストの例を示している。例えば、このダンプリストに有償機能を実行するための関数が含まれている場合、本技術を侵害している可能性が高い。
【0087】
従って、例えば、有償機能のライセンス処理用のライブラリをダンプすることにより、本技術の侵害を発見できる場合がある。
【0088】
<<5.変形例>>
以下、上述した本技術の実施の形態の変形例について説明する。
【0089】
<難読化に関する変形例>
ライセンス処理部331及び特定処理実行部332の難読化の方法やレベルは、例えば、要求されるセキュリティのレベルや処理速度等に基づいて設定される。
【0090】
また、例えば、セキュリティを十分に確保できる範囲において、ライセンス処理部331及び特定処理実行部332の一部のみを難読化してもよい。また、ライセンス処理部331の一部又は全部を難読化し、特定処理実行部332を難読化しないようにしてもよい。
【0091】
さらに、セキュリティを十分に確保できる範囲において、例えば、ライセンス処理部331及び特定処理実行部332を中間言語型言語で開発し、中間言語により記述し、中間言語の状態で難読化することも可能である。
【0092】
また、例えば、メインプログラム311の一部を難読化するようにしてもよい。例えば、メインプログラム311の開始位置を難読化してもよい。
【0093】
さらに、ライセンス処理部331及び特定処理実行部332に、例えば、暗号化、パッキング、改ざん検知、デバッグ防止等の難読化以外のセキュリティをさらに施すようにしてもよい。
【0094】
<保護対象となる機能に関する変形例>
本技術を適用可能な機能は、ライセンスにより有効化される機能であれば、特に限定されず、有償か無償かも問わない。
【0095】
また、特定処理は、ライセンスにより有効化される機能の一部の処理であれば、基本的に処理内容は制限されない。ただし、特定処理の処理結果がなければ、機能が正常に動作しなくなったり、機能が大幅に制限されたりする処理であることが望ましい。
【0096】
さらに、例えば、ライセンス処理部331と特定処理実行部332が、特定処理を分担して行うようにしてもよい。
【0097】
また、例えば、特定処理実行部332は、ライセンス処理部331の正常動作に必要な処理を実行するようにしてもよい。
【0098】
<アプリケーションの構造に関する変形例>
図4の例では、ライセンス処理部331と特定処理実行部332とを分ける(例えば、別関数とする)例を示したが、例えば、一体化するようにしてもよい。
【0099】
<その他の変形例>
本技術は、PC以外の情報処理装置、例えば、スマートフォン、携帯電話機、タブレット端末、サーバ等で動作するアプリケーションにも適用することができる。
【0100】
また、本技術は、ミドルウエア、オペレーティングシステム等のアプリケーション以外のプログラムにも適用することができる。
【0101】
<<6.その他>>
本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0102】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0103】
<構成の組み合わせ例>
本技術は、以下のような構成をとることもできる。
【0104】
(1)
第1のプログラムが、ライセンスにより有効化される機能をコンピュータに実行させ、
少なくとも一部が難読化されている第2のプログラムが、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる
情報処理方法。
(2)
前記第2のプログラムは、前記ライセンスが有効である場合、第3のプログラムに前記機能の一部の実行を指示し、前記第3のプログラムから前記機能の一部の実行結果を取得し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる
前記(1)に記載の情報処理方法。
(3)
前記第3のプログラムの少なくとも一部が難読化されている
前記(2)に記載の情報処理方法。
(4)
前記第2のプログラム及び前記第3のプログラムは、機械語により記述されている
前記(3)に記載の情報処理方法。
(5)
前記第3のプログラムは、前記第2のプログラムの正常動作に必要なプログラムである
前記(2)乃至(4)のいずれかに記載の情報処理方法。
(6)
前記第2のプログラムは、前記ライセンスの認証結果をさらに前記第1のプログラムに出力する処理を前記コンピュータに実行させる
前記(2)乃至(5)のいずれかに記載の情報処理方法。
(7)
前記第2のプログラムは、機械語により記述されている
前記(1)に記載の情報処理方法。
(8)
前記第1のプログラムは、中間言語により記述されている
前記(1)乃至(7)のいずれかに記載の情報処理方法。
(9)
前記第2のプログラムは、前記ライセンスの認証結果をさらに前記第1のプログラムに出力する処理を前記コンピュータに実行させる
前記(1)に記載の情報処理方法。
(10)
ライセンスにより有効化される機能をコンピュータに実行させる第1のプログラムと、
少なくとも一部が難読化され、前記第1のプログラムからの指示により、ライセンス認証を実行し、前記ライセンスが有効である場合、前記機能の一部を実行し、前記機能の一部の実行結果を前記第1のプログラムに出力する処理を前記コンピュータに実行させる第2のプログラムと
を含むプログラムを記録したコンピュータ読み取り可能な記録媒体。
【0105】
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0106】
101 情報処理システム, 112 PC, 201 CPU, 301 アプリケーションプログラム, 311 メインプログラム, 312 ライセンス処理ライブラリ, 321 有償機能実行部, 331 ライセンス処理部, 332 特定処理実行部