2.1. 最高安全性和最快性能

2.1.1. 如何生成最高安全性的脚本

下面的选项都可以用来增加安全性

  • --enable-rft 几乎不影响性能,是推荐选项

  • --enable-bcc 可能会显著增加模块导入时间

  • --enable-jit 可以防止静态反编译

  • --enable-themida 可以防止动态调试器,但是对性能影响比较大,并且仅在 Windwos 可用

  • --mix-str 保护脚本的所有字符串常量

  • pyarmor cfg mix_argnames=1 保护函数参数,但是可能导致 annotations 不可用

下面的选项可以隐藏加密模块的属性,外部脚本无法直接导入和使用加密脚本

下面的选项可以防止各种注入攻击和替换加密脚本中函数等攻击

2.1.2. 如何生成最快的加密脚本

使用下面的选项可以生成性能最高的加密脚本,其安全性相当于 .pyc

如果需要提高安全性,但是对性能又不要影响太大,最后的选择是同时启用 RFT 模式

如果有敏感字符串,那么使用 --mix-str 同时设置过滤条件,仅仅加密这些敏感字符串。如果没有过滤条件,所有的字符串常量都会加密,可能对性能会造成一点影响

  • pyarmor cfg mix.str:includes "/regular expression/"

  • --mix-str

2.1.3. 不同类型应用的推荐选项

对于服务网络请求类型的应用

如果 RFT 模式 已经足够安全(通过检查转换后的脚本来确定是否足够安全),那么使用下面的选项进行加密

如果单独的 RFT 模式 不能满足安全需求,那么使用下面的选项

对于其他大多数的应用

如果 RFT 模式BCC 模式 可用,那么使用下面的选项

如果不可用,使用下面的选项

如果需要避免注入攻击,使用下面的选项

  • --assert-call ,同时检查跟踪日志,确保关键函数被保护,必要的时候使用运行 脚本补丁 对这些函数进行保护

如果性能允许的话,启用选项 --enable-themida ,这个选项还是能很大程度的防止调试器的攻击,但就是对性能影响大一些