0

私は MATLAB でプログラムを作成しました。プログラムをエンド ユーザーに配布する 3 つの方法を検討しています。最初の方法では、.m ファイルを p-code に変換してから、MATLAB で p-code を使用できるがコード自体を表示できないエンド ユーザーに配布します。2 番目の方法では、MATLAB Compiler と MATLAB Builder NE を使用して .m ファイルを C# にコンパイルし、Visual Studio を使用してコードを難読化し、最終製品を作成します。3 番目の方法では、MATLAB Compiler と MATLAB Builder EX を使用して Excel アドインを作成し、Excel アドインをエンド ユーザーに配布します。

私が検討しているこれら 3 つの展開方法のそれぞれで、誰かがリバース エンジニアリングまたはクラックしてコードにアクセスするのがどれほど難しいか疑問に思っています。クラックやリバース エンジニアリングが不可能なプログラムを作成することは基本的に不可能であることはわかっていますが、他の方法よりもクラックしにくい展開方法はありますか? p-code を使用すると、エンド ユーザーがファイルの名前にアクセスできるようになることを知っています。これは、誰かがプログラムをリバース エンジニアリングするのに役立つ可能性があると思います。

ご協力いただきありがとうございます。

4

2 に答える 2

1

デプロイされたバージョンからコードをリバースエンジニアリングする機能に関しては、これらのメソッド間で実際にはほとんど違いはありません。

Builder for .NETはMATLABをC#に変換しません。MATLABコンパイラとBuilder製品は、コードをアーカイブおよび暗号化し、コードをアーカイブ解除してMATLABコンパイラランタイムに対して実行する小さなラッパー(.NETアセンブリまたはExcelアドイン)を作成します。実行中、解凍されたファイルはまだ暗号化されていますが、一時ディレクトリに表示されるため、ファイル名はpコーディングの場合と同じ方法で使用できます。

Pコーディングは最も簡単で安価ですが、エンドユーザーはMATLABと使用するツールボックスのコピーを持っている必要があります。コンパイラーおよび/またはビルダー製品でデプロイされた製品は、それらに何も必要ありませんが、それらの製品を購入する必要があり、デプロイメント・プロセスはもう少し複雑です。

于 2012-04-23T20:38:28.270 に答える
1

この質問について、私は最終的に MathWorks に電話しました。MathWorks のエンジニアは、機密情報であるため、暗号化の種類を教えてはいけないと言いました。

また、Compiler と Builder EX または Builder NE で使用される暗号化の種類について、MathWorks のエンジニアに尋ねました。これは 128 ビット AES 暗号化を使用して m ファイルを暗号化しますが、プログラムで使用される他の種類のファイルは .dll や画像ファイルのように暗号化されません。

次に、より強力な暗号化、p コード、または使用されたコンパイラとビルダーを展開するプログラムを尋ねました。それらは異なる種類の暗号化であるため、言うのは難しいと彼は言いましたが、Compiler と Builder を使用する前に、実際に .m ファイルを p-code に変換して、Compiler と Builder を使用して展開された保護製品を少なくとも p- コードと同じくらい強力にすることができます。コード。

于 2012-04-24T16:13:54.003 に答える