我正在尝试使用perl -MO=Deparse从加密的Perl文件中获得可读的源代码。

我遇到的错误是:

Can't run with Perl compiler backend at /System/Library/Perl/5.18/XSLoader.pm line 95. 
BEGIN failed--compilation aborted at /Library/Perl/5.18/darwin-thread-multi-2level/Filter/Crypto/Decrypt.pm line 37.


阅读此网页时,它说:


无法与Perl编译器后端一起运行
(F)加密的Perl文件是由启用了Perl编译器后端的perl运行的,例如perl -MO =删除文件。不允许这样做,因为它可能有助于检索原始的未加密源代码。


如果我正确理解了这一点,那么这是一种安全措施,可以防止人们完全按照自己的意愿进行操作试图做。正确?有什么方法可以覆盖吗?

评论

我认为您可以在运行Deparse之前先对其解密。

#1 楼

由于这是有计划的预防措施,并且此错误消息没有任何技术限制,因此只需修补perl可执行文件中的显式检查就足够了。然后,您可以拥有自己的perl版本,该版本允许解密perl程序并公开原始源代码。