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