通过php提取自解压exe档案

时间:2011-06-28 09:19:11

标签: php exe unpack self-extracting

我有问题。我有服务,它给我.exe文件,他们声称实际上是zip存档。一个自解压存档。 问题是我正在使用我的应用程序(php)下载到服务器,需要在那里提取它,无需下载到本地计算机。 我已经尝试将.exe文件下载到本地计算机 - 它是在windows上自我解压缩到/ temp目录而不是自启动FLASH播放器。

$ zip = zip_open($ myfile);在print_r($ zip)中给出:1 zip-> open也没有结果。 将.exe更改为.zip不会让winzip或其他类型的un-packer在Windows上打开它 - .exe也无法通过winzip打开.exe。

现在我不知道如何处理它。如果有人可以提供建议。

4 个答案:

答案 0 :(得分:2)

尝试使用system命令

将程序作为可执行文件执行

答案 1 :(得分:1)

从100%不信任的外部来源执行文件永远不是一个好主意。

info-zip版本的zip允许您从自解压zip文件(带-J标志)中删除SFX存根,将其转换回普通的zip文件。

源代码免费提供。

创建一个自解压zip文件是在zip文件前加上SFX二进制代码,然后将二进制存根的大小附加到生成的文件中 - 但我不确定数据是如何表示的 - 但是对可用代码进行一些逆向工程应该明确这一点。

答案 2 :(得分:0)

嗯......如果您的PHP服务器是Windows,那么在将其作为系统命令执行时应该没有问题。否则,它会有点棘手。我听说unzip system命令将解压缩自解压zip文件,但我目前无法访问Linux机箱进行试用。

如果你在共享托管,很可能你不能这样做。

答案 3 :(得分:0)

如果您认为在执行exe文件后,它会提取其内容,那么您可以使用exec函数来运行.exe文件,如下所示:

exec("d:\\example\\php\_exe\\1436.exe");

并且您也可以使用system函数来运行外部程序。

如果你想知道区别的是什么:

PHP - exec() vs system() vs passthru()