【发布时间】:2011-10-13 08:44:45
【问题描述】:
我正在尝试在 Linux 上使用 perl 解压缩文件。该文件受密码保护,并且在暴力攻击中循环遍历可能的密码(是的,这是一项家庭作业)
我已经隔离并删除了错误代码 20992(密码错误),但我仍然收到另一个错误代码,该代码未在 docs 的任何位置列出,并且使用 Google 也找不到任何相关内容。
错误是:
512 error: invalid compressed data to inflate secret_brute.txt
有人看到这个错误信息吗?如果有,是什么意思?
#!/usr/bin/perl
@aaaa_zzzz = ("aaaa" .. "zzzz");
foreach(@aaaa_zzzz){
$output = system("unzip -P $_ -q -o secret_brute.zip");
if($output !~ m/20992/){ # <-- filtering out other error message
chomp($output);
print "$_ : $output\n";
}
}
编辑
每个请求:Secret_brute.zip
【问题讨论】:
-
执行
perldoc -f system看看它对system的返回值有何看法。 -
好主意 - 也许错误代码根本不是来自
unzip,而是来自system... -
secret_brute.zip 有多大?你能把它放在网络上的某个地方吗?
-
名称
$output具有误导性,因为该变量不包含unzip命令的输出,而是system的返回值。 -
你真的应该
use strict; use warnings;。这是学习 perl 的最佳方式,一旦你开始使用它,你就永远不想没有它。