提问人:Louis Strous 提问时间:5/25/2020 最后编辑:Louis Strous 更新时间:5/26/2020 访问量:241
如何调试使用 perl PAR 打包器 (pp) 创建的可执行文件?
How do I debug an executable created using the perl PAR packager (pp)?
问:
我使用 PAR 打包器 (pp) 从 Perl 脚本创建 Windows 可执行文件。Perl 脚本运行良好 ()。可执行文件也会运行 (),但不会产生与 Perl 脚本相同的结果。我想调试由可执行文件运行的 perl 脚本,以找出差异的来源。我该怎么做?换句话说,我如何将 a 传递给执行时开始的?foo.exe
foo.pl
perl foo.pl <arguments>
foo.exe <arguments>
-d
perl.exe
foo.exe
附录 2020-05-26
使用“进程资源管理器”,我找到了最终被执行的应用程序。它是 ,其中 和 是短和长的十六进制字符串。我希望找到,然后我可以将我的注入命令行。%TEMP%\par-<ID1>\cache-<ID2>\foo.exe
<ID1>
<ID2>
...\perl.exe foo.pl
-d
在该文件夹中运行会生成错误“无法在@INC中找到 PAR.pm”。foo.exe
同一文件夹还包含许多 *.pm、*.dll(包括 perl528.dll)和一些 *.pl 文件,其中 *.pl 和 *.pm 文件的名称是短的十六进制字符串。其中一个 *.pl 文件(进程的PAR_0环境变量中提到的文件)与 具有相同的内容,并带有以下两行前缀:foo.pl
package main;
#line 1 "script/foo.pl"
如果我使用该perl脚本的名称在该文件夹中运行,那么它会产生所需的结果,即不会遇到exe遇到的问题。我希望该文件夹中的perl528.dll和其他dll是构成Perl的位,但不知道如何调用它们。该文件夹的大小仅为 78 kB,因此它只能让其他位完成工作。perl -Iinc/lib <ID>.pl
<ID>.pl
foo.exe
答: 暂无答案
评论
-d
perl.exe
print