CodeMeter によるMATLAB Compiler スタンドアローンアプリケーションの保護 およびライセンシング

CodeMeter による MATLAB Compiler スタンドアローンアプリケーションの保護およびライセンシング

MATLAB Compiler とは

MATLAB/Simulink( 米 MathWorks 社)は、数値計算ソフトウェアであ り、豊富な関数と優れたデータ可視化機能により、様々な業界のエンジニアに使用されています。MATLAB/Simulink は、AI アルゴリズム開発をしたり、物理モデルを含むシミュレーター構築の用途で使用するエンジニアが多いですが、完成したアルゴリズムやシミュレーターは、そのままだとエンジニア以外の人には使い方が難しい場合もあるので、広く一般に配布すること、およびアルゴリズムの隠蔽化を目的に、MATLAB Compiler を使用して、スタンドアローンアプリケーションとして実行可能なexe ファイルを作成することができます。最近では、Simulink Compiler も提供されるようになり、Simulink モデルも、GUI 付きのスタンドアローンアプリケーションとして実行ファイルを作成できるようになりました。

ライセンシングできることによるメリット

MATLAB Compiler を使用して作成されたスタンドアローンアプリケーシ ョンは、MATLAB ライセンスを必要とせず、複製もできるため、大勢の人に配布するには有用です。一方で使用数や使用期間に制約を付けたい場合は、技術的に管理することはできないので契約書等の文面に頼るしかありません。そのため高度なアルゴリズム、知的財産が含まれるアプリケーションソフトは、意図した使用範囲、本数、期間、等、でのみエンドユーザに提供できるようなライセンシングの仕組みを適用することが
望ましいと言えます。ライセンシングができると、ソフトウェアをライセンス 販売によるソフトウェアビジネスを構築できると共に、不正使用を防ぎ、ソフトウェアビジネスの収益化向上に繋がります。WIBU-SYSTEMS 社のCodeMeter を使用することにより、このようなニーズを実現することができます。具体的には提供対象のアプリケーションソフトウェアに、暗号化 による保護、およびライセンシングを掛けることができますので、意図したライセンス要件(使用本数、機能、期間、等)でアプリケーションソフトウェアを管理しつつ、エンドユーザに提供できるようになります。
CodeMeter のアプリケーションライセンスは、ハードウェアドングル、特定 のデバイスにバインドされたソフトウェア形式、もしくはクラウド形式で提供することができます。



図1. CodeMeter によるライセンシングを掛ける場合と掛けない場合の比較

MATLAB Compiler のサンプルアプリに CodeMeter を適用

MATLAB Compiler のサンプルアプリケーションとして、魔方陣を作る MATLAB 関数”magic” をスタンドアロンアプリケーションとしてパッケージ化する MATLAB コードが用意されています。ここでは、このサンプルアプリケーションに CodeMeter のライセンシングを適用し、PC に USB ドングルを挿した場合のみ起動する手順を紹介します。前述の通り、CodeMeter は、ドングル以外にもソフトウェアライセンスやクラウドで管理するライセンス形態を作成することも可能です。

そのままの状態でスタンドアロンアプリを動かしてみる

MATLAB 側でスタンドアロンアプリケーションは作成済みであり、配布先側(ターゲット PC )には、MATLAB Runtime のインストール、および For_redistribution フォルダが既にコピー済みの状態で開始します。
For_redistribution フォルダ内の、MyAppInstaller_web.exe インストーラを起動すると、C:\Program Files\magicsquare フォルダが作成されます。
まずは、そのままの状態で、魔方陣アプリケーションを起動してみます。
魔方陣アプリケーションには、GUI は無く、コマンドプロンプトで、起動時 に魔方陣のサイズ(行列数)をパラメータとして入力するだけのアプリケーションなので下記のコマンドを実行します。

>application>magicsquare 5


図2. MATLAB Compiler で作成したスタンドアロンアプリケーション(魔方陣)の実
行画面


上記の画面では、5x5 、および3x3 の魔方陣が表示されています。(まだライセンシングを掛けていませんので当然起動します)

CodeMeter でライセンシングを掛ける

CodeMeter の AxProtector を使い、スタンドアロンアプリケーション (magicsquare.exe) を保護し、ライセンスを紐付けるための「プロダクトコード」を割り当てます。AxProtector は、対象アプリケーションのソースコードを変更することなく、ファイルを指定するだけで保護およびライセンシング対象にすることができます。


図3. AxProtector の 「Windows アプリケーション」を選択

今回の magicsquare.exe は、Windows アプリケーションなので、AxProtector のプロジェクトタイプは「Windows アプリケーション または DLL 」を選択します。
ソースファイル(ライセンシング対象のファイル)欄には、magicsquare.exe を指定し、保存先ファイル(ライセンシング済みファイル)欄には、図4 のようにフォルダを分け、ファイル名は、magicsquareP.exe としています。(図4)


図4. 元のファイル名と、ライセンス適用後の保存先のファイル名を指定

ライセンスシステム のタブでは、ファームコード と プロダクトコード を設定します。(図5)
ファームコード:6000010(CodeMeter 評価のためのファームコード)
プロダクトコード : 14


図5.アプリケーションをライセンスに紐づけるためにFirm Code とProduct Code を設定

