2.1. 最高安全性和最快性能
2.1.1. 如何生成最高安全性的脚本
下面的选项都可以用来增加安全性
--enable-rft
几乎不影响性能,是推荐选项--enable-bcc
可能会显著增加模块导入时间--enable-jit
可以防止静态反编译--enable-themida
可以防止动态调试器,但是对性能影响比较大,并且仅在 Windwos 可用--mix-str
保护脚本的所有字符串常量pyarmor cfg mix_argnames=1 保护函数参数,但是可能导致 annotations 不可用
下面的选项可以隐藏加密模块的属性,外部脚本无法直接导入和使用加密脚本
加密脚本使用
--private
,加密包使用--restrict
下面的选项可以防止各种注入攻击和替换加密脚本中函数等攻击
2.1.2. 如何生成最快的加密脚本
使用下面的选项可以生成性能最高的加密脚本,其安全性相当于 .pyc
pyarmor cfg restrict_module=0
如果需要提高安全性,但是对性能又不要影响太大,最后的选择是同时启用 RFT 模式
如果有敏感字符串,那么使用 --mix-str
同时设置过滤条件,仅仅加密这些敏感字符串。如果没有过滤条件,所有的字符串常量都会加密,可能对性能会造成一点影响
pyarmor cfg mix.str:includes "/regular expression/"
2.1.3. 不同类型应用的推荐选项
对于服务网络请求类型的应用
对于其他大多数的应用
如果 RFT 模式 和 BCC 模式 可用,那么使用下面的选项
如果不可用,使用下面的选项
--private
(加密脚本),或者--restrict
(加密包)
--mix-str
和过滤条件如果需要避免注入攻击,使用下面的选项
--assert-call
,同时检查跟踪日志,确保关键函数被保护,必要的时候使用运行 脚本补丁 对这些函数进行保护如果性能允许的话,启用选项
--enable-themida
,这个选项还是能很大程度的防止调试器的攻击,但就是对性能影响大一些