MATLAB:安全共享函数
MATLAB: secure share a function
我写了一个MATLAB独立函数myfun.m
,我想分享给同样有MATLAB的人。他们可以使用函数,但我不想让他们看到函数内部的内容。
到目前为止,我已经看到使用 pcode
执行此操作的 1 种方法:我将使用 pcode('myfun.m')
创建 myfun.p
,然后与他人共享 myfun.p
。 这是正确的吗?
上面的方法似乎有两个问题:
- 当我键入
help myfun
时,我得到 No help found for myfun.p.
尽管我已经为原始 .m 创建了一个简短的帮助(通过紧跟在函数声明之后的注释)
- mathworks says .p 文件包含原始 .m 的模糊、未加密版本
除了 pcode
之外,是否还有其他方法可以解决上述一个或两个问题?
从包含所有帮助文本的 .m
文件生成 .p
文件时,所有注释都将被删除。如果您想为 .p
文件提供帮助文本,您可以单独创建一个与 .p
文件同名的 .m
文件,其中只包含 [=36] =] 帮助文本。由于函数解析的顺序,.p
文件在编程使用时会被求值,寻求帮助时会引用.m
文件。
请注意以下 table 来自 Mathworks 的 .p
和 .m
文件的顺序:
When determining the precedence of functions within the same folder, MATLAB considers the file type, in this order:
- Built-in function
- MEX-function
- Simulink model files that are not loaded, with file types in this order:
- SLX file
- MDL file
- App file (.mlapp) created using MATLAB App Designer
- Program file with a .mlx extension
- P-file (that is, an encoded program file with a .p extension)
- Program file with a .m extension
这是真的,.p
文件的内容被混淆了,但用户对文件内容进行逆向工程并非易事,因此可能不值得他们为此付出努力这样做。您可以找到几个声称可以从 .p
文件生成 .m
文件的实用程序,但这些 .m
文件可能看起来与原始来源完全不同。
如果您真的很关心算法的安全性,您可以随时将敏感部分写入已编译的 mex 文件中。
我写了一个MATLAB独立函数myfun.m
,我想分享给同样有MATLAB的人。他们可以使用函数,但我不想让他们看到函数内部的内容。
到目前为止,我已经看到使用 pcode
执行此操作的 1 种方法:我将使用 pcode('myfun.m')
创建 myfun.p
,然后与他人共享 myfun.p
。 这是正确的吗?
上面的方法似乎有两个问题:
- 当我键入
help myfun
时,我得到No help found for myfun.p.
尽管我已经为原始 .m 创建了一个简短的帮助(通过紧跟在函数声明之后的注释) - mathworks says .p 文件包含原始 .m 的模糊、未加密版本
除了 pcode
之外,是否还有其他方法可以解决上述一个或两个问题?
从包含所有帮助文本的
.m
文件生成.p
文件时,所有注释都将被删除。如果您想为.p
文件提供帮助文本,您可以单独创建一个与.p
文件同名的.m
文件,其中只包含 [=36] =] 帮助文本。由于函数解析的顺序,.p
文件在编程使用时会被求值,寻求帮助时会引用.m
文件。请注意以下 table 来自 Mathworks 的
.p
和.m
文件的顺序:When determining the precedence of functions within the same folder, MATLAB considers the file type, in this order:
- Built-in function
- MEX-function
- Simulink model files that are not loaded, with file types in this order:
- SLX file
- MDL file
- App file (.mlapp) created using MATLAB App Designer
- Program file with a .mlx extension
- P-file (that is, an encoded program file with a .p extension)
- Program file with a .m extension
这是真的,
.p
文件的内容被混淆了,但用户对文件内容进行逆向工程并非易事,因此可能不值得他们为此付出努力这样做。您可以找到几个声称可以从.p
文件生成.m
文件的实用程序,但这些.m
文件可能看起来与原始来源完全不同。如果您真的很关心算法的安全性,您可以随时将敏感部分写入已编译的 mex 文件中。