Runtime 設定 タブ内の、[プラグアウトチェックを有効] にチェックを入れると、ドングルを抜いたときにアプリを停止させることができます。
注意:  セキュリティオプション のタブでは、[動的コードの変更] のチェックを外してください。(図6)
これはアプリケーションが実行されている間、動的セキュリティチェックを行う設定ですが、MATLAB Compiler および Simulink Compiler で作成されたスタンドアローンアプリケーションは、この設定はオフにしないと動作しません。


図6.セキュリティオプション の 設定画面

ライセンシングが掛かったアプリケーション (magicsquareP.exe) の起動を試みると、図7 のようにライセンスが見つからない、というエラーが表示されます。(想定通り)


図7. ライセンスエラー表示

次に、このスタンドアローンアプリケーションのアクセス権限を持つライセンスを作成し、USB ドングル(CmDongle)に書き込みます。(図8)


図8. CodeMeter License Editor でドングルにライセンス情報を書き込む

プロダクトコード は、前述のAxProtector を用いた、スタンドアローンアプリケーション (magicsquare.exe) の暗号化を実施した際に設定した、プロダクトコード「14 」と同じにすることで、アプリケーションとライセンスを紐付けます。
今度はライセンスを搭載した CmDongle を PC に挿した状態で、ライ センシングが掛かった、スタンドアローンアプリケーション (magicsquareP.exe)を起動してみます。


図9. ライセンシング適用後の魔方陣アプリケーション実行画面

無事にアプリケーションは起動し、行列サイズが5と7の魔方陣を作成 することができました。

SimulinkCompiler のサンプルアプリにCodeMeter を適用

Simulink Compiler のサンプルとして提供されている、バネ・質量・ダンパー のシミュレーションアプリケーションも MATLAB Compiler と同様の手順で、CodeMeter のライセンシングを掛けることができます。
図10. Simulink Compiler サンプルのバネ・質量・ダンパーのシミュレーションアプリケーション

まとめ

MATLAB Compiler や Simulink Compiler で作成したスタンドアローンア プリケーションは、手軽に配布できる反面、意図した範囲内での使用に制限したい場合など管理することは困難です。CodeMeter を使うことにより、シンプルな手順でライセンシングを適用することが可能であり、流出や不正コピーを防ぐだけでなく、配布先で使用可能な本数、ライセンス期間、機能、バージョンなど、必要に応じた様々なライセンス要件を策定した上で、ソフトウェアビジネスを構築することができます。画像認識、
機械学習、センシング、AI 、物理シミュレーション、など益々ソフトウェア には高度なアルゴリズムと知的財産が搭載され、適切に・管理することにより求められているなかで、CodeMeter は、アプリケーションソフトウェアの保護とソフトウェアビジネスの収益化に貢献します。
    • Related Articles

    • CODESYS の CodeMeter 活用事例

      CODESYS はプラットフォームに依存せず PLC や Motion、HMI の開発が可能な IEC 61131-3 準拠の統合開発環境 およびランタイムソフトウェアです。 CODESYS の開発環境には、様々な機能に CodeMeter の暗号化、ならびにライセンシング技術が組み込まれています。 1. プロジェクトを保護(流出してもファイルが開かない) 2: PLC 用アプリケーションを保護 (ドングルを接続した特定の PLC だけで動く) 3 : ...
    • CodeMeter SDK を含む関連リソースの入手方法

      CodeMeter SDK を含む関連リソースの入手方法です。 【FSB: Firm Security Box】 CodeMeter ソリューションの導入には、FSB (ファームセキュリティボックス)として設定された CmDongle が必要になります。 お手元になく、評価/導入をご検討されたい方は sales@wibu.jp までお問い合わせください。 【CodeMeter SDK】 最新版の SDK (Software Developer Kit) はこちらからダウンロードできます。 ...
    • CodeMeter ソリューションの導入事例

      CodeMeter ソリューションの導入実績は、こちらから確認できます。事例の詳細は、こちらから確認できます。 【主な公開事例 : 3/16/2023 時点】: ワールドワイドで 10, 000 社以上の ISV(Independent Software Vendor) 様のソフトウエアライセンスビジネスをサポートさせていただいています。 もし、気になる会社様が CodeMeter ソリューションをどのように活用しているかをお知りになりたい場合は、キーワード: CodeMeter ...
    • CodeMeter クイックスタートガイド (小冊子)

      CodeMeter クイックスタートガイド [小冊子]では CodeMeter のプロテクションとライセンシングの簡単な紹介と概略を記載しています。 ※こちらの資料ダウンロードサイトからダウンロードできます。 (参考) 資料ダウンロードサイトの「クイックスタートガイド」ダウンロードリンク画像 実際に評価を開始される際の手順については、ナレッジベースへログイン後、「クイックスタートガイド(QSG)」のセクションをご参照ください。
    • Webinar の紹介

      WIBU-SYSTEMS AG(ドイツ本社) では定期的に無料 Webinar を開催しています。 英語 または ドイツ語でのセッションにはなりますが、一部日本語 Webinar のアーカイブがあります。 ご興味のある方は、こちらのサイトにアクセスいただきご参加ください。 ■日本語Webinar アーカイブ 『MATLAB COMPILER スタンドアローンアプリケーションを、CODEMETERで保護しライセンスを付ける方法』 『遂にPYTHONに対応!コードの暗号化とライセンスビジネス』 ...