【问题标题】:Converting a .exe to .pl in Perl?在 Perl 中将 .exe 转换为 .pl?
【发布时间】:2013-07-05 21:06:52
【问题描述】:

我正在尝试从可执行文件 (.exe) 中获取 Perl 脚本 (.pl)。 .exe 文件最初是用 Perl 编码的,但没有保留 .pl 文件。有没有快速的方法来做到这一点?我在 windows 上使用草莓 Perl。

谢谢

【问题讨论】:

  • 原始 Perl 代码是如何转换为可执行文件的?
  • 它是使用命令提示符并输入 cpan -> install pp -> pp-o output.exe input.exe 转换的
  • 很有可能使用 ActiveState 的 PerlApp 或 perl2exe。这里的重要问题是,这个 exe 是由 OP 创建的吗?如果不是,回答这个问题将违背剧本作者的利益。
  • .exe重命名为.zip并检查是否可以提取文件
  • 是的,我在几周前创建了它,并且放错了 .pl 文件(我知道,糟糕的编码习惯)。现在我需要进行编辑。我想我已经找到了它,但只是想确定它是最新的版本。这就是为什么我想把我的 .exe 带回 .pl。

标签: windows perl converter exe strawberry-perl


【解决方案1】:

.exe重命名为.zip并检查是否可以提取文件

【讨论】:

    【解决方案2】:

    来自PAR FAQ

    如何从打包的可执行文件中提取我的脚本?

    换句话说,“我做了一个 `pp foo.pl',但我丢失了 foo.pl,我该如何找回它?”。

    答案是只使用 unzip/winzip/winrar/whatever 来解压缩可执行文件,将其视为普通 Zip 文件。您可能需要先将可执行文件重命名为 .zip 扩展名。

    【讨论】:

      【解决方案3】:

      pp 依赖 PAR 来创建可执行文件。 PAR 依赖于 Archive::Zip,因此在某种程度上,该文件包含用于创建可执行文件的 perl 脚本的压缩副本。

      通常,这些程序将加载程序附加到 zip 存档的前面,该加载程序将文件解压缩到临时目录并调用指示为程序入口点的脚本。

      我会尝试两件事:

      • 在所有典型的 Temp 目录(例如 \Users\Username\AppData\Local\Temp)中查找包含您的脚本及其先决条件的目录。

      • 尝试将 exe 解压缩为 zip,可能首先使用字节编辑器从程序的开头删除加载程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-22
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多