exponenta event banner

Укажите пользовательские обфускаторы для защищенных моделей

При создании защищенной модели можно указать собственную функцию постобработки для файлов, генерируемых процессом создания защищенной модели. Перед упаковкой защищенных файлов модели эта функция вызывается 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))

Создатель защищенной модели может также включить запутывание целевого кода моделирования и сгенерированного кода через "ObfuscateCode"опции Simulink.ModelReference.protect функция. Пользовательский блокировщик работает только с сгенерированным кодом, а не с целевым кодом моделирования или сгенерированным кодом HDL. Если используются оба obfuscator, пользовательский obfuscator будет последним для запуска с созданным кодом перед упаковкой файлов.

Связанные темы