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

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

  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 последним запускается на сгенерированном коде перед упаковкой файлов.

Похожие темы