如何打开和编辑加密perl脚本



我有一个加密的perl脚本。只有安装了Filter::decrypt,才能编译此脚本。我有那个过滤器,我安装了它,脚本编译没有问题,但现在我想用一些文本编辑器打开该脚本并编辑它。

谁能帮帮我,告诉我该怎么做?

基本上—使脚本不可读是极其困难的,仅仅因为perl是一种解释语言。确切地说,如何解开一些东西更多的是一个问题,那就是它最初是如何缠在一起的。

所以我建议作为第一个港口-看一下Mastering Perl,它有一整章关于反汇编perl代码的主题。

然而,如果您只看Filter::decrypt模块页面,它指出了模块根本无法涵盖的几个地方-只有在您首先控制perl解释器时才能真正"保护"代码。然而,它暗示的事情是:

删除Perl二进制文件以删除所有符号。

使用静态链接构建解密扩展。如果扩展是作为动态模块提供的,那么没有什么可以阻止某人在运行时将其与修改后的Perl二进制文件链接起来。

不要使用-DDEBUGGING来构建Perl。如果您这样做,那么可以使用-Dp命令行选项检索您的源代码。

示例过滤器包含检测调试选项的逻辑。

不要使用C调试支持来构建Perl。

不要将解密过滤器实现为子进程(如cpp源过滤器)。可以窥视到连接到子进程的管道。

检查Perl编译器没有被使用。

在解密的BOOT:部分中有代码。x显示了如何检测编译器的存在。确保你把它包含在你的模块中。

假设您没有采取任何步骤来发现编译器正在使用,并且您有一个名为"myscript.pl"的加密Perl脚本,您可以使用Perl编译器后端访问其中的源代码,如下所示

perl -MO=Deparse myscript.pl

请注意,即使您已经包含了BOOT: test,仍然可以使用Deparse模块来获取单个子例程的源代码。

:

perl -MO=Deparse yourscript
perl -Dp yourscript

如果这些不起作用-查看Filter::decrypt的本地副本并更改它,使其打印解密结果

最佳选择:编辑未加密的副本并重新安装。

备选方案:使用decr(附带Filter::decrypt)解密加密文件

最新更新