Main Content

ユーザー設定による保護モデルの難読化の指定

保護モデルを作成する際、保護モデルの作成プロセスによって生成されるファイルに対してユーザー独自の後処理関数を指定できます。保護モデル ファイルをパッケージ化する前に、この関数は関数 Simulink.ModelReference.protect に呼び出されます。この機能を使用すると、次の手順に従ってユーザー設定による難読化を、生成されたファイルに対して実行できます。

  1. 後処理関数を作成します。この関数を使用してユーザー設定による難読化を呼び出します。この関数は MATLAB® パスに存在し、入力変数として Simulink.ModelReference.ProtectedModel.HookInfo オブジェクトを受け入れなければなりません。

  2. 関数内で、ユーザー設定による難読化で保護モデル ファイルを処理するのに必要なファイルとエクスポートされたシンボル情報を取得します。ファイルと情報を取得するには、関数の入力変数のプロパティにアクセスします。変数は、次のプロパティをもつ Simulink.ModelReference.ProtectedModel.HookInfo オブジェクトです。

    • SourceFiles

    • NonSourceFiles

    • ExportedSymbols

  3. 保護モデル ファイルの情報をユーザー設定による難読化に渡します。以下は、ユーザー設定による難読化の後処理関数の例です。

    function myHook(protectedModelInfo)
    
        % Get source file list information.
        srcFileList = protectedModelInfo.SourceFiles;
        disp('### Obfuscating...');
        for i=1:length(srcFileList)
            disp(['### Obfuscator: Processing ' srcFileList{i} '...']);
            % call to custom obfuscator
            customObfuscator(srcFileList{i});
        end
    end

  4. 保護モデルを作成する際に後処理関数を指定します。

    Simulink.ModelReference.protect('myModel, ...
        'Mode', ...
        'CodeGeneration', ...
        'CustomPostProcessingHook', ... 
        @(protectedModelInfo)myHook(protectedModelInfo))

保護モデルの作成者は、関数 Simulink.ModelReference.protectObfuscateCode オプションを使用してシミュレーション ターゲット コードと生成コードの難読化を有効にすることもできます。ユーザー設定による難読化は生成されたコードでのみ実行でき、シミュレーション ターゲットのコードまたは生成された HDL コードでは実行できません。難読化が両方に対して使用される場合、ファイルがパッケージ化される前に、ユーザー設定による難読化は生成されたコードに対して最後に実行されます。

関連するトピック