首页 > 解决方案 > 使用解压缩工具绕过坏 CRC

问题描述

我正在尝试使用我知道的密码在 900000000 和 900999999 之间解压缩文件,但我遇到了一个错误的 crc 错误和一个包含一些无意义的 gov.csv。我怎样才能在不结束程序的情况下克服这个问题?我知道实际密码是什么,但创建这种“蛮力”尝试是家庭作业的一部分。我遇到的错误似乎源于 unzip apt。我的代码如下。添加了是,因为即使密码错误,我也不断被要求替换文件。

for word in $(echo 900{000000..999999})
{
echo $word
yes | unzip -q -P $word $1
if [ -s gov.csv ]
then
echo "$word is the password"
exit
fi
}

我尝试添加一个额外的 if 语句,它对改善这种情况没有任何作用。

if yes | unzip -q -P $word $1 | grep -i "bad crc"
then
rm gov.csv
fi

如果我的代码部分格式不好,我也想道歉,这是第一次在这个网站上发布。

标签: bash

解决方案


#!/bin/bash
for id in $(echo 900{000000..999999})
{
  echo $id
  unzip -q -o -P "$id" "$1"
  if [[ $? -eq 0 ]]
  then
    echo "Password is $id"
    exit
  fi
}

谢谢大家的帮助, -o 是替换 yes 管道的原因,以及 $? -eq 0验证前面的命令没有返回错误。我仍在学习并感谢提供的所有帮助。


推荐阅读