Задайте пользовательский Obfuscators для защищенных моделей

При создании защищенной модели можно задать собственную функцию постобработки для файлов, которые генерирует защищенный образцовый процесс создания. Прежде, чем группировать защищенные образцовые файлы, эта функция вызвана функцией Simulink.ModelReference.protect. Можно использовать эту функциональность, чтобы запустить собственный obfuscator на сгенерированных файлах путем выполнения этих шагов:

  1. Создайте свою функцию постобработки. Используйте эту функцию, чтобы вызвать ваш пользовательский obfuscator. Функция должна быть на пути MATLAB® и принять объект Simulink.ModelReference.ProtectedModel.HookInfo как входную переменную.

  2. В вашей функции получите файлы и экспортируемую информацию символа, которую ваш пользовательский obfuscator запрашивает, чтобы обработать защищенные образцовые файлы. Чтобы получить файлы и информацию, получите доступ к свойствам своей переменной входного параметра функции. Переменная является объектом Simulink.ModelReference.ProtectedModel.HookInfo со следующими свойствами:

    • SourceFiles

    • NonSourceFiles

    • ExportedSymbols

  3. Передайте защищенную информацию о файле модели своему пользовательскому obfuscator. Следующее является примером функции постобработки для пользовательской путаницы:

    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. Ваш пользовательский obfuscator запускается только на сгенерированном коде а не на целевом коде симуляции или сгенерированном HDL-коде. Если оба, obfuscators используются, пользовательский obfuscator, являются последними, чтобы работать на сгенерированном коде, прежде чем файлы будут группированы.

Похожие темы