При создании защищенной модели можно задать собственную функцию постобработки для файлов, которые генерирует защищенный процесс создания модели. Прежде, чем группировать защищенные файлы модели, эта функция вызвана Simulink.ModelReference.protect
функция. Можно использовать эту функциональность, чтобы запустить собственный obfuscator на сгенерированных файлах путем выполнения этих шагов:
Создайте свою функцию постобработки. Используйте эту функцию, чтобы вызвать ваш пользовательский obfuscator. Функция должна быть на MATLAB® путь и принимает Simulink.ModelReference.ProtectedModel.HookInfo
возразите как входная переменная.
В вашей функции получите файлы и экспортируемую информацию символа, которую ваш пользовательский obfuscator запрашивает, чтобы обработать защищенные файлы модели. Чтобы получить файлы и информацию, получите доступ к свойствам своей переменной входного параметра функции. Переменной является Simulink.ModelReference.ProtectedModel.HookInfo
объект со следующими свойствами:
SourceFiles
NonSourceFiles
ExportedSymbols
Передайте защищенную информацию о файле модели своему пользовательскому 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
Задайте свою функцию постобработки при создании защищенной модели:
Simulink.ModelReference.protect('myModel, ... 'Mode', ... 'CodeGeneration', ... 'CustomPostProcessingHook', ... @(protectedModelInfo)myHook(protectedModelInfo))
Защищенный создатель модели может также включить путаницу целевого кода симуляции и сгенерированного кода через ‘ObfuscateCode
’опция Simulink.ModelReference.protect
функция. Ваш пользовательский obfuscator запускается только на сгенерированном коде а не на целевом коде симуляции или сгенерированном HDL-коде. Если оба, obfuscators используются, пользовательский obfuscator, являются последними, чтобы работать на сгенерированном коде, прежде чем файлы будут упакованы.