主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ソース コードの保護

MATLAB®ソース コード (M) は、それ自体で実行可能ですが、MATLABソース ファイルのコンテンツには簡単にアクセスできるため、設計や実装の詳細が公開されてしまいます。独自のアプリケーション コードをこの形式で配布しないようにするには、代わりに次のようなオプションを使用します。

  • Pコードで配布— ソース コード ファイルのすべてまたは一部を“Pコード"ファイル (Pファイル拡張子から) というコンテンツを不明瞭化したファイルに変換し、その形式でアプリケーション コードを配布します。MATLABでファイルが Pコード化されると、ファイルは"暗号化" ではなく"難読化" されます。Pの内容は解読しにくくなりますが、安全ではありません。知的財産を保護する目的には Pコード ファイルは推奨されません。

    MATLABは、ライブ スクリプトまたはライブ関数の Pコード ファイルへの変換をサポートしていません。

  • バイナリ形式にコンパイル-MATLAB编译器を使用してソース コード ファイルをコンパイルし、スタンドアロン アプリケーションを作成します。アプリケーションのエンド ユーザーに後者を配布します。

Pコードを使用したコンテンツ不明瞭化形式の作成

Pコード ファイルは、生成元の MATLABソースと同様に動作します。さらに、Pコード ファイルはソース ファイルと同じ速度で実行されます。Pコード ファイルは意図的に難読化されています。暗号化はされていません。Pの内容は解読しにくくなりますが、安全ではありません。知的財産を保護する目的には Pコード ファイルは推奨されません。

メモ

Pコード ファイルのユーザーは、MATLABコードを表示することができないため、エラー発生時にユーザーが対処するための診断を与えることを考慮してください。

Pコード ファイルの作成

Pコード ファイルを生成するには、MATLABコマンド ウィンドウで次のコマンドを入力します。

pcode文件1文件2。。。

このコマンドにより、文件1.p文件2.pなどのファイルが生成されます。現在のフォルダーに存在する"すべての"Mソース ファイルを Pコード ファイルに変換するには、次のコマンドを使用します。

pcode*.m

Pコード ファイルを生成するすべての構文の詳細は、関数pcodeのリファレンス ページを参照してください。

Pコード ファイルの呼び出し

生成された Pコード ファイルは、元となった MATLABMソース ファイルの呼び出しと同じ方法で呼び出します。たとえばファイル我的乐趣を呼び出すには、次のように入力します。

[out,out2,…]=我的乐趣(in1,in2,…);

スクリプトmyscript.pを呼び出すには、次のように入力します。

myscript;

Pコード ファイルを呼び出すと、MATLABでは、そのファイルが対応するMソース ファイルに優先して実行されます。これは、Pコード ファイルを生成した後でソース コードを変更した場合にも適用されます。コードを配布する前に、忘れずにMソース ファイルを削除してください。

MATLABの新しいバージョンでの古い Pコード ファイルの実行

Pコード ファイルは、その作成に使用したリリースおよびそれが使用されるリリースとは関係なく機能するように設計されています (下位互換性および上位互換性)。MATLABの新機能と廃止予定の機能は、問題となる可能性がありますが、それは元の MATLAB入力ファイルを使用した場合に存在する問題と差はありません。Pコード ファイルでこの種のエラーを修正するには、対応する MATLAB入力ファイルを修正し、新しい Pコード ファイルを作成します。

MATLAB 7.4版以前を使用して作成した Pコード ファイルの形式は、MATLABの新しいバージョンで作成したものと異なります。これらの古い Pコード ファイルは MATLAB 8.6(R2015b)以降では実行できません。Matlab7.4以前でビルドされた Pコード ファイルは、より新しいバージョンの MATLABでリビルドしてから、必要に応じて再配布してください。

スタンドアロン実行可能ファイルの作成

ソース コードを保護するもう 1.つの方法には、スタンドアロン実行可能ファイルとして作成し、そのファイルを必要なその他のファイルと共に外部顧客に配布する方法があります。配布用のファイルを準備するには、MATLAB编译器™と、サポートされる Cまたは C++コンパイラがインストールされていなければなりません。ただし、エンド ユーザーには MATLABは必要ありません。

MATLABアプリケーションのスタンドアロン アプリケーションを作成するには、MATLABプログラム ファイル作成の通常の手順の後で、アプリケーションを開発し、デバッグします。次に、MATLABからのスタンドアロン アプリケーションの作成(MATLAB编译器)の手順に従って、実行可能ファイルを生成します。