Shell Script与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
所以在Linux中编写shell/bash脚本使用穷举法破解10位以内纯数字密码的RAR加密压缩包成为可能。虽然破解速度一般,单线程破解,但shell/bash脚本中实用的思路可以值得借鉴参考。
使用的时候只需要输入加密rar包的绝对地址即可开始破解,测试中4位数纯数字密码破解只需几分钟(实测:华为云服务器1核1G 8分解完,更快的cpu时间更短),破解成功后会自动解压文件到/root/rarfile/目录,同时也会提示已解密的密码。如果几分钟内没被破解可以加入后台中运行,如nohup ./脚本名 &
,这样即使关闭终端脚本依旧后台运行。
shell/bash穷举破解脚本代码实例如下:
#!/bin/bash #Auto RAR Cracker -- AndyX.Net echo -e "3[41m####自动破解十位以内纯数字rar加密压缩包的shell脚本[穷举法]####3[0m" if test -e '/usr/local/bin/rar' then sleep 1s echo -e "3[32m解压工具已准备就绪!3[0m" else echo -e "检测到你系统未安装rar解包工具,即将为你安装rar解压工具..." #预准备编译环境 sudo yum -y install gcc make; sudo apt -y install gcc make #下载RAR FOR LINUX源码包 wget -c https://www.rarlab.com/rar/rarlinux-x64-5.8.b2.tar.gz tar -xzvf rarlinux-x64-5.8.b2.tar.gz cd rar* make && make install cd .. echo .. rm -rf rar* if test -e '/usr/local/bin/rar' then echo "rar工具安装成功!" else echo "rar工具安装失败,请手工检查编译环境以及源码包地址" exit fi sleep 1s fi sleep 1s echo -e "开始破解:" echo -e "提示:破解成功后文件会自动保存到/root/rarfile/目录中\n" if( ! test -d '/root/rarfile' ) then mkdir -p /root/rarfile/ fi echo -n "请输入你的压缩包文件的绝对路径和文件名:" read filename if ( ! test -f $filename );then echo "文件路径错误,文件没找到,脚本退出" exit fi for((i=1;i《=9999999999;i++)) do echo -e "${i}\n" | unrar e $filename /root/rarfile/ if [ $(ls /root/rarfile/|wc -w) -gt 0 ];then echo 'success! 破解成功!' echo "破解密码为:${i}" exit else echo "正在尝试密码:${i}" fi done
注:RAR源码包更新地址请参见官网:https://www.rarlab.com/download.htm