我正在尝试在linux上使用perl解压缩文件。该文件受密码保护,并在暴力攻击中循环使用可能的密码(是的,这是一项家庭作业)
我已经隔离并删除了错误代码20992(密码错误),但仍然会收到docs中未列出的其他错误代码,并且无法使用Google搜索找到任何相关内容。< / p>
错误是:
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
答案 0 :(得分:4)
以下是exit codes from unzip的列表。
如上所述,perldoc -f system解释了如何获取unzip
的退出值:
如果你想手动检查
system
的失败,你可以 通过检查$?
,检查所有可能的故障模式:
if ($? == -1) {
print "failed to execute: $!\n";
}
elsif ($? & 127) {
printf "child died with signal %d, %s coredump\n",
($? & 127), ($? & 128) ? 'with' : 'without';
}
else {
printf "child exited with value %d\n", $? >> 8;
}
在这种情况下,512
的值将映射到:
2
:检测到zipfile格式的一般错误。处理可能已成功完成;其他归档程序创建的一些破解的zipfiles具有简单的解决方法。
另一方面,20992
将映射到:
82
:由于密码密码错误,未找到任何文件。 (如果成功处理了一个文件,则退出状态为1
。)