bash - 使用解压缩工具绕过坏 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
如果我的代码部分格式不好,我也想道歉,这是第一次在这个网站上发布。
解决方案
#!/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
验证前面的命令没有返回错误。我仍在学习并感谢提供的所有帮助。
推荐阅读
- ios - 在 UITabBar 中设置背景图像的问题
- python - 在kivy中,如何获取按钮单击的持续时间
- xamarin - GridLayout 在设计和模拟器中看起来不错,但在设备上却不行
- javascript - 动态打印组件时Vue props未定义
- html - 引导程序中的多选下拉列表不显示下拉菜单
- java - 有人可以帮助获得障碍的最短路径吗?
- python - python -v 打印乱码这正常吗?
- javascript - JavaScript - 根据索引将项目添加到对象数组
- c++ - 类型列表不想编译
- mysql - 为什么两个单独执行的 mysql 选择比一个组合要快得多?