0

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

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

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

+3

pcodeを使用することをお勧めします。これは、クラックするためのツールが少なくなり、問題なく実行する可能性がより高くなるためです。 – Jonas

答えて

1

私はこの質問についてMathWorksに電話しました。 MathWorksのエンジニアは、独自の情報であるため、暗号化の種類を教えてもらえないと教えてくれました。

また、MathWorksのエンジニアに、コンパイラとビルダーEXまたはビルダーNEにどのような暗号化を使用するか尋ねました。彼は、これは、m - ファイルを暗号化するために128ビットのAES暗号化を使用したが、あなたのプログラムで使用される他の種類のファイルは.dllや画像ファイルのように暗号化されていないと言いました。

私は、より強力な暗号化、pコード、または展開されたプログラムがコンパイラとビルダーで使用されているかを尋ねました。コンパイラとビルダーを使用する前に、.mファイルをpコードに変換することで、コンパイラとビルダーを使って少なくともp-コード。

1

展開されたバージョンからコードをリバースエンジニアリングできるという点では、これらの方法の間には慣行にほとんど違いがありません。

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

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

関連する問